public static UrlScheme GetScheme(this List <UrlScheme> urlSchemes, string url, UrlSchemeType type) { if (urlSchemes is null || urlSchemes.Count == 0 || string.IsNullOrWhiteSpace(url)) { return(null); } var uri = new Uri(url); var scheme = string.IsNullOrWhiteSpace(uri.Scheme) ? string.Empty : uri.Scheme; var host = string.IsNullOrWhiteSpace(uri.Host) ? string.Empty : uri.Host; var itemList = urlSchemes.Where((x => x.IsUrlOfSameScheme(url) && (!string.IsNullOrWhiteSpace(x.Scheme) && x.Scheme.Equals(scheme, StringComparison.InvariantCultureIgnoreCase)) && (!string.IsNullOrWhiteSpace(x.Host) && x.Scheme.Equals(host, StringComparison.InvariantCultureIgnoreCase)) && (x.UrlSchemeType == type))); if (itemList is not null && itemList.Any()) { return(itemList.FirstOrDefault()); } itemList = urlSchemes.Where((x => x.IsUrlOfSameScheme(url) && (!string.IsNullOrWhiteSpace(x.Scheme) && x.Scheme.Equals(scheme, StringComparison.InvariantCultureIgnoreCase)) && (x.UrlSchemeType == type))); if (itemList is not null && itemList.Any()) { return(itemList.FirstOrDefault()); } return(null); }
/// <summary> /// Initializes a new instance of the <see cref="UrlScheme"/> class. /// </summary> /// <param name="baseUrl"> /// The base url. /// </param> /// <param name="type"> /// The is url scheme type. /// </param> /// <param name="baseUrlStrict"> /// Sets true or false, if base url must be relative to the base url. /// </param> public UrlScheme(string baseUrl, UrlSchemeType type, bool baseUrlStrict = true) { BaseUrl = baseUrl; UrlSchemeType = type; BaseUrlStrict = baseUrlStrict; if (!string.IsNullOrEmpty(BaseUrl)) { var uri = new Uri(BaseUrl); Scheme = uri.Scheme; Host = uri.Host; } }
public void Add(string scheme, string host, UrlSchemeType urlSchemeType, IResourceHandler handler) { if (handler != null) { string key = Key(scheme, host); if (!string.IsNullOrWhiteSpace(key)) { if (!_handlerMap.ContainsKey(key)) { var urlScheme = new UrlScheme(scheme, host, string.Empty, urlSchemeType); _handlerMap[key] = new Tuple <UrlScheme, IResourceHandler>(urlScheme, handler); } } } }
public UrlScheme(string name, string scheme, string host, string baseUrl, UrlSchemeType type, bool baseUrlStrict = true, AssemblyOptions assemblyOptions = null) { Name = name; Scheme = scheme; Host = host; BaseUrl = baseUrl; UrlSchemeType = type; BaseUrlStrict = baseUrlStrict; AssemblyOptions = assemblyOptions; if (!string.IsNullOrEmpty(BaseUrl)) { var uri = new Uri(BaseUrl); Scheme = uri.Scheme; Host = uri.Host; } }
public UrlScheme(string scheme, string host, UrlSchemeType type) { Name = Guid.NewGuid().ToString(); Scheme = scheme; Host = host; BaseUrl = null; UrlSchemeType = type; BaseUrlStrict = false; AssemblyOptions = null; if (!string.IsNullOrEmpty(BaseUrl)) { var uri = new Uri(BaseUrl); Scheme = uri.Scheme; Host = uri.Host; } }
public UrlScheme(string scheme, string host, string baseUrl, UrlSchemeType type, bool baseUrlStrict = false, AssemblyOptions assemblyOptions = null) { Name = Guid.NewGuid().ToString(); Scheme = scheme; Host = host; Folder = null; BaseUrl = baseUrl; UrlSchemeType = type; BaseUrlStrict = baseUrlStrict; AssemblyOptions = assemblyOptions; if (!string.IsNullOrEmpty(BaseUrl)) { var uri = new Uri(BaseUrl); Scheme = uri.Scheme; Host = uri.Host; } }
public static List <UrlScheme> GetSchemeList(this List <UrlScheme> urlSchemes, string url, UrlSchemeType type) { if (urlSchemes == null || urlSchemes.Count == 0 || string.IsNullOrWhiteSpace(url)) { return(null); } return(urlSchemes.Where((x => x.IsUrlOfSameScheme(url) && (x.UrlSchemeType == type))).ToList()); }
public static IEnumerable <UrlScheme> GetSchemesByType(this List <UrlScheme> urlSchemes, UrlSchemeType type) { if (urlSchemes is null || !urlSchemes.Any()) { return(new List <UrlScheme>()); } return(urlSchemes.Where((x => (x.UrlSchemeType == type))).ToList()); }
/// <summary> /// Initializes a new instance of the <see cref="UrlScheme"/> class. /// </summary> /// <param name="scheme"> /// The scheme. /// </param> /// <param name="host"> /// The host. /// </param> /// <param name="type"> /// The is external. /// </param> public UrlScheme(string scheme, string host, UrlSchemeType type) { Scheme = scheme; Host = host; UrlSchemeType = type; }