예제 #1
0
 // Token: 0x060001DF RID: 479 RVA: 0x00006E88 File Offset: 0x00005088
 public static AnchorDataProvider CreateProviderForMigrationMailboxFolder(AnchorContext context, AnchorADProvider activeDirectoryProvider, string folderName)
 {
     AnchorUtil.ThrowOnNullArgument(context, "context");
     AnchorUtil.ThrowOnNullArgument(activeDirectoryProvider, "activeDirectoryProvider");
     AnchorUtil.ThrowOnNullArgument(folderName, "folderName");
     return(AnchorDataProvider.CreateProviderForMailboxSession(context, activeDirectoryProvider, folderName, new Func <ExchangePrincipal, MailboxSession>(AnchorDataProvider.OpenMailboxSession)));
 }
예제 #2
0
        // 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);
        }
예제 #3
0
        // 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);
        }
예제 #4
0
 // Token: 0x060001E4 RID: 484 RVA: 0x000072C0 File Offset: 0x000054C0
 public IEnumerable <StoreObjectId> FindMessageIds(QueryFilter queryFilter, PropertyDefinition[] properties, SortBy[] sortBy, AnchorRowSelector rowSelector, int?maxCount)
 {
     AnchorUtil.ThrowOnCollectionEmptyArgument(sortBy, "sortBy");
     if (maxCount == null || maxCount.Value > 0)
     {
         if (properties == null)
         {
             properties = new PropertyDefinition[0];
         }
         PropertyDefinition[] columns = new PropertyDefinition[1 + properties.Length];
         columns[0] = ItemSchema.Id;
         Array.Copy(properties, 0, columns, 1, properties.Length);
         using (IQueryResult itemQueryResult = this.folder.Folder.IItemQuery(ItemQueryType.Associated, queryFilter, sortBy, columns))
         {
             foreach (StoreObjectId id in AnchorDataProvider.ProcessQueryRows(columns, itemQueryResult, rowSelector, 0, maxCount))
             {
                 yield return(id);
             }
         }
     }
     yield break;
 }