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