public void LoadFolderMap(GetFolderMapFlags flags, Func <FolderMap> getFolderMap) { if (this.FolderMap != null && !flags.HasFlag(GetFolderMapFlags.ForceRefresh)) { return; } this.FolderMap = getFolderMap(); }
public override FolderMap GetSourceFolderMap(GetFolderMapFlags flags) { base.SourceMailboxWrapper.LoadFolderMap(flags, delegate { FolderHierarchy folderHierarchy = new FolderHierarchy(FolderHierarchyFlags.None, base.SourceMailboxWrapper); folderHierarchy.LoadHierarchy(EnumerateFolderHierarchyFlags.None, null, false, this.GetAdditionalFolderPtags()); return(folderHierarchy); }); return(base.SourceMailboxWrapper.FolderMap); }
public override FolderMap GetDestinationFolderMap(GetFolderMapFlags flags) { base.DestMailboxWrapper.LoadFolderMap(flags, delegate { FolderHierarchy folderHierarchy = new FolderHierarchy(FolderHierarchyFlags.PublicFolderMailbox, base.DestMailboxWrapper); folderHierarchy.LoadHierarchy(EnumerateFolderHierarchyFlags.None, null, false, new PropTag[] { PropTag.ReplicaList, PropTag.LTID, PropTag.TimeInServer }); return(folderHierarchy); }); return(base.DestMailboxWrapper.FolderMap); }
public override FolderMap GetDestinationFolderMap(GetFolderMapFlags flags) { base.DestMailboxWrapper.LoadFolderMap(flags, delegate { List <FolderRecWrapper> list = new List <FolderRecWrapper>(this.hierarchyFolderEntryIds.Count); foreach (byte[] entryId in this.hierarchyFolderEntryIds) { byte[] sessionSpecificEntryId = base.DestMailbox.GetSessionSpecificEntryId(entryId); using (IDestinationFolder folder = base.DestMailbox.GetFolder(sessionSpecificEntryId)) { list.Add(new FolderRecWrapper(folder.GetFolderRec(null, GetFolderRecFlags.None))); } } return(new PublicFolderMap(list)); }); return(base.DestMailboxWrapper.FolderMap); }