Example #1
0
        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));
        }
Example #2
0
        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);
        }
Example #3
0
 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));
 }