Inheritance: ServiceManagementBaseCmdlet
コード例 #1
0
        public IEnumerable <Disk> GetDiskProcess(out Operation operation)
        {
            IEnumerable <Disk>      disks;
            Func <string, Disk>     func   = null;
            Func <string, DiskList> func1  = null;
            IEnumerable <Disk>      disks1 = null;

            operation = null;
            using (OperationContextScope operationContextScope = new OperationContextScope((IContextChannel)base.Channel))
            {
                try
                {
                    if (string.IsNullOrEmpty(this.DiskName))
                    {
                        GetAzureDiskCommand getAzureDiskCommand = this;
                        if (func1 == null)
                        {
                            func1 = (string s) => base.Channel.ListDisks(s);
                        }
                        disks1 = ((CmdletBase <IServiceManagement>)getAzureDiskCommand).RetryCall <DiskList>(func1);
                    }
                    else
                    {
                        Disk[] diskArray  = new Disk[1];
                        Disk[] diskArray1 = diskArray;
                        int    num        = 0;
                        GetAzureDiskCommand getAzureDiskCommand1 = this;
                        if (func == null)
                        {
                            func = (string s) => base.Channel.GetDisk(s, this.DiskName);
                        }
                        diskArray1[num] = ((CmdletBase <IServiceManagement>)getAzureDiskCommand1).RetryCall <Disk>(func);
                        disks1          = diskArray;
                    }
                    operation = base.WaitForOperation(base.CommandRuntime.ToString());
                }
                catch (CommunicationException communicationException1)
                {
                    CommunicationException communicationException = communicationException1;
                    if (communicationException as EndpointNotFoundException == null || base.IsVerbose())
                    {
                        this.WriteErrorDetails(communicationException);
                    }
                    else
                    {
                        disks = null;
                        return(disks);
                    }
                }
                return(disks1);
            }
            return(disks);
        }
コード例 #2
0
 protected override void ProcessRecord()
 {
     try
     {
         base.ProcessRecord();
         Operation          operation   = null;
         IEnumerable <Disk> diskProcess = this.GetDiskProcess(out operation);
         if (diskProcess != null)
         {
             List <DiskContext> diskContexts = new List <DiskContext>();
             foreach (Disk disk in diskProcess)
             {
                 DiskContext diskContext = new DiskContext();
                 diskContext.set_OperationId(operation.OperationTrackingId);
                 diskContext.set_OperationDescription(base.CommandRuntime.ToString());
                 diskContext.set_OperationStatus(operation.Status);
                 diskContext.DiskName        = disk.Name;
                 diskContext.Label           = disk.Label;
                 diskContext.IsCorrupted     = disk.IsCorrupted;
                 diskContext.AffinityGroup   = disk.AffinityGroup;
                 diskContext.OS              = disk.OS;
                 diskContext.Location        = disk.Location;
                 diskContext.MediaLink       = disk.MediaLink;
                 diskContext.DiskSizeInGB    = disk.LogicalDiskSizeInGB;
                 diskContext.SourceImageName = disk.SourceImageName;
                 diskContext.AttachedTo      = GetAzureDiskCommand.CreateRoleReference(disk.AttachedTo);
                 diskContexts.Add(diskContext);
             }
             base.WriteObject(diskContexts, true);
         }
     }
     catch (Exception exception1)
     {
         Exception exception = exception1;
         base.WriteError(new ErrorRecord(exception, string.Empty, ErrorCategory.CloseError, null));
     }
 }