private static Folder GetFolder(AnchorContext context, MailboxSession mailboxSession, StoreObjectId rootFolderId, string folderName) { AnchorUtil.ThrowOnNullArgument(mailboxSession, "mailboxSession"); AnchorUtil.ThrowOnNullArgument(rootFolderId, "rootFolderId"); AnchorUtil.ThrowOnNullArgument(folderName, "folderName"); Folder result; using (DisposeGuard disposeGuard = default(DisposeGuard)) { Folder folder = null; StoreObjectId storeObjectId = AnchorFolder.GetFolderId(context, mailboxSession, rootFolderId, folderName); if (storeObjectId == null) { folder = Folder.Create(mailboxSession, rootFolderId, StoreObjectType.Folder, folderName, CreateMode.OpenIfExists); disposeGuard.Add <Folder>(folder); folder.Save(); folder.Load(AnchorFolder.FolderIdPropertyDefinition); storeObjectId = folder.Id.ObjectId; } if (folder == null) { folder = Folder.Bind(mailboxSession, storeObjectId, AnchorFolder.FolderIdPropertyDefinition); disposeGuard.Add <Folder>(folder); } disposeGuard.Success(); result = folder; } return(result); }
// Token: 0x060001E1 RID: 481 RVA: 0x00006EE4 File Offset: 0x000050E4 public bool MoveMessageItems(StoreObjectId[] itemsToMove, string folderName) { bool result; using (AnchorFolder anchorFolder = AnchorFolder.GetFolder(this.anchorContext, this.MailboxSession, folderName)) { GroupOperationResult groupOperationResult = this.folder.Folder.MoveItems(anchorFolder.Folder.Id, itemsToMove); result = (groupOperationResult.OperationResult == OperationResult.Succeeded); } return(result); }
// Token: 0x060001E7 RID: 487 RVA: 0x000073B4 File Offset: 0x000055B4 public IAnchorDataProvider GetProviderForFolder(AnchorContext context, string folderName) { IAnchorDataProvider result; using (DisposeGuard disposeGuard = default(DisposeGuard)) { AnchorFolder disposable = AnchorFolder.GetFolder(this.anchorContext, this.MailboxSession, folderName); disposeGuard.Add <AnchorFolder>(disposable); AnchorDataProvider anchorDataProvider = new AnchorDataProvider(context, this.activeDirectoryProvider, this.MailboxSession, disposable, false); disposeGuard.Success(); result = anchorDataProvider; } return(result); }
internal static AnchorFolder GetFolder(AnchorContext context, MailboxSession mailboxSession, string folderName) { AnchorFolder result; using (DisposeGuard disposeGuard = default(DisposeGuard)) { Folder folder = AnchorFolder.GetFolder(context, mailboxSession, mailboxSession.GetDefaultFolderId(DefaultFolderType.Root), folderName); disposeGuard.Add <Folder>(folder); AnchorFolder anchorFolder = new AnchorFolder(context, folder); disposeGuard.Success(); result = anchorFolder; } return(result); }
// Token: 0x060001E6 RID: 486 RVA: 0x00007328 File Offset: 0x00005528 public IAnchorStoreObject GetFolderByName(string folderName, PropertyDefinition[] properties) { AnchorUtil.ThrowOnNullArgument(properties, "properties"); AnchorUtil.AssertOrThrow(this.MailboxSession != null, "Should have a MailboxSession", new object[0]); IAnchorStoreObject result; using (DisposeGuard disposeGuard = default(DisposeGuard)) { IAnchorStoreObject anchorStoreObject = AnchorFolder.GetFolder(this.anchorContext, this.MailboxSession, folderName); disposeGuard.Add <IAnchorStoreObject>(anchorStoreObject); anchorStoreObject.Load(properties); disposeGuard.Success(); result = anchorStoreObject; } return(result); }
// Token: 0x060001EA RID: 490 RVA: 0x00007478 File Offset: 0x00005678 private static AnchorDataProvider CreateProviderForMailboxSession(AnchorContext context, AnchorADProvider activeDirectoryProvider, string folderName, Func <ExchangePrincipal, MailboxSession> mailboxSessionCreator) { AnchorUtil.ThrowOnNullArgument(mailboxSessionCreator, "mailboxSessionCreator"); AnchorDataProvider result; using (DisposeGuard disposeGuard = default(DisposeGuard)) { ExchangePrincipal mailboxOwner = activeDirectoryProvider.GetMailboxOwner(AnchorDataProvider.GetMailboxFilter(context.AnchorCapability)); MailboxSession disposable = mailboxSessionCreator(mailboxOwner); disposeGuard.Add <MailboxSession>(disposable); AnchorFolder disposable2 = AnchorFolder.GetFolder(context, disposable, folderName); disposeGuard.Add <AnchorFolder>(disposable2); AnchorDataProvider anchorDataProvider = new AnchorDataProvider(context, activeDirectoryProvider, disposable, disposable2, true); disposeGuard.Success(); result = anchorDataProvider; } return(result); }
// Token: 0x060001D4 RID: 468 RVA: 0x00006D20 File Offset: 0x00004F20 private AnchorDataProvider(AnchorContext anchorContext, AnchorADProvider activeDirectoryProvider, MailboxSession mailboxSession, AnchorFolder folder, bool ownSession) { AnchorUtil.ThrowOnNullArgument(anchorContext, "anchorContext"); AnchorUtil.ThrowOnNullArgument(activeDirectoryProvider, "activeDirectoryProvider"); AnchorUtil.ThrowOnNullArgument(mailboxSession, "mailboxSession"); AnchorUtil.ThrowOnNullArgument(folder, "folder"); this.anchorContext = anchorContext; this.activeDirectoryProvider = activeDirectoryProvider; this.MailboxSession = mailboxSession; this.folder = folder; this.ownSession = ownSession; }
public static bool RemoveFolder(AnchorContext context, MailboxSession mailboxSession, string folderName) { StoreObjectId defaultFolderId = mailboxSession.GetDefaultFolderId(DefaultFolderType.Root); StoreObjectId folderId = AnchorFolder.GetFolderId(context, mailboxSession, defaultFolderId, folderName); if (folderId == null) { context.Logger.Log(MigrationEventType.Verbose, "couldn't find folder with name {0} treating as success", new object[] { folderName }); return(true); } using (Folder folder = Folder.Bind(mailboxSession, folderId, AnchorFolder.FolderIdPropertyDefinition)) { context.Logger.Log(MigrationEventType.Information, "About to remove all messages & subfolders from {0} with id {1}", new object[] { folderName, folderId }); GroupOperationResult groupOperationResult = folder.DeleteAllObjects(DeleteItemFlags.HardDelete, true); if (groupOperationResult.OperationResult != OperationResult.Succeeded) { context.Logger.Log(MigrationEventType.Warning, "unsuccessfully removed messages & subfolders from {0} with id {1} with result {2}", new object[] { folderName, folderId, groupOperationResult }); return(false); } } bool result; using (Folder folder2 = Folder.Bind(mailboxSession, defaultFolderId)) { context.Logger.Log(MigrationEventType.Information, "About to remove folder {0} with id {1}", new object[] { folderName, folderId }); AggregateOperationResult aggregateOperationResult = folder2.DeleteObjects(DeleteItemFlags.HardDelete, new StoreId[] { folderId }); if (aggregateOperationResult.OperationResult != OperationResult.Succeeded) { context.Logger.Log(MigrationEventType.Warning, "unsuccessfully removed folder {0} with id {1} with result {2}", new object[] { folderName, folderId, aggregateOperationResult }); result = false; } else { result = true; } } return(result); }