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()); }
CreateMailboxResult IDestinationMailbox.CreateMailbox(byte[] mailboxData, MailboxSignatureFlags sourceSignatureFlags) { MrsTracer.Provider.Function("PstDestinationMailbox.CreateMailbox", new object[0]); return CreateMailboxResult.Success; }
byte[] ISourceMailbox.GetMailboxBasicInfo(MailboxSignatureFlags flags) { throw new NotImplementedException(); }