Exemplo n.º 1
0
        protected override void InternalValidate()
        {
            TaskLogger.LogEnter();
            try
            {
                if (!string.IsNullOrEmpty(base.Name))
                {
                    base.ValidateName();
                    base.RequestName = base.Name;
                }
                else
                {
                    base.RequestName = base.ParameterSetName;
                }
                this.RetrieveSourceMailboxInformation();
                base.RescopeToOrgId(this.mailbox.OrganizationId);
                string parameterSetName;
                if ((parameterSetName = base.ParameterSetName) != null)
                {
                    ADObjectId   mdbId;
                    ADObjectId   mdbServerSite;
                    RequestFlags requestFlags;
                    if (!(parameterSetName == "MailboxRelocationJoin"))
                    {
                        if (!(parameterSetName == "MailboxRelocationSplit"))
                        {
                            goto IL_135;
                        }
                        if (this.mailbox.UnifiedMailbox == null || !ADRecipient.TryGetFromCrossTenantObjectId(this.mailbox.UnifiedMailbox, out this.sourceContainer).Succeeded)
                        {
                            base.WriteError(new MailboxRelocationSplitSourceNotInContainerException(this.mailbox.ToString()), ErrorCategory.InvalidArgument, this.Mailbox);
                        }
                        this.RetrieveTargetMailboxInformation();
                        requestFlags = this.LocateAndChooseMdb(this.mailbox.Database, this.targetMailboxDatabase.Id, this.Mailbox, this.TargetDatabase, this.TargetDatabase, out mdbId, out mdbServerSite);
                    }
                    else
                    {
                        this.RetrieveTargetContainerAndMailboxInformation();
                        requestFlags = this.LocateAndChooseMdb(this.mailbox.Database, this.targetContainer.Database, this.Mailbox, this.TargetContainer, this.TargetContainer, out mdbId, out mdbServerSite);
                    }
                    this.moveFlags    |= requestFlags;
                    base.MdbId         = mdbId;
                    base.MdbServerSite = mdbServerSite;
                    base.Flags         = this.moveFlags;
                    RequestTaskHelper.ValidateNotImplicitSplit(this.moveFlags, this.mailbox, new Task.TaskErrorLoggingDelegate(base.WriteError), this.Mailbox);
                    this.ValidateNoOtherActiveRequests();
                    base.InternalValidate();
                    return;
                }
IL_135:
                throw new NotImplementedException();
            }
            finally
            {
                TaskLogger.LogExit();
            }
        }