From 2a25c3d733eb508d53d971986b7c8cf4847675db Mon Sep 17 00:00:00 2001 From: Chris Cameron Date: Sat, 6 Oct 2018 20:50:52 -0400 Subject: [PATCH] fix: IcdUriBuilder better handles strings without scheme info --- ICD.Common.Utils/IcdUriBuilder.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ICD.Common.Utils/IcdUriBuilder.cs b/ICD.Common.Utils/IcdUriBuilder.cs index 76d9230..e6d9c74 100644 --- a/ICD.Common.Utils/IcdUriBuilder.cs +++ b/ICD.Common.Utils/IcdUriBuilder.cs @@ -70,7 +70,7 @@ namespace ICD.Common.Utils /// /// public IcdUriBuilder(string uri) - : this(new Uri(uri)) + : this(new Uri(uri, UriKind.RelativeOrAbsolute)) { } @@ -80,6 +80,9 @@ namespace ICD.Common.Utils /// public IcdUriBuilder(Uri uri) { + if (!uri.IsAbsoluteUri) + uri = new Uri(Uri.UriSchemeHttp + Uri.SchemeDelimiter + uri); + Fragment = uri.Fragment; Host = uri.Host; Password = uri.GetPassword(); @@ -103,7 +106,7 @@ namespace ICD.Common.Utils StringBuilder builder = new StringBuilder(); // Scheme - string scheme = string.IsNullOrEmpty(Scheme) ? "http" : Scheme; + string scheme = string.IsNullOrEmpty(Scheme) ? Uri.UriSchemeHttp : Scheme; builder.Append(scheme); builder.Append(':');