public static PageUrlOptions ParsePublicUrl(string url, out NameValueCollection notUsedQueryParameters) { var urlString = new UrlString(url); notUsedQueryParameters = null; if (!IsPublicUrl(urlString.FilePath)) { return(null); } string requestPath; Uri uri; if (Uri.TryCreate(urlString.FilePath, UriKind.Absolute, out uri)) { requestPath = HttpUtility.UrlDecode(uri.AbsolutePath).ToLower(); } else { requestPath = urlString.FilePath.ToLower(); } string requestPathWithoutUrlMappingName; CultureInfo locale = PageUrl.GetCultureInfo(requestPath, out requestPathWithoutUrlMappingName); if (locale == null) { return(null); } string dataScopeName = urlString["dataScope"]; if (dataScopeName.IsNullOrEmpty()) { dataScopeName = DataScopeIdentifier.GetDefault().Name; } Guid pageId = Guid.Empty; using (new DataScope(DataScopeIdentifier.Deserialize(dataScopeName), locale)) { if (PageStructureInfo.GetLowerCaseUrlToIdLookup().TryGetValue(requestPath.ToLower(), out pageId) == false) { return(null); } } urlString["dataScope"] = null; notUsedQueryParameters = urlString.GetQueryParameters(); return(new PageUrlOptions(dataScopeName, locale, pageId, UrlType.Public)); }
public static UrlString BuildUrl(UrlType urlType, PageUrlOptions options) { Verify.ArgumentNotNull(options, "options"); Verify.ArgumentCondition(urlType != UrlType.Undefined, "urlType", "Url type is undefined"); if (urlType == UrlType.Public) { var lookupTable = PageStructureInfo.GetIdToUrlLookup(options.DataScopeIdentifierName, options.Locale); if (!lookupTable.ContainsKey(options.PageId)) { return(null); } var publicUrl = new UrlString(lookupTable[options.PageId]); if (options.DataScopeIdentifierName != DataScopeIdentifier.GetDefault().Name) { publicUrl["dataScope"] = options.DataScopeIdentifierName; } return(publicUrl); } if (urlType == UrlType.Internal) { string basePath = UrlUtils.ResolvePublicUrl("Renderers/Page.aspx"); var result = new UrlString(basePath); result["pageId"] = options.PageId.ToString(); result["cultureInfo"] = options.Locale.ToString(); result["dataScope"] = options.DataScopeIdentifierName; return(result); } throw new NotImplementedException("BuildUrl function supports only 'Public' and 'Unternal' urls."); }
public static UrlString BuildUrl(UrlType urlType, PageUrlOptions options) { Verify.ArgumentNotNull(options, "options"); Verify.ArgumentCondition(urlType != UrlType.Undefined, "urlType", "Url type is undefined"); if (urlType == UrlType.Public) { var lookupTable = PageStructureInfo.GetIdToUrlLookup(options.DataScopeIdentifierName, options.Locale); if (!lookupTable.ContainsKey(options.PageId)) { return null; } var publicUrl = new UrlString(lookupTable[options.PageId]); if(options.DataScopeIdentifierName != DataScopeIdentifier.GetDefault().Name) { publicUrl["dataScope"] = options.DataScopeIdentifierName; } return publicUrl; } if(urlType == UrlType.Internal) { string basePath = UrlUtils.ResolvePublicUrl("Renderers/Page.aspx"); var result = new UrlString(basePath); result["pageId"] = options.PageId.ToString(); result["cultureInfo"] = options.Locale.ToString(); result["dataScope"] = options.DataScopeIdentifierName; return result; } throw new NotImplementedException("BuildUrl function supports only 'Public' and 'Unternal' urls."); }
public static bool IsInternalUrl(UrlString url) { return url.FilePath.EndsWith("Renderers/Page.aspx", true); }
public static bool IsPublicUrl(UrlString url) { return IsPublicUrl(url.FilePath); }
public static PageUrlOptions ParsePublicUrl(string url, out NameValueCollection notUsedQueryParameters) { var urlString = new UrlString(url); notUsedQueryParameters = null; if (!IsPublicUrl(urlString.FilePath)) { return null; } string requestPath; Uri uri; if (Uri.TryCreate(urlString.FilePath, UriKind.Absolute, out uri)) { requestPath = HttpUtility.UrlDecode(uri.AbsolutePath).ToLower(); } else { requestPath = urlString.FilePath.ToLower(); } string requestPathWithoutUrlMappingName; CultureInfo locale = PageUrl.GetCultureInfo(requestPath, out requestPathWithoutUrlMappingName); if (locale == null) { return null; } string dataScopeName = urlString["dataScope"]; if(dataScopeName.IsNullOrEmpty()) { dataScopeName = DataScopeIdentifier.GetDefault().Name; } Guid pageId = Guid.Empty; using (new DataScope(DataScopeIdentifier.Deserialize(dataScopeName), locale)) { if (PageStructureInfo.GetLowerCaseUrlToIdLookup().TryGetValue(requestPath.ToLower(), out pageId) == false) { return null; } } urlString["dataScope"] = null; notUsedQueryParameters = urlString.GetQueryParameters(); return new PageUrlOptions(dataScopeName, locale, pageId, UrlType.Public); }
public static PageUrlOptions ParseInternalUrl(string url, out NameValueCollection notUsedQueryStringParameters) { var urlString = new UrlString(url); return ParseQueryString(urlString.GetQueryParameters(), out notUsedQueryStringParameters); }
public static PageUrlOptions ParseUrl(string url) { var urlString = new UrlString(url); return IsPublicUrl(urlString) ? ParsePublicUrl(url) : ParseInternalUrl(url); }
public static bool IsInternalUrl(UrlString url) { return(url.FilePath.EndsWith("Renderers/Page.aspx", true)); }
public static bool IsPublicUrl(UrlString url) { return(IsPublicUrl(url.FilePath)); }
public static PageUrlOptions ParseInternalUrl(string url, out NameValueCollection notUsedQueryStringParameters) { var urlString = new UrlString(url); return(ParseQueryString(urlString.GetQueryParameters(), out notUsedQueryStringParameters)); }
public static PageUrlOptions ParseUrl(string url) { var urlString = new UrlString(url); return(IsPublicUrl(urlString) ? ParsePublicUrl(url) : ParseInternalUrl(url)); }