public CatalogItemContextBase <TPathStorageType> Combine(string url, bool checkProtocol, bool externalFormat)
 {
     if (!IsReportServerPathOrUrl(url, checkProtocol, out bool isRelative))
     {
         return(null);
     }
     if (isRelative)
     {
         string text = MapUserProvidedPath(url);
         if (externalFormat && m_PathTranslator != null)
         {
             string text2 = m_PathTranslator.PathToExternal(text);
             if (text2 != null)
             {
                 text = text2;
             }
         }
         CatalogItemContextBase <TPathStorageType> catalogItemContextBase = CreateContext(m_PathTranslator);
         ItemPathOptions itemPathOptions = ItemPathOptions.Validate;
         itemPathOptions = (ItemPathOptions)((int)itemPathOptions | (externalFormat ? 4 : 2));
         if (!catalogItemContextBase.SetPath(text, itemPathOptions))
         {
             throw new ItemNotFoundException(text.MarkAsPrivate());
         }
         catalogItemContextBase.RSRequestParameters.SetCatalogParameters(null);
         return(catalogItemContextBase);
     }
     return(null);
 }