@@ -564,14 +564,18 @@ private static string GetParentUrl(Uri baseUri, string blobPrefix)
564564        { 
565565            var  baseUriString  =  baseUri . GetLeftPart ( UriPartial . Path ) ; 
566566            var  baseUriQuery  =  baseUri . Query ; 
567-             return  GetParentUrl ( baseUriString ,  blobPrefix ,  baseUriQuery ) ; 
567+             var  result  =  GetParentUrl ( baseUriString ,  blobPrefix ,  baseUriQuery ) ; 
568+ 
569+             return  result ; 
568570        } 
569571
570572        private  static string  GetParentUrl ( string  baseUri ,  string  blobPrefix ,  string  query  =  null ) 
571573        { 
572574            var  segments  =  GetOutlineFromUrl ( blobPrefix ) ; 
573575            var  parentPath  =  string . Join ( Delimiter ,  segments . Take ( segments . Length  -  1 ) ) ; 
574-             return  GetAbsoluteUri ( new  Uri ( baseUri ) ,  parentPath ,  query ) . AbsoluteUri ; 
576+             var  result  =  GetAbsoluteUri ( baseUri ,  parentPath ,  query ) . AbsoluteUri ; 
577+ 
578+             return  result ; 
575579        } 
576580
577581        private  string  GetRelativeUrl ( Uri  absoluteUri ) 
@@ -591,35 +595,36 @@ private string GetRelativeUrl(Uri absoluteUri)
591595            return  result ; 
592596        } 
593597
594-         private  static Uri  GetAbsoluteUri ( Uri  baseUri ,  string  inputUrl ,  string  query ) 
598+         public  static Uri  GetAbsoluteUri ( Uri  baseUri ,  string  inputUrl ) 
599+         { 
600+             ArgumentNullException . ThrowIfNull ( baseUri ) ; 
601+             ArgumentException . ThrowIfNullOrEmpty ( inputUrl ) ; 
602+ 
603+             var  baseUriString  =  baseUri . GetLeftPart ( UriPartial . Path ) ; 
604+             var  baseUriQuery  =  baseUri . Query ; 
605+             var  result  =  GetAbsoluteUri ( baseUriString ,  inputUrl ,  baseUriQuery ) ; 
606+ 
607+             return  result ; 
608+         } 
609+ 
610+         private  static Uri  GetAbsoluteUri ( string  baseUri ,  string  inputUrl ,  string  query ) 
595611        { 
596612            var  result  =  GetAbsoluteUri ( baseUri ,  inputUrl ) ; 
597613
598614            if  ( ! string . IsNullOrEmpty ( query ) ) 
599615            { 
600-                 if  ( string . IsNullOrEmpty ( query ) ) 
601-                 { 
602-                     return  result ; 
603-                 } 
604- 
605-                 var  builder  =  new  UriBuilder ( result ) 
606-                 { 
607-                     Query  =  query , 
608-                 } ; 
609-                 return  builder . Uri ; 
616+                 result  =  new  UriBuilder ( result )  {  Query  =  query  } . Uri ; 
610617            } 
611618
612619            return  result ; 
613620        } 
614621
615-         public  static Uri  GetAbsoluteUri ( Uri  baseUri ,  string  inputUrl ) 
622+         private  static Uri  GetAbsoluteUri ( string  baseUri ,  string  inputUrl ) 
616623        { 
617-             ArgumentNullException . ThrowIfNull ( nameof ( inputUrl ) ) ; 
618- 
619-             // base uri should be end with delimiter. see tests 
620-             if  ( ! baseUri . AbsolutePath . EndsWith ( Delimiter ) ) 
624+             // base uri should be ended with delimiter. see tests 
625+             if  ( ! baseUri . EndsWith ( Delimiter ) ) 
621626            { 
622-                 baseUri  =   new   Uri ( baseUri . AbsoluteUri   +   Delimiter ) ; 
627+                 baseUri  +=   Delimiter ; 
623628            } 
624629
625630            // do trim lead slash to prevent transform it to absolute file path on linux. 
@@ -638,9 +643,9 @@ public static Uri GetAbsoluteUri(Uri baseUri, string inputUrl)
638643                inputUrl  =  "./"  +  inputUrl ; 
639644            } 
640645
641-             if  ( Uri . TryCreate ( baseUri ,  inputUrl ,  out  resultUri ) ) 
646+             // If the input URL is relative, combine it with the base URI 
647+             if  ( Uri . TryCreate ( new  Uri ( baseUri ) ,  inputUrl ,  out  resultUri ) ) 
642648            { 
643-                 // If the input URL is relative, combine it with the base URI 
644649                return  resultUri ; 
645650            } 
646651
0 commit comments