示例#1
0
 public override void Begin(object state)
 {
     try
     {
         GrayException.MapAndReportGrayExceptions(delegate()
         {
             base.SafeInitializeLoggingStream();
             SiteSynchronizer siteSynchronizer = new SiteSynchronizer(this, base.SyncInfoEntry.MailboxSession, base.SyncInfoEntry.ResourceMonitor, base.SyncInfoEntry.SiteUrl, this.credentials, ((TeamMailboxSyncConfiguration)base.Config).UseOAuth, ((TeamMailboxSyncConfiguration)base.Config).HttpDebugEnabled, this.syncCycleLogStream);
             siteSynchronizer.BeginExecute(new AsyncCallback(this.OnSiteSynchronizationCompleted), siteSynchronizer);
         });
     }
     catch (GrayException lastError)
     {
         base.LastError = lastError;
         this.End();
     }
 }
示例#2
0
        private void OnSiteSynchronizationCompleted(IAsyncResult asyncResult)
        {
            if (asyncResult == null)
            {
                throw new InvalidOperationException("DocumentSyncJob.OnSiteSynchronizationCompleted: asyncResult cannot be null here.");
            }
            SiteSynchronizer siteSynchronizer = asyncResult.AsyncState as SiteSynchronizer;

            if (siteSynchronizer == null)
            {
                throw new InvalidOperationException("DocumentSyncJob.OnSiteSynchronizationCompleted: asyncResult.AsyncState is not SiteSynchronizer");
            }
            siteSynchronizer.EndExecute(asyncResult);
            if (siteSynchronizer.LastError != null || base.IsShuttingdown)
            {
                base.LastError = siteSynchronizer.LastError;
                this.End();
                return;
            }
            this.documentLibraryInfos = (Queue <DocumentLibraryInfo>)siteSynchronizer.SyncResult;
            this.SynchronizeNextDocumentLibrary();
        }