示例#1
0
        public void GetRoleProcess()
        {
            RoleList                  roleList;
            RoleInstanceList          roleInstanceList;
            Func <Role, bool>         func  = null;
            Func <RoleInstance, bool> func1 = null;

            this.GetCurrentDeployment();
            if (this.currentDeployment != null)
            {
                SwitchParameter instanceDetails = this.InstanceDetails;
                if (instanceDetails.IsPresent)
                {
                    Collection <RoleInstanceContext> roleInstanceContexts = new Collection <RoleInstanceContext>();
                    if (!string.IsNullOrEmpty(this.RoleName))
                    {
                        RoleInstanceList roleInstanceList1 = this.currentDeployment.RoleInstanceList;
                        if (func1 == null)
                        {
                            func1 = (RoleInstance r) => r.RoleName.Equals(this.RoleName, StringComparison.OrdinalIgnoreCase);
                        }
                        roleInstanceList = new RoleInstanceList(roleInstanceList1.Where <RoleInstance>(func1));
                    }
                    else
                    {
                        roleInstanceList = this.currentDeployment.RoleInstanceList;
                    }
                    foreach (RoleInstance roleInstance in roleInstanceList)
                    {
                        RoleInstanceContext roleInstanceContext = new RoleInstanceContext();
                        roleInstanceContext.ServiceName = this.ServiceName;
                        roleInstanceContext.set_OperationId(this.getDeploymentOperation.OperationTrackingId);
                        roleInstanceContext.set_OperationDescription(base.CommandRuntime.ToString());
                        roleInstanceContext.set_OperationStatus(this.getDeploymentOperation.Status);
                        roleInstanceContext.InstanceErrorCode     = roleInstance.InstanceErrorCode;
                        roleInstanceContext.InstanceFaultDomain   = roleInstance.InstanceFaultDomain;
                        roleInstanceContext.InstanceName          = roleInstance.InstanceName;
                        roleInstanceContext.InstanceSize          = roleInstance.InstanceSize;
                        roleInstanceContext.InstanceStateDetails  = roleInstance.InstanceStateDetails;
                        roleInstanceContext.InstanceStatus        = roleInstance.InstanceStatus;
                        roleInstanceContext.InstanceUpgradeDomain = roleInstance.InstanceUpgradeDomain;
                        roleInstanceContext.RoleName          = roleInstance.RoleName;
                        roleInstanceContext.DeploymentID      = this.currentDeployment.PrivateID;
                        roleInstanceContext.InstanceEndpoints = roleInstance.InstanceEndpoints;
                        RoleInstanceContext roleInstanceContext1 = roleInstanceContext;
                        roleInstanceContexts.Add(roleInstanceContext1);
                    }
                    base.WriteObject(roleInstanceContexts, true);
                }
                else
                {
                    Collection <RoleContext> roleContexts = new Collection <RoleContext>();
                    if (!string.IsNullOrEmpty(this.RoleName))
                    {
                        RoleList roleList1 = this.currentDeployment.RoleList;
                        if (func == null)
                        {
                            func = (Role r) => r.RoleName.Equals(this.RoleName, StringComparison.OrdinalIgnoreCase);
                        }
                        roleList = new RoleList(roleList1.Where <Role>(func));
                    }
                    else
                    {
                        roleList = this.currentDeployment.RoleList;
                    }
                    List <Role> .Enumerator enumerator = roleList.GetEnumerator();
                    try
                    {
                        Func <RoleInstance, bool> func2 = null;
                        while (enumerator.MoveNext())
                        {
                            Role             current           = enumerator.Current;
                            RoleContext      roleContext       = new RoleContext();
                            RoleContext      roleContext1      = roleContext;
                            RoleInstanceList roleInstanceList2 = this.currentDeployment.RoleInstanceList;
                            if (func2 == null)
                            {
                                func2 = (RoleInstance ri) => ri.RoleName.Equals(current.RoleName, StringComparison.OrdinalIgnoreCase);
                            }
                            roleContext1.InstanceCount = roleInstanceList2.Where <RoleInstance>(func2).Count <RoleInstance>();
                            roleContext.RoleName       = current.RoleName;
                            roleContext.set_OperationDescription(base.CommandRuntime.ToString());
                            roleContext.set_OperationStatus(this.getDeploymentOperation.Status);
                            roleContext.set_OperationId(this.getDeploymentOperation.OperationTrackingId);
                            roleContext.ServiceName  = this.ServiceName;
                            roleContext.DeploymentID = this.currentDeployment.PrivateID;
                            RoleContext roleContext2 = roleContext;
                            roleContexts.Add(roleContext2);
                        }
                    }
                    finally
                    {
                        enumerator.Dispose();
                    }
                    base.WriteObject(roleContexts, true);
                    return;
                }
            }
        }