Guid IDestinationFolder.LinkMailPublicFolder(LinkMailPublicFolderFlags flags, byte[] objectId) { MrsTracer.Provider.Function("StorageDestinationFolder.LinkMailPublicFolder: {0}", new object[] { base.DisplayNameForTracing }); return(base.Mailbox.LinkMailPublicFolder(base.FolderId, flags, objectId)); }
Guid IDestinationFolder.LinkMailPublicFolder(LinkMailPublicFolderFlags flags, byte[] objectId) { Guid result = Guid.Empty; base.CreateContext("IDestinationFolder.LinkMailPublicFolder", new DataContext[] { new SimpleValueDataContext("Flags", flags), new EntryIDsDataContext(objectId) }).Execute(delegate { result = ((IDestinationFolder)this.WrappedObject).LinkMailPublicFolder(flags, objectId); }, true); return(result); }
Guid IDestinationFolder.LinkMailPublicFolder(LinkMailPublicFolderFlags flags, byte[] objectId) { return(base.Mailbox.LinkMailPublicFolder(base.FolderId, flags, objectId)); }
Guid IDestinationFolder.LinkMailPublicFolder(LinkMailPublicFolderFlags flags, byte[] objectId) { return(base.MrsProxy.IDestinationFolder_LinkMailPublicFolder(base.Handle, flags, objectId)); }
Guid IDestinationFolder.LinkMailPublicFolder(LinkMailPublicFolderFlags flags, byte[] objectId) { throw new NotImplementedException(); }
private Guid LinkMailPublicFolder(LinkMailPublicFolderFlags flags, byte[] objectId, Guid contentMailboxGuid, byte[] sourceFolderEntryId) { Guid result = Guid.Empty; try { ADObjectId contentMailbox = null; if (!this.mailboxToADObjectIdMap.TryGetValue(contentMailboxGuid, out contentMailbox)) { ADUser aduser = this.orgRecipientSession.FindByExchangeGuid(contentMailboxGuid) as ADUser; if (aduser == null) { throw new RecipientNotFoundPermanentException(contentMailboxGuid); } this.mailboxToADObjectIdMap[contentMailboxGuid] = aduser.Id; contentMailbox = aduser.Id; } ADPublicFolder adpublicFolder = null; switch (flags) { case LinkMailPublicFolderFlags.ObjectGuid: adpublicFolder = (this.orgRecipientSession.Read(new ADObjectId(objectId)) as ADPublicFolder); if (adpublicFolder == null) { base.Report.Append(new ReportEntry(MrsStrings.MoveRequestMessageWarning(MrsStrings.MailPublicFolderWithObjectIdNotFound(new Guid(objectId))))); } break; case LinkMailPublicFolderFlags.EntryId: { string text = PublicFolderSession.ConvertToLegacyDN("e71f13d1-0178-42a7-8c47-24206de84a77", HexConverter.ByteArrayToHexString(objectId)); ADRecipient[] array = this.orgRecipientSession.Find(null, QueryScope.SubTree, new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.LegacyExchangeDN, text), null, 2); if (array.Length == 1) { adpublicFolder = (array[0] as ADPublicFolder); } else if (array.Length > 1) { base.Report.Append(new ReportEntry(MrsStrings.MoveRequestMessageWarning(MrsStrings.MailPublicFolderWithMultipleEntriesFound(text)))); } else { base.Report.Append(new ReportEntry(MrsStrings.MoveRequestMessageWarning(MrsStrings.MailPublicFolderWithLegacyExchangeDnNotFound(text)))); } break; } default: throw new UnexpectedErrorPermanentException(-2147024809); } if (adpublicFolder != null) { adpublicFolder.ContentMailbox = contentMailbox; adpublicFolder.EntryId = HexConverter.ByteArrayToHexString(base.DestMailbox.GetSessionSpecificEntryId(sourceFolderEntryId)); this.orgRecipientSession.Save(adpublicFolder); result = adpublicFolder.Guid; } } catch (LocalizedException ex) { base.Report.Append(new ReportEntry(new LocalizedString(ex.Message))); throw; } return(result); }