diff --git a/src/Tableau.Migration.App.GUI/Constants.cs b/src/Tableau.Migration.App.GUI/Constants.cs
index 3069a24..5c0809c 100644
--- a/src/Tableau.Migration.App.GUI/Constants.cs
+++ b/src/Tableau.Migration.App.GUI/Constants.cs
@@ -30,7 +30,7 @@ public static class Constants
///
/// The App version number.
///
- public const string Version = "v1.0.2";
+ public const string Version = "v1.0.3";
///
/// The App name with version.
diff --git a/src/Tableau.Migration.App.GUI/ViewModels/UriDetailsViewModel.cs b/src/Tableau.Migration.App.GUI/ViewModels/UriDetailsViewModel.cs
index 1b368e6..910b301 100644
--- a/src/Tableau.Migration.App.GUI/ViewModels/UriDetailsViewModel.cs
+++ b/src/Tableau.Migration.App.GUI/ViewModels/UriDetailsViewModel.cs
@@ -99,7 +99,7 @@ private string ExtractBaseUri(string uri)
{
if (Uri.TryCreate(uri, UriKind.Absolute, out var parsedUri))
{
- return $"{parsedUri.Scheme}://{parsedUri.Host}/";
+ return $"{parsedUri.Scheme}://{parsedUri.Authority}/";
}
return string.Empty;
@@ -116,8 +116,8 @@ private string ExtractSiteContent(string uri)
for (int i = 0; i < fragmentSegments.Length; i++)
{
if (fragmentSegments[i].Equals(
- "site",
- StringComparison.OrdinalIgnoreCase)
+ "site",
+ StringComparison.OrdinalIgnoreCase)
&& i + 1 < fragmentSegments.Length)
{
return fragmentSegments[i + 1];
diff --git a/tests/Tableau.Migration.App.GUI.Tests/ViewModels/UriDetailsViewModel.cs b/tests/Tableau.Migration.App.GUI.Tests/ViewModels/UriDetailsViewModel.cs
index db72206..7423632 100644
--- a/tests/Tableau.Migration.App.GUI.Tests/ViewModels/UriDetailsViewModel.cs
+++ b/tests/Tableau.Migration.App.GUI.Tests/ViewModels/UriDetailsViewModel.cs
@@ -36,6 +36,18 @@ public void UriFull_SetValidUri_UpdatesUriBaseAndSiteContent()
Assert.Equal("mysite", viewModel.SiteContent);
}
+ [AvaloniaFact]
+ public void UriFull_SetValidUri_PreservesPort()
+ {
+ var viewModel = new UriDetailsViewModel();
+ var testUri = "https://example.com:1234/#/site/mysite";
+
+ viewModel.UriFull = testUri;
+
+ Assert.Equal("https://example.com:1234/", viewModel.UriBase);
+ Assert.Equal("mysite", viewModel.SiteContent);
+ }
+
[AvaloniaFact]
public void UriFull_SetInvalidUri_AddsUriFormatError()
{