public static MailboxSignatureSectionsContainer Create(MailboxSignatureSectionType sectionsToCreate, IMailboxSignatureSectionCreator sectionCreator) { MailboxSignatureSectionsContainer mailboxSignatureSectionsContainer = new MailboxSignatureSectionsContainer(); mailboxSignatureSectionsContainer.InternalCreate(sectionsToCreate, sectionCreator); return(mailboxSignatureSectionsContainer); }
internal MailboxSignatureSectionMetadata(MailboxSignatureSectionType type, short version, int elementsNumber, int length) { this.type = type; this.version = version; this.elementsNumber = elementsNumber; this.length = length; this.Validate(); }
private void InternalCreate(MailboxSignatureSectionType sectionsToCreate, IMailboxSignatureSectionCreator sectionCreator) { for (MailboxSignatureSectionType mailboxSignatureSectionType = MailboxSignatureSectionType.BasicInformation; mailboxSignatureSectionType != MailboxSignatureSectionType.None; mailboxSignatureSectionType <<= 1) { MailboxSignatureSectionMetadata metadata; byte[] array; if (sectionsToCreate.HasFlag(mailboxSignatureSectionType) && sectionCreator.Create(mailboxSignatureSectionType, out metadata, out array)) { this.sections.Add(new MailboxSignatureSectionsContainer.SignatureSection(metadata, new ArraySegment <byte>(array))); } } }
bool IMailboxSignatureSectionCreator.Create(MailboxSignatureSectionType sectionType, out MailboxSignatureSectionMetadata sectionMetadata, out byte[] sectionData) { sectionMetadata = new MailboxSignatureSectionMetadata(MailboxSignatureSectionType.BasicInformation, 1, 1, this.mailboxBasicInformation.Length); sectionData = this.mailboxBasicInformation; return(true); }
public MailboxSignatureSectionsContainer.SignatureSection GetSignatureSection(MailboxSignatureSectionType type) { int num = this.sections.FindIndex((MailboxSignatureSectionsContainer.SignatureSection e) => e.Metadata.Type == type); if (num != -1) { return(this.sections.ElementAt(num)); } return(new MailboxSignatureSectionsContainer.SignatureSection(new MailboxSignatureSectionMetadata(MailboxSignatureSectionType.None, 0, 0, 0), default(ArraySegment <byte>))); }