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