Fix connection issues.

This commit is contained in:
2024-04-08 21:36:00 -04:00
parent c044f36cea
commit 3abccf9bf9
9 changed files with 67 additions and 51 deletions

Binary file not shown.

View File

@@ -37,6 +37,11 @@ namespace MarketData.Service
return marketDataServiceClient;
}
}
/// <summary>
/// SetUrl
/// </summary>
/// <param name="url">The fully qualified url http://100.0.0.0:8000.</param>
/// <param name="user">The user.</param>
public void SetUrl(String url,String user)
{
lock(this)

View File

@@ -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<MockDataStore>();
if(!DesignMode.IsDesignModeEnabled)
{
if(MarketDataServiceClient.IsWiFiNetwork() && MarketDataServiceClient.GetInstance().Ping(AppSettingsManager.Settings["Service_Local"]))
{
MarketDataServiceClient.GetInstance().SetUrl(AppSettingsManager.Settings["Service_Local"],AppSettingsManager.Settings["ServiceUser"]);
InitializeConnection();
MainPage = new MainPage();
}
else
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"]);
}
}
if(null!=ipAddress)
private String ToUrl(String 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();
return AppSettingsManager.Settings["Service_Prefix"] + ipAddress + AppSettingsManager.Settings["Service_Postfix"];
}
protected override void OnStart()

View File

@@ -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"
}

View File

@@ -20,6 +20,11 @@ namespace Navigator.Utils
private IPCache()
{
}
/// <summary>
/// SaveIPAddress
/// </summary>
/// <param name="ipAddress">The ipaddress. Example 10.0.0.201 diversfified-software.com</param>
public static void SaveIPAddress(String ipAddress)
{
StreamWriter streamWriter=File.AppendText(pathFileName);

View File

@@ -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;

View File

@@ -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"];
}
}
}

View File

@@ -66,7 +66,7 @@
<nc:EventToCommandBehavior EventName="Completed" Command="{Binding IPAddressCommand}" />
</Entry.Behaviors>
</nc:EntryWithCustomKeyboardReturnButton>
<Label Text="Enter ip address and hit enter (xxx.xxx.xxx.xxx):" HorizontalOptions="Center"/>
<Label Text="Enter ip address and hit enter/done (xxx.xxx.xxx.xxx):" HorizontalOptions="Center"/>
<Button Text="Reset">
<Button.Behaviors>
<nc:EventToCommandBehavior EventName="Clicked" Command="{Binding OnResetCommand,Mode=OneWay}"/>