protected override void InternalProcessRecord() { TaskLogger.LogEnter(); if (this.TenantCU.OrganizationStatus == OrganizationStatus.PendingAcceptedDomainAddition || this.TenantCU.OrganizationStatus == OrganizationStatus.PendingAcceptedDomainRemoval) { OrganizationTaskHelper.SetOrganizationStatus(base.Session, this.TenantCU, OrganizationStatus.Active); } try { base.InternalProcessRecord(); } catch (Exception) { this.CleanupSecondaryDomain(); throw; } if (!base.HasErrors) { AcceptedDomain acceptedDomain = OrganizationTaskHelper.GetAcceptedDomain(AcceptedDomainIdParameter.Parse(this.Name), base.Session, new Task.TaskErrorLoggingDelegate(base.WriteError), true); base.WriteObject(acceptedDomain); } else { this.CleanupSecondaryDomain(); } TaskLogger.LogExit(); }
private void CheckForDuplicateExistingDomain() { AcceptedDomain acceptedDomain = OrganizationTaskHelper.GetAcceptedDomain(AcceptedDomainIdParameter.Parse(this.Name), base.Session, new Task.TaskErrorLoggingDelegate(base.WriteError), false); if (acceptedDomain != null) { base.WriteError(new ManagementObjectAlreadyExistsException(Strings.ErrorAcceptedDomainExists(this.Name)), ErrorCategory.ResourceExists, null); } }
protected override void InternalValidate() { TaskLogger.LogEnter(); base.InternalValidate(); this.acceptedDomain = OrganizationTaskHelper.GetAcceptedDomain(this.Identity, base.Session, new Task.TaskErrorLoggingDelegate(base.WriteError), true); this.organizationIdParam = new OrganizationIdParameter(this.acceptedDomain.OrganizationId); if (!OrganizationTaskHelper.CanProceedWithOrganizationTask(this.organizationIdParam, base.Session, RemoveSecondaryDomainTask.IgnorableFlagsOnStatusTimeout, new Task.TaskErrorLoggingDelegate(base.WriteError))) { base.WriteError(new OrganizationPendingOperationException(Strings.ErrorCannotOperateOnOrgInCurrentState), ErrorCategory.InvalidOperation, null); } RemoveAcceptedDomain.CheckDomainForRemoval(this.acceptedDomain, new Task.TaskErrorLoggingDelegate(base.WriteError)); TaskLogger.LogExit(); }
private void CleanupSecondaryDomain() { AcceptedDomain acceptedDomain = OrganizationTaskHelper.GetAcceptedDomain(AcceptedDomainIdParameter.Parse(this.Name), base.Session, new Task.TaskErrorLoggingDelegate(base.WriteError), false); if (acceptedDomain != null) { try { base.Session.Delete(acceptedDomain); } catch (Exception ex) { this.WriteWarning(Strings.ErrorNonActiveOrganizationFound(ex.ToString())); } } }
protected override void InternalValidate() { TaskLogger.LogEnter(); base.InternalValidate(); this.acceptedDomain = OrganizationTaskHelper.GetAcceptedDomain(this.Identity, base.Session, new Task.TaskErrorLoggingDelegate(base.WriteError), true); if (this.acceptedDomain.PendingRemoval) { base.WriteError(new CannotOperateOnAcceptedDomainPendingRemovalException(this.acceptedDomain.DomainName.ToString()), ErrorCategory.InvalidOperation, null); } this.orgOuDN = this.acceptedDomain.OrganizationId.OrganizationalUnit.DistinguishedName; this.organizationIdParam = new OrganizationIdParameter(this.orgOuDN); if (!OrganizationTaskHelper.CanProceedWithOrganizationTask(this.organizationIdParam, base.Session, SetSecondaryDomainTask.IgnorableFlagsOnStatusTimeout, new Task.TaskErrorLoggingDelegate(base.WriteError))) { base.WriteError(new OrganizationPendingOperationException(Strings.ErrorCannotOperateOnOrgInCurrentState), ErrorCategory.InvalidOperation, null); } TaskLogger.LogExit(); }