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); }
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(); } }
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(); }