示例#1
0
        byte[] ISourceMailbox.GetMailboxBasicInfo(MailboxSignatureFlags flags)
        {
            MrsTracer.Provider.Function("MapiSourceMailbox.GetMailboxBasicInfo", new object[0]);
            base.CheckDisposed();
            if (base.IsPublicFolderMigrationSource)
            {
                return(MailboxSignatureConverter.CreatePublicFolderMailboxBasicInformation());
            }
            base.VerifyMailboxConnection(VerifyMailboxConnectionFlags.None);
            uint mailboxSignatureServerVersion;

            byte[] array;
            using (ExRpcAdmin rpcAdmin = base.GetRpcAdmin())
            {
                using (base.RHTracker.Start())
                {
                    MrsTracer.Provider.Debug("Reading mailbox basic info \"{0}\" in MDB {1}, flags {2}", new object[]
                    {
                        base.TraceMailboxId,
                        base.MdbGuid,
                        flags
                    });
                    mailboxSignatureServerVersion = rpcAdmin.GetMailboxSignatureServerVersion();
                    array = rpcAdmin.GetMailboxBasicInfo(base.MdbGuid, base.MailboxGuid, flags);
                }
            }
            if (flags == MailboxSignatureFlags.GetLegacy && mailboxSignatureServerVersion >= 102U)
            {
                array = MailboxSignatureConverter.ExtractMailboxBasicInfo(array);
            }
            return(array);
        }
 CreateMailboxResult IDestinationMailbox.CreateMailbox(byte[] mailboxData, MailboxSignatureFlags sourceSignatureFlags)
 {
     MrsTracer.ProxyClient.Function("RemoteDestinationMailbox.CreateMailbox", new object[0]);
     base.VerifyMailboxConnection();
     if (!base.ServerVersion[24])
     {
         return(base.MrsProxy.IDestinationMailbox_CreateMailbox(base.Handle, mailboxData));
     }
     return(base.MrsProxy.IDestinationMailbox_CreateMailbox2(base.Handle, mailboxData, (int)sourceSignatureFlags));
 }
 byte[] ISourceMailbox.GetMailboxBasicInfo(MailboxSignatureFlags flags)
 {
     byte[] result = null;
     base.CreateContext("ISourceMailbox.GetMailboxBasicInfo", new DataContext[]
     {
         new SimpleValueDataContext("Flags", flags)
     }).Execute(delegate
     {
         result = ((ISourceMailbox)this.WrappedObject).GetMailboxBasicInfo(flags);
     }, true);
     return(result);
 }
 byte[] ISourceMailbox.GetMailboxBasicInfo(MailboxSignatureFlags flags)
 {
     MrsTracer.ProxyClient.Function("RemoteSourceMailbox.GetMailboxBasicInfo({0})", new object[]
     {
         flags
     });
     base.VerifyMailboxConnection();
     if (!base.ServerVersion[24])
     {
         return(base.MrsProxy.ISourceMailbox_GetMailboxBasicInfo(base.Handle));
     }
     return(base.MrsProxy.ISourceMailbox_GetMailboxBasicInfo2(base.Handle, (int)flags));
 }
        CreateMailboxResult IDestinationMailbox.CreateMailbox(byte[] mailboxData, MailboxSignatureFlags sourceSignatureFlags)
        {
            CreateMailboxResult result = CreateMailboxResult.Success;

            base.CreateContext("IDestinationMailbox.CreateMailbox", new DataContext[]
            {
                new SimpleValueDataContext("MailboxData", TraceUtils.DumpBytes(mailboxData)),
                new SimpleValueDataContext("sourceSignatureFlags", sourceSignatureFlags)
            }).Execute(delegate
            {
                result = ((IDestinationMailbox)this.WrappedObject).CreateMailbox(mailboxData, sourceSignatureFlags);
            }, true);
            return(result);
        }
        CreateMailboxResult IDestinationMailbox.CreateMailbox(byte[] mailboxData, MailboxSignatureFlags sourceSignatureFlags)
        {
            MrsTracer.Provider.Function("MapiDestinationMailbox.CreateMailbox", new object[0]);
            base.CheckDisposed();
            base.ResolveMDB(true);
            CreateMailboxResult createMailboxResult = base.CreateMailbox(mailboxData, sourceSignatureFlags);

            if (createMailboxResult != CreateMailboxResult.Success)
            {
                return(createMailboxResult);
            }
            base.MapiStore = this.ConnectToTargetMailbox(true, base.ServerDN, base.ServerFqdn, MailboxConnectFlags.None);
            this.AfterConnect();
            return(CreateMailboxResult.Success);
        }
        public static byte[] ConvertPartitionInformation(byte[] originalSignature, MailboxSignatureFlags originalSignatureFlags, PartitionInformation partitionInformation)
        {
            MailboxSignatureSectionsContainer mailboxSignatureSectionsContainer;

            if (originalSignatureFlags == MailboxSignatureFlags.GetLegacy)
            {
                mailboxSignatureSectionsContainer = MailboxSignatureSectionsContainer.Create(MailboxSignatureSectionType.BasicInformation, new MailboxSignatureConverter.MailboxBasicInformationSectionCreator(originalSignature));
            }
            else
            {
                mailboxSignatureSectionsContainer = MailboxSignatureSectionsContainer.Parse(originalSignature, NullMailboxSignatureSectionProcessor.Instance);
            }
            int num = partitionInformation.Serialize(null, 0);

            byte[] array = new byte[num];
            partitionInformation.Serialize(array, 0);
            mailboxSignatureSectionsContainer.UpdateSection(new MailboxSignatureSectionMetadata(MailboxSignatureSectionType.PartitionInformation, 1, 1, array.Length), array);
            return(mailboxSignatureSectionsContainer.Serialize());
        }
        public static byte[] ConvertTenantHint(byte[] originalSignature, MailboxSignatureFlags originalSignatureFlags, TenantPartitionHint tenantHint)
        {
            MailboxSignatureSectionsContainer mailboxSignatureSectionsContainer;

            if (originalSignatureFlags == MailboxSignatureFlags.GetLegacy)
            {
                mailboxSignatureSectionsContainer = MailboxSignatureSectionsContainer.Create(MailboxSignatureSectionType.BasicInformation, new MailboxSignatureConverter.MailboxBasicInformationSectionCreator(originalSignature));
            }
            else
            {
                mailboxSignatureSectionsContainer = MailboxSignatureSectionsContainer.Parse(originalSignature, NullMailboxSignatureSectionProcessor.Instance);
            }
            if (tenantHint == null)
            {
                tenantHint = TenantPartitionHint.FromOrganizationId(OrganizationId.ForestWideOrgId);
            }
            byte[] persistablePartitionHint = tenantHint.GetPersistablePartitionHint();
            int    num = TenantHintHelper.SerializeTenantHint(persistablePartitionHint, null, 0);

            byte[] array = new byte[num];
            TenantHintHelper.SerializeTenantHint(persistablePartitionHint, array, 0);
            mailboxSignatureSectionsContainer.UpdateSection(new MailboxSignatureSectionMetadata(MailboxSignatureSectionType.TenantHint, 1, 1, persistablePartitionHint.Length), array);
            return(mailboxSignatureSectionsContainer.Serialize());
        }
示例#9
0
		CreateMailboxResult IDestinationMailbox.CreateMailbox(byte[] mailboxData, MailboxSignatureFlags sourceSignatureFlags)
		{
			MrsTracer.Provider.Function("PstDestinationMailbox.CreateMailbox", new object[0]);
			return CreateMailboxResult.Success;
		}
示例#10
0
 byte[] ISourceMailbox.GetMailboxBasicInfo(MailboxSignatureFlags flags)
 {
     throw new NotImplementedException();
 }