protected virtual bool TryGetSharePointSiteUrlAndTitle(Uri collectionUrl, Guid webId, out Uri siteUrl, out string siteTitle, out Exception ex)
 {
     ex        = null;
     siteUrl   = null;
     siteTitle = string.Empty;
     try
     {
         using (ClientContext clientContext = new ClientContext(collectionUrl))
         {
             TeamMailboxClientOperations.ConfigureClientContext(clientContext, this.credential, this.isOAuthCredential, this.enableHttpDebugProxy, 60000);
             Site site = clientContext.Site;
             Web  web  = site.OpenWebById(webId);
             clientContext.Load <Web>(web, new Expression <Func <Web, object> >[]
             {
                 (Web x) => x.Url,
                 (Web x) => x.Title
             });
             clientContext.ExecuteQuery();
             string uriString = null;
             if (MaintenanceSynchronizer.TryEscapeAndGetWellFormedUrl(web.Url, out uriString))
             {
                 siteUrl   = new Uri(uriString);
                 siteTitle = web.Title;
             }
             else
             {
                 ex = new SharePointException(web.Url, ClientStrings.ErrorSharePointSiteHasNoValidUrl(web.Url));
             }
         }
     }
     catch (ClientRequestException ex2)
     {
         ex = ex2;
     }
     catch (ServerException ex3)
     {
         ex = ex3;
     }
     catch (TimeoutException ex4)
     {
         ex = ex4;
     }
     catch (IOException ex5)
     {
         ex = ex5;
     }
     catch (WebException ex6)
     {
         ex = ex6;
     }
     return(ex == null);
 }
Пример #2
0
 public override void Begin(object state)
 {
     try
     {
         GrayException.MapAndReportGrayExceptions(delegate()
         {
             base.SafeInitializeLoggingStream();
             MaintenanceSynchronizer maintenanceSynchronizer = new MaintenanceSynchronizer(this, base.SyncInfoEntry.MailboxSession, base.SyncInfoEntry.MailboxPrincipal.MailboxInfo.OrganizationId, base.SyncInfoEntry.WebCollectionUrl, base.SyncInfoEntry.WebId, base.SyncInfoEntry.SiteUrl, base.SyncInfoEntry.DisplayName, base.SyncInfoEntry.ResourceMonitor, this.credentials, ((TeamMailboxSyncConfiguration)base.Config).UseOAuth, ((TeamMailboxSyncConfiguration)base.Config).HttpDebugEnabled, this.syncCycleLogStream);
             maintenanceSynchronizer.BeginExecute(new AsyncCallback(this.OnMaintenanceSynchronizationCompleted), maintenanceSynchronizer);
         });
     }
     catch (GrayException lastError)
     {
         base.LastError = lastError;
         this.End();
     }
 }
Пример #3
0
        private void OnMaintenanceSynchronizationCompleted(IAsyncResult asyncResult)
        {
            if (asyncResult == null)
            {
                throw new InvalidOperationException("TeamMailboxSyncJob.OnMaintenanceSynchronizationCompleted: asyncResult cannot be null here.");
            }
            MaintenanceSynchronizer maintenanceSynchronizer = asyncResult.AsyncState as MaintenanceSynchronizer;

            if (maintenanceSynchronizer == null)
            {
                throw new InvalidOperationException("TeamMailboxSyncJob.OnMaintenanceSynchronizationCompleted: asyncResult.AsyncState is not MaintenanceSynchronizer");
            }
            maintenanceSynchronizer.EndExecute(asyncResult);
            if (maintenanceSynchronizer.LastError != null)
            {
                base.LastError = maintenanceSynchronizer.LastError;
            }
            this.End();
        }