/// <summary> /// Parses URI segments. /// </summary> /// <param name="myUri">SimpleURI object.</param> /// <param name="uri">System.Uri object.</param> private static void ParseSegments(SimpleURI myUri, Uri uri) { for (var i = 1; i < uri.Segments.Length; i++) { myUri.Segments.Add(uri.Segments[i].Replace("/", string.Empty)); } }
/// <summary> /// Parses SimpleURI from string. /// </summary> /// <param name="uriString">String representation of URI.</param> /// <returns>SimpleURI object.</returns> private static SimpleURI ToSimpleURI(this string uriString) { var uri = new Uri(uriString); var myUri = new SimpleURI(uri.Scheme, uri.Host); ParseSegments(myUri, uri); ParseParameters(myUri, uri); return(myUri); }
/// <summary> /// Converts SimpleURI to DTOSimpleURI. /// </summary> /// <param name="simpleURI">SimpleURI object.</param> /// <returns>DTOSimpleURI object.</returns> public static DTOSimpleURI ToDTOSimpleURI(this SimpleURI simpleURI) { return(new DTOSimpleURI { Scheme = simpleURI.Scheme, Host = simpleURI.Host, Segments = simpleURI.Segments, Parameters = simpleURI.Parameters }); }
/// <summary> /// Parses URI parameters. /// </summary> /// <param name="myUri">SimpleURI object.</param> /// <param name="uri">System.Uri object.</param> private static void ParseParameters(SimpleURI myUri, Uri uri) { var query = uri.Query; if (query != string.Empty) { query = query.Substring(1); foreach (var param in query.Split('&')) { var index = param.IndexOf('='); var key = param.Substring(0, index); var value = param.Substring(index + 1); myUri.Parameters.Add(key, value); } } }