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()); }
public static byte[] ExtractMailboxBasicInfo(byte[] signatureBlob) { MailboxSignatureConverter.MailboxBasicInformationExtractor mailboxBasicInformationExtractor = new MailboxSignatureConverter.MailboxBasicInformationExtractor(); MailboxSignatureSectionsContainer.Parse(signatureBlob, mailboxBasicInformationExtractor); return(mailboxBasicInformationExtractor.MailboxBasicInformation); }