예제 #1
0
        internal static SyncRequest CreateSyncRequestForAllMessages(string syncKey, string serverId, int windowSize, bool recentOnly)
        {
            SyncFilterType filter = recentOnly ? SyncFilterType.ThreeDaysBack : SyncFilterType.NoFilter;

            Microsoft.Exchange.Connections.Eas.Model.Request.AirSync.Collection item = EasRequestGenerator.CollectionForSyncMetadata(syncKey, serverId, windowSize, filter);
            return(new SyncRequest
            {
                Collections =
                {
                    item
                }
            });
        }
예제 #2
0
        internal static GetItemEstimateRequest CreateEstimateRequest(string syncKey, string serverId, bool recentOnly)
        {
            SyncFilterType filter = recentOnly ? SyncFilterType.ThreeDaysBack : SyncFilterType.NoFilter;

            Microsoft.Exchange.Connections.Eas.Model.Request.GetItemEstimate.Collection item = EasRequestGenerator.CollectionForItemEstimate(syncKey, serverId, filter);
            return(new GetItemEstimateRequest
            {
                Collections =
                {
                    item
                }
            });
        }
예제 #3
0
		public static SyncFilterList Create(IEnumerable<string> items, SyncFilterType filterType)
		{
			SyncFilterList filterList = null;
			switch (filterType)
			{
				case SyncFilterType.ByWhiteList:
					filterList = new WhiteListFilter(items, filterType);
					break;
				case SyncFilterType.ByExtensions:
					filterList = new ExtensionsListFilter(items, filterType);
					break;
			}
			if (filterList != null)
			{
				filterList.Init();
				return filterList;
			}
			throw new NotImplementedException("Filter list of this type is not realized");
		}
		public ExtensionsListFilter(IEnumerable<string> items, SyncFilterType filterType) : base(items, filterType) { }
예제 #5
0
		protected SyncFilterList(IEnumerable<string> items, SyncFilterType filterType)
		{
			FilterType = filterType;
			_sourceItems.AddRange(items.Distinct());
		}
		public WhiteListFilter(IEnumerable<string> items, SyncFilterType filterType) : base(items, filterType) { }
예제 #7
0
 private static Microsoft.Exchange.Connections.Eas.Model.Request.GetItemEstimate.Collection CollectionForItemEstimate(string syncKey, string serverId, SyncFilterType filter)
 {
     Microsoft.Exchange.Connections.Eas.Model.Request.GetItemEstimate.Collection collection = new Microsoft.Exchange.Connections.Eas.Model.Request.GetItemEstimate.Collection
     {
         SyncKey      = syncKey,
         CollectionId = serverId
     };
     Microsoft.Exchange.Connections.Eas.Model.Request.AirSync.Options item = new Microsoft.Exchange.Connections.Eas.Model.Request.AirSync.Options
     {
         FilterType = new byte?((byte)filter)
     };
     collection.Options.Add(item);
     return(collection);
 }
예제 #8
0
 private static Microsoft.Exchange.Connections.Eas.Model.Request.AirSync.Collection CollectionForSyncMetadata(string syncKey, string serverId, int windowSize, SyncFilterType filter)
 {
     Microsoft.Exchange.Connections.Eas.Model.Request.AirSync.Collection collection = new Microsoft.Exchange.Connections.Eas.Model.Request.AirSync.Collection
     {
         SyncKey        = syncKey,
         CollectionId   = serverId,
         DeletesAsMoves = new bool?(false),
         WindowSize     = new int?(Math.Max(0, Math.Min(windowSize, 512)))
     };
     Microsoft.Exchange.Connections.Eas.Model.Request.AirSync.Options item = new Microsoft.Exchange.Connections.Eas.Model.Request.AirSync.Options
     {
         FilterType = new byte?((byte)filter)
     };
     collection.Options.Add(item);
     return(collection);
 }