using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace sharpknife.Utils { public class UriUtils { public static Uri Combine(Uri baseUri, Uri relativeUri) { if (baseUri.AbsoluteUri.LastIndexOf('/') != baseUri.AbsoluteUri.Length - 1) { baseUri = new Uri(baseUri.AbsoluteUri.Substring(baseUri.AbsoluteUri.LastIndexOf('/'))); } Uri combinedUri = new Uri(baseUri, relativeUri); return combinedUri; } public static string Combine(string baseUri, string relativeUri) { if (baseUri.LastIndexOf('/') >= 0 && baseUri.LastIndexOf('/') != baseUri.Length - 1) { baseUri = StringUtils.Left(baseUri, baseUri.LastIndexOf('/') - 1); } if (!relativeUri.StartsWith("/", StringComparison.InvariantCultureIgnoreCase)) { relativeUri = "/" + relativeUri; } string combinedUri = baseUri + relativeUri; if (!combinedUri.StartsWith("http")) { combinedUri = "http://" + combinedUri; } return combinedUri; } } }