public override void ProcessMailbox(DirectoryMailbox mailbox, IAnchorRunspaceProxy runspace) { DirectoryDatabase directoryDatabase = (DirectoryDatabase)mailbox.Parent; IMailboxPolicy violatedPolicy = this.GetViolatedPolicy(mailbox, directoryDatabase); if (violatedPolicy == null) { return; } MoveInfo info = this.getMoveInfo.GetInfo(mailbox, runspace); ProvisioningConstraintFixStateLog.Write(mailbox, directoryDatabase, info); switch (info.Status) { case MoveStatus.MoveExistsNotInProgress: violatedPolicy.HandleExistingButNotInProgressMove(mailbox, directoryDatabase); return; case MoveStatus.MoveExistsInProgress: break; case MoveStatus.MoveDoesNotExist: this.InjectMoveRequest(mailbox, violatedPolicy); break; default: return; } }
public MoveInfo GetInfo(DirectoryMailbox mailbox, IAnchorRunspaceProxy runspace) { GetMoveRequestStatistics getMoveRequestStatistics = new GetMoveRequestStatistics(mailbox, this.logger, this.cmdletPool); getMoveRequestStatistics.Process(); if (getMoveRequestStatistics.Result == null) { return(new MoveInfo(MoveStatus.MoveDoesNotExist, Guid.Empty)); } MoveStatus status; if (getMoveRequestStatistics.Result.Status == RequestStatus.InProgress || getMoveRequestStatistics.Result.Status == RequestStatus.Queued) { status = MoveStatus.MoveExistsInProgress; } else { status = MoveStatus.MoveExistsNotInProgress; } return(new MoveInfo(status, getMoveRequestStatistics.Result.RequestGuid)); }
public abstract void ProcessMailbox(DirectoryMailbox mailbox, IAnchorRunspaceProxy runspace);
public override void ProcessMailbox(DirectoryMailbox mailbox, IAnchorRunspaceProxy runspace) { mailbox.EmitLogEntry(this.logCollector); }
public void ReturnRunspace(IAnchorRunspaceProxy runspace) { Interlocked.Decrement(ref this.checkedOutRunspaceCount); this.runspaces.Enqueue(runspace); }
public RunspaceReservation(CmdletExecutionPool pool, IAnchorRunspaceProxy runspace) { this.Runspace = runspace; this.originatingPool = pool; }