diff --git a/.vs/Navigator/DesignTimeBuild/.dtbcache.v2 b/.vs/Navigator/DesignTimeBuild/.dtbcache.v2 index 355f06f..e85fa97 100644 Binary files a/.vs/Navigator/DesignTimeBuild/.dtbcache.v2 and b/.vs/Navigator/DesignTimeBuild/.dtbcache.v2 differ diff --git a/.vs/Navigator/v16/.suo b/.vs/Navigator/v16/.suo index 43bd771..ff00208 100644 Binary files a/.vs/Navigator/v16/.suo and b/.vs/Navigator/v16/.suo differ diff --git a/MarketDataLib/Service/MarketDataServiceClient.cs b/MarketDataLib/Service/MarketDataServiceClient.cs index b3dd009..43e9632 100644 --- a/MarketDataLib/Service/MarketDataServiceClient.cs +++ b/MarketDataLib/Service/MarketDataServiceClient.cs @@ -37,6 +37,11 @@ namespace MarketData.Service return marketDataServiceClient; } } + /// + /// SetUrl + /// + /// The fully qualified url http://100.0.0.0:8000. + /// The user. public void SetUrl(String url,String user) { lock(this) diff --git a/Navigator/App.xaml.cs b/Navigator/App.xaml.cs index 9feaea9..2105332 100644 --- a/Navigator/App.xaml.cs +++ b/Navigator/App.xaml.cs @@ -1,6 +1,5 @@ using System; using Xamarin.Forms; -using Xamarin.Forms.Xaml; using Navigator.Services; using Navigator.Views; using MarketData.Service; @@ -15,31 +14,33 @@ namespace Navigator { InitializeComponent(); DependencyService.Register(); - if(!DesignMode.IsDesignModeEnabled) - { - if(MarketDataServiceClient.IsWiFiNetwork() && MarketDataServiceClient.GetInstance().Ping(AppSettingsManager.Settings["Service_Local"])) - { - MarketDataServiceClient.GetInstance().SetUrl(AppSettingsManager.Settings["Service_Local"],AppSettingsManager.Settings["ServiceUser"]); - } - else - { - String ipAddress=IPCache.GetIPAddress(); + InitializeConnection(); - if(null!=ipAddress) - { - ipAddress= AppSettingsManager.Settings["Service_Prefix"]+ipAddress+ AppSettingsManager.Settings["Service_Postfix"]; - if(MarketDataServiceClient.GetInstance().Ping(ipAddress)) - { - MarketDataServiceClient.GetInstance().SetUrl(ipAddress, AppSettingsManager.Settings["ServiceUser"]); - } - } - else if(MarketDataServiceClient.GetInstance().Ping(AppSettingsManager.Settings["Service_Network"])) - { - MarketDataServiceClient.GetInstance().SetUrl(AppSettingsManager.Settings["Service_Network"], AppSettingsManager.Settings["ServiceUser"]); - } + MainPage = new MainPage(); + } + + private void InitializeConnection() + { + String ipAddress=IPCache.GetIPAddress(); + if (null != ipAddress && MarketDataServiceClient.GetInstance().Ping(ToUrl(ipAddress))) + { + MarketDataServiceClient.GetInstance().SetUrl(ToUrl(ipAddress), AppSettingsManager.Settings["ServiceUser"]); + } + else if (MarketDataServiceClient.IsWiFiNetwork() && MarketDataServiceClient.GetInstance().Ping(ToUrl(AppSettingsManager.Settings["Service_Local"]))) + { + IPCache.SaveIPAddress(AppSettingsManager.Settings["Service_Local"]); + MarketDataServiceClient.GetInstance().SetUrl(ToUrl(AppSettingsManager.Settings["Service_Local"]), AppSettingsManager.Settings["ServiceUser"]); + } + else if (MarketDataServiceClient.GetInstance().Ping(ToUrl(AppSettingsManager.Settings["Service_Network"]))) + { + IPCache.SaveIPAddress(AppSettingsManager.Settings["Service_Network"]); + MarketDataServiceClient.GetInstance().SetUrl(ToUrl(AppSettingsManager.Settings["Service_Network"]), AppSettingsManager.Settings["ServiceUser"]); } } - MainPage = new MainPage(); + + private String ToUrl(String ipAddress) + { + return AppSettingsManager.Settings["Service_Prefix"] + ipAddress + AppSettingsManager.Settings["Service_Postfix"]; } protected override void OnStart() diff --git a/Navigator/AppSettings.json b/Navigator/AppSettings.json index 05062ef..df964cc 100644 --- a/Navigator/AppSettings.json +++ b/Navigator/AppSettings.json @@ -1,7 +1,9 @@ { - "Service_Local": "http://10.0.0.73:8000", - "Service_Network" : "http://73.56.77.171:8000", - "Service_Postfix" : ":8000", - "Service_Prefix" : "http://", - "ServiceUser" : "sean" + "Service_Local_Obsolete": "http://10.0.0.240:8000", + "Service_Network_Obsolete": "http://diversified-software.com:8000", + "Service_Local": "10.0.0.240", + "Service_Network": "diversified-software.com", + "Service_Postfix": ":8000", + "Service_Prefix": "http://", + "ServiceUser": "sean" } \ No newline at end of file diff --git a/Navigator/Utility/IPCache.cs b/Navigator/Utility/IPCache.cs index 54b6043..6116a36 100644 --- a/Navigator/Utility/IPCache.cs +++ b/Navigator/Utility/IPCache.cs @@ -20,6 +20,11 @@ namespace Navigator.Utils private IPCache() { } + + /// + /// SaveIPAddress + /// + /// The ipaddress. Example 10.0.0.201 diversfified-software.com public static void SaveIPAddress(String ipAddress) { StreamWriter streamWriter=File.AppendText(pathFileName); diff --git a/Navigator/Utility/Utility.cs b/Navigator/Utility/Utility.cs index 78fba69..e50f052 100644 --- a/Navigator/Utility/Utility.cs +++ b/Navigator/Utility/Utility.cs @@ -16,6 +16,7 @@ namespace Navigator.Utils { private static DateTime epoch = DateTime.Parse("01-01-0001"); private static TimeSpan oneDay=new TimeSpan(1,0,0,0); + public static String Pad(string str, char filler, int length) { int stringLength = str.Length; diff --git a/Navigator/ViewModels/AboutViewModel.cs b/Navigator/ViewModels/AboutViewModel.cs index 05d6c05..c64da4a 100644 --- a/Navigator/ViewModels/AboutViewModel.cs +++ b/Navigator/ViewModels/AboutViewModel.cs @@ -1,19 +1,9 @@ using System; using System.Windows.Input; -using Xamarin.Essentials; -using Xamarin.Forms; -using Navigator.Integration; -using System.Net.Http; -using System.Collections.Generic; -using MarketData.MarketDataModel; using MarketData.Service; -using Newtonsoft.Json; -using System.Text; -using System.Net.Http.Headers; using Navigator.Core; using System.ComponentModel; using Navigator.Utils; -using System.IO; namespace Navigator.ViewModels { @@ -63,10 +53,11 @@ namespace Navigator.ViewModels return onResetCommand; } } + public void HandleIPAddress() { if(String.IsNullOrEmpty(ipAddress))return; - String url=AppSettingsManager.Settings["Service_Prefix"]+ipAddress+AppSettingsManager.Settings["Service_Postfix"]; + String url=ToUrl(ipAddress); Status="ping "+url+" ..."; if(MarketDataServiceClient.GetInstance().Ping(url)) { @@ -77,43 +68,54 @@ namespace Navigator.ViewModels else Status="ping failed"; Message=MarketDataServiceClient.GetInstance().GetBaseUri(); } + public void HandleReset() { Status=""; - Status="ping "+AppSettingsManager.Settings["Service_Local"]+" ..."; + Status="ping "+ToUrl(AppSettingsManager.Settings["Service_Local"])+" ..."; IPAddress=""; - if(MarketDataServiceClient.IsWiFiNetwork() && MarketDataServiceClient.GetInstance().Ping(AppSettingsManager.Settings["Service_Local"])) + if(MarketDataServiceClient.IsWiFiNetwork() && MarketDataServiceClient.GetInstance().Ping(ToUrl(AppSettingsManager.Settings["Service_Local"]))) { - MarketDataServiceClient.GetInstance().SetUrl(AppSettingsManager.Settings["Service_Local"],AppSettingsManager.Settings["ServiceUser"]); - Message=AppSettingsManager.Settings["Service_Local"]; - Status="ping succeeded"; + MarketDataServiceClient.GetInstance().SetUrl(ToUrl(AppSettingsManager.Settings["Service_Local"]),AppSettingsManager.Settings["ServiceUser"]); + Message=ToUrl(AppSettingsManager.Settings["Service_Local"]); + IPCache.SaveIPAddress(AppSettingsManager.Settings["Service_Local"]); + Status="ping succeeded, connection reset to "+ToUrl(AppSettingsManager.Settings["Service_Local"]); return; } - else status="ping failed."; - Status="ping "+AppSettingsManager.Settings["Service_Network"]+" ..."; - if(MarketDataServiceClient.GetInstance().Ping(AppSettingsManager.Settings["Service_Network"])) + Status="ping "+ToUrl(AppSettingsManager.Settings["Service_Network"])+" ..."; + if(MarketDataServiceClient.GetInstance().Ping(ToUrl(AppSettingsManager.Settings["Service_Network"]))) { - MarketDataServiceClient.GetInstance().SetUrl(AppSettingsManager.Settings["Service_Network"],AppSettingsManager.Settings["ServiceUser"]); - Message=AppSettingsManager.Settings["Service_Network"]; - Status="ping succeeded"; + MarketDataServiceClient.GetInstance().SetUrl(ToUrl(AppSettingsManager.Settings["Service_Network"]),AppSettingsManager.Settings["ServiceUser"]); + Message=ToUrl(AppSettingsManager.Settings["Service_Network"]); + IPCache.SaveIPAddress(AppSettingsManager.Settings["Service_Network"]); + Status="ping succeeded, connection reset to "+ToUrl(AppSettingsManager.Settings["Service_Network"]); } else Status="ping failed"; } + public String Message { get { return message; } set { SetProperty(ref message, value); } } + public String Status { get{return status;} set{SetProperty(ref status,value);} } + public String IPAddress { get{return ipAddress;} set{SetProperty(ref ipAddress,value);} } + + private String ToUrl(String ipAddress) + { + return AppSettingsManager.Settings["Service_Prefix"] + ipAddress + AppSettingsManager.Settings["Service_Postfix"]; + } + } } \ No newline at end of file diff --git a/Navigator/Views/AboutPage.xaml b/Navigator/Views/AboutPage.xaml index 997217f..de5516e 100644 --- a/Navigator/Views/AboutPage.xaml +++ b/Navigator/Views/AboutPage.xaml @@ -66,7 +66,7 @@ -