Inheritance: ServiceOperationContext
        public DeploymentInfoContext(Deployment deployment)
        {
            XDocument xDocument;
            string    empty;
            string    str;
            string    value;

            this.ns             = "http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration";
            this.Slot           = deployment.DeploymentSlot;
            this.Name           = deployment.Name;
            this.DeploymentName = deployment.Name;
            this.Url            = deployment.Url;
            this.Status         = deployment.Status;
            this.DeploymentId   = deployment.PrivateID;
            this.VNetName       = deployment.VirtualNetworkName;
            this.SdkVersion     = deployment.SdkVersion;
            this.DnsSettings    = deployment.Dns;
            bool?rollbackAllowed = deployment.RollbackAllowed;

            if (rollbackAllowed.HasValue)
            {
                this.RollbackAllowed = deployment.RollbackAllowed;
            }
            if (deployment.UpgradeStatus != null)
            {
                this.CurrentUpgradeDomain      = deployment.UpgradeStatus.CurrentUpgradeDomain;
                this.CurrentUpgradeDomainState = deployment.UpgradeStatus.CurrentUpgradeDomainState;
                this.UpgradeType = deployment.UpgradeStatus.UpgradeType;
            }
            DeploymentInfoContext deploymentInfoContext = this;

            if (string.IsNullOrEmpty(deployment.Configuration))
            {
                empty = string.Empty;
            }
            else
            {
                empty = ServiceManagementHelper.DecodeFromBase64String(deployment.Configuration);
            }
            deploymentInfoContext.Configuration = empty;
            DeploymentInfoContext deploymentInfoContext1 = this;

            if (string.IsNullOrEmpty(deployment.Label))
            {
                str = string.Empty;
            }
            else
            {
                str = ServiceManagementHelper.DecodeFromBase64String(deployment.Label);
            }
            deploymentInfoContext1.Label = str;
            if (deployment.RoleInstanceList != null)
            {
                this.RoleInstanceList = new List <RoleInstance>();
                foreach (RoleInstance roleInstanceList in deployment.RoleInstanceList)
                {
                    this.RoleInstanceList.Add(roleInstanceList);
                }
            }
            if (!string.IsNullOrEmpty(deployment.Configuration))
            {
                string configuration = this.Configuration;
                using (StringReader stringReader = new StringReader(configuration))
                {
                    XmlReader xmlReader = XmlReader.Create(stringReader);
                    xDocument = XDocument.Load(xmlReader);
                }
                DeploymentInfoContext deploymentInfoContext2 = this;
                if (xDocument.Root.Attribute("osVersion") != null)
                {
                    value = xDocument.Root.Attribute("osVersion").Value;
                }
                else
                {
                    value = string.Empty;
                }
                deploymentInfoContext2.OSVersion = value;
                this.RolesConfiguration          = new Dictionary <string, RoleConfiguration>();
                IEnumerable <XElement> xElements = xDocument.Root.Descendants(this.ns + "Role");
                foreach (XElement xElement in xElements)
                {
                    this.RolesConfiguration.Add(xElement.Attribute("name").Value, new RoleConfiguration(xElement));
                }
            }
        }
		protected override void ProcessRecord()
		{
			try
			{
				base.ProcessRecord();
				Operation operation = null;
				Deployment deploymentProcess = this.GetDeploymentProcess(out operation);
				if (deploymentProcess != null)
				{
					if (string.IsNullOrEmpty(deploymentProcess.DeploymentSlot))
					{
						deploymentProcess.DeploymentSlot = this.Slot;
					}
					DeploymentInfoContext deploymentInfoContext = new DeploymentInfoContext(deploymentProcess);
					deploymentInfoContext.ServiceName = this.ServiceName;
					deploymentInfoContext.set_OperationId(operation.OperationTrackingId);
					deploymentInfoContext.set_OperationDescription(base.CommandRuntime.ToString());
					deploymentInfoContext.set_OperationStatus(operation.Status);
					DeploymentInfoContext deploymentInfoContext1 = deploymentInfoContext;
					base.WriteObject(deploymentInfoContext1, true);
				}
			}
			catch (Exception exception1)
			{
				Exception exception = exception1;
				base.WriteError(new ErrorRecord(exception, string.Empty, ErrorCategory.CloseError, null));
			}
		}