protected override bool GetNewOperations(int windowSize, Dictionary <ISyncItemId, ServerManifestEntry> tempServerManifest) { if (base.CurSnapShotWatermark == null) { if (Command.CurrentCommand != null) { Command.CurrentCommand.ProtocolLogger.SetProviderSyncType(this.CollectionId, ProviderSyncType.ICS); Command.CurrentCommand.Context.SetDiagnosticValue(AirSyncConditionalHandlerSchema.IcsSync, true); } return(this.syncProvider.GetNewOperations(base.CurMaxWatermark, null, true, windowSize, null, tempServerManifest)); } FirstTimeSyncProvider firstTimeSyncProvider = this.syncProvider as FirstTimeSyncProvider; if (this.CurFTSMaxWatermark == null) { this.CurFTSMaxWatermark = firstTimeSyncProvider.GetNewFirstTimeSyncWatermark(); } ExTraceGlobals.SyncProcessTracer.Information <ExDateTime>((long)this.GetHashCode(), "FirstTimeFolderSync.GetNewOperations. Performing FirstTimeSync with MaxWatermark '{0}'", (this.CurFTSMaxWatermark as FirstTimeSyncWatermark).ReceivedDateUtc); if (Command.CurrentCommand != null) { Command.CurrentCommand.ProtocolLogger.SetProviderSyncType(this.CollectionId, ProviderSyncType.IQ); Command.CurrentCommand.Context.SetDiagnosticValue(AirSyncConditionalHandlerSchema.ItemQuerySync, true); } return(firstTimeSyncProvider.FirstTimeSync(base.ClientState, this.CurFTSMaxWatermark as FirstTimeSyncWatermark, FolderSync.ComputeQueryHint(this.filters), windowSize, tempServerManifest)); }
protected override void InitializeAllItemsInFilter(QueryBasedSyncFilter queryBasedSyncFilter) { FirstTimeSyncProvider firstTimeSyncProvider = this.syncProvider as FirstTimeSyncProvider; if (firstTimeSyncProvider != null) { ExTraceGlobals.SyncProcessTracer.Information((long)this.GetHashCode(), "FirstTimeFolderSync.InitializeAllItemsInFilter. Using FTS Provider"); queryBasedSyncFilter.EntriesInFilter.Clear(); FirstTimeSyncWatermark minWatermark = firstTimeSyncProvider.GetNewFirstTimeSyncWatermark() as FirstTimeSyncWatermark; if (Command.CurrentCommand != null) { Command.CurrentCommand.ProtocolLogger.SetProviderSyncType(this.CollectionId, ProviderSyncType.FCS); Command.CurrentCommand.Context.SetDiagnosticValue(AirSyncConditionalHandlerSchema.FilterChangeSync, true); if (base.IsFirstSyncScenario) { Command.CurrentCommand.Context.SetDiagnosticValue(AirSyncConditionalHandlerSchema.InitialSync, true); } } firstTimeSyncProvider.FirstTimeSync(null, minWatermark, queryBasedSyncFilter.FilterQuery, -1, queryBasedSyncFilter.EntriesInFilter); return; } ExTraceGlobals.SyncProcessTracer.Information((long)this.GetHashCode(), "FirstTimeFolderSync.InitializeAllItemsInFilter. Using Old Provider"); base.InitializeAllItemsInFilter(queryBasedSyncFilter); }
private QueryResult GetPositionedQueryResult(FirstTimeSyncWatermark minWatermark, ExDateTime?filterCutoffDate, ICollection <PropertyDefinition> propDefs, out int rowsToFetch) { return(FirstTimeSyncProvider.GetPositionedQueryResult(this.folder, this.ABQMailId, minWatermark, filterCutoffDate, propDefs, this.trackAssociatedMessageChanges, out rowsToFetch)); }