/// <summary> /// Determines whether the specified <paramref name="url"/> is Uniform Resource Locator. /// </summary> /// <param name="url">The specified url.</param> /// <returns> /// <c>true</c> if the specified <paramref name="url"/> is URL; otherwise, <c>false</c>. /// </returns> public bool IsUrl(string url) { if (Regex.IsMatch(url, UrlPattern)) { Match match = Regex.Match(url, UrlPattern); Url = new UrlAddressElement(); Url.Schema = match.Groups[1].Value; Url.Host = match.Groups[2].Value; string segments = match.Groups[3].Value; string parameters = match.Groups[5].Value; if (string.IsNullOrEmpty(segments) == false) { var matchSegments = Regex.Matches(segments, SegmentPattern); var list = matchSegments.Cast <Match>().ToList(); if (list.Count > 0) { Url.Uri = new List <string>(); foreach (var item in list) { Url.Uri.Add(item.Value); } } } if (string.IsNullOrEmpty(parameters) == false) { var matchParameters = Regex.Matches(parameters, ParameterPattern); var dict = matchParameters.Cast <Match>().ToDictionary( m => m.Groups[1].Value, m => m.Groups[2].Value); if (dict.Values.Count > 0) { Url.Parameters = new List <ParameterElement>(); foreach (var item in dict) { Url.Parameters.Add(new ParameterElement() { Key = item.Key, Value = item.Value }); } } } return(true); } return(false); }
/// <summary> /// Adds the specified url element. /// </summary> /// <param name="element">The url.</param> public void Add(UrlAddressElement element) { root.UrlAddresses.Add(element); }