namespace PS.IPAM.Cmdlets; using System; using System.Collections.Generic; using System.Management.Automation; using PS.IPAM; using PS.IPAM.Helpers; [Cmdlet(VerbsCommon.Get, "Nameserver", DefaultParameterSetName = "NoParams")] [OutputType(typeof(Nameserver))] public class GetNameserverCmdlet : PSCmdlet { [Parameter( Mandatory = true, ValueFromPipeline = true, ValueFromPipelineByPropertyName = true, Position = 0, ParameterSetName = "ByID")] [ValidateNotNullOrEmpty] public int? Id { get; set; } protected override void ProcessRecord() { try { var identifiers = new List(); if (Id.HasValue) { identifiers.Add(Id.Value.ToString()); } var result = RequestHelper.InvokeRequest("GET", controllers.tools, types.Nameserver, subcontrollers.nameservers, null, identifiers.Count > 0 ? identifiers.ToArray() : null) .GetAwaiter().GetResult(); if (result != null) { if (result is System.Collections.IEnumerable enumerable && !(result is string)) { foreach (var item in enumerable) { WriteObject(item); } } else { WriteObject(result); } } } catch (Exception ex) { WriteError(new ErrorRecord(ex, "GetNameserverError", ErrorCategory.InvalidOperation, null)); } } }