172 lines
5.5 KiB
C#
172 lines
5.5 KiB
C#
using System;
|
|
using System.Windows.Input;
|
|
using MarketData.Service;
|
|
using Navigator.Core;
|
|
using System.ComponentModel;
|
|
using Navigator.Utils;
|
|
using System.Text;
|
|
|
|
namespace Navigator.ViewModels
|
|
{
|
|
public class AboutViewModel : BaseViewModel
|
|
{
|
|
private String message = "";
|
|
private String status="";
|
|
private String ipAddress;
|
|
private RelayCommand ipAddressCommand;
|
|
private RelayCommand onResetCommand;
|
|
private static readonly String VERSION = "1.0.0.5";
|
|
|
|
public AboutViewModel()
|
|
{
|
|
Title = "About";
|
|
Message=MarketDataServiceClient.GetInstance().GetBaseUri();
|
|
|
|
Status="";
|
|
PropertyChanged+=OnViewModelPropertyChanged;
|
|
}
|
|
private void OnViewModelPropertyChanged(object sender,PropertyChangedEventArgs eventArgs)
|
|
{
|
|
}
|
|
public ICommand IPAddressCommand
|
|
{
|
|
get
|
|
{
|
|
if(null==ipAddressCommand)
|
|
{
|
|
ipAddressCommand=new RelayCommand(param=>
|
|
{
|
|
HandleIPAddress();
|
|
},param=>{return true;});
|
|
}
|
|
return ipAddressCommand;
|
|
}
|
|
}
|
|
public ICommand OnResetCommand
|
|
{
|
|
get
|
|
{
|
|
if(null==onResetCommand)
|
|
{
|
|
onResetCommand=new RelayCommand(param=>
|
|
{
|
|
HandleReset();
|
|
},param=>{return true;});
|
|
}
|
|
return onResetCommand;
|
|
}
|
|
}
|
|
|
|
public void HandleIPAddress()
|
|
{
|
|
if(String.IsNullOrEmpty(ipAddress))return;
|
|
String url=ToUrl(ipAddress);
|
|
Status="ping "+url+" ...";
|
|
if(MarketDataServiceClient.GetInstance().Ping(url))
|
|
{
|
|
MarketDataServiceClient.GetInstance().SetUrl(url,AppSettingsManager.Settings["ServiceUser"], AppSettingsManager.Settings["ServiceUser"]);
|
|
IPCache.SaveIPAddress(ipAddress);
|
|
Status ="ping succeeded";
|
|
}
|
|
else Status="ping failed";
|
|
Message=MarketDataServiceClient.GetInstance().GetBaseUri();
|
|
}
|
|
|
|
public void HandleReset()
|
|
{
|
|
Status="";
|
|
Status="ping "+ToUrl(AppSettingsManager.Settings["Service_Local"])+" ...";
|
|
IPAddress="";
|
|
if(MarketDataServiceClient.IsWiFiNetwork() && MarketDataServiceClient.GetInstance().Ping(ToUrl(AppSettingsManager.Settings["Service_Local"])))
|
|
{
|
|
MarketDataServiceClient.GetInstance().SetUrl(ToUrl(AppSettingsManager.Settings["Service_Local"]), AppSettingsManager.Settings["ServiceUser"], AppSettingsManager.Settings["ServicePassword"]);
|
|
Message=ToUrl(AppSettingsManager.Settings["Service_Local"]);
|
|
IPCache.SaveIPAddress(AppSettingsManager.Settings["Service_Local"]);
|
|
Status="ping succeeded, connection reset to "+ToUrl(AppSettingsManager.Settings["Service_Local"]);
|
|
return;
|
|
}
|
|
Status="ping "+ToUrl(AppSettingsManager.Settings["Service_Network"])+" ...";
|
|
if(MarketDataServiceClient.GetInstance().Ping(ToUrl(AppSettingsManager.Settings["Service_Network"])))
|
|
{
|
|
MarketDataServiceClient.GetInstance().SetUrl(ToUrl(AppSettingsManager.Settings["Service_Network"]),AppSettingsManager.Settings["ServiceUser"], AppSettingsManager.Settings["ServicePassword"]);
|
|
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 Date
|
|
{
|
|
get
|
|
{
|
|
DateTime latestPricingDate = Utility.Epoch;
|
|
ServiceResult serviceResult = MarketDataServiceClient.GetInstance().GetLatestPricingDate();
|
|
if(serviceResult.Success)latestPricingDate=(DateTime)serviceResult.ContextSpecificResult;
|
|
if(Utility.IsEpoch(latestPricingDate))return "Latest Pricing Date: ---";
|
|
return "Latest Pricing Date: "+latestPricingDate.ToShortDateString();
|
|
}
|
|
}
|
|
|
|
public String SystemInfo
|
|
{
|
|
get
|
|
{
|
|
String systemInfo = "";
|
|
ServiceResult serviceResult = MarketDataServiceClient.GetInstance().GetSystemInfo();
|
|
if(serviceResult.Success)systemInfo=(String)serviceResult.ContextSpecificResult;
|
|
return "System Info: "+systemInfo;
|
|
}
|
|
}
|
|
|
|
public String Version
|
|
{
|
|
get
|
|
{
|
|
return VERSION;
|
|
}
|
|
}
|
|
|
|
public String ScreenDimensions
|
|
{
|
|
get
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.Append("Device (");
|
|
sb.Append(Utility.FormatNumber(ScreenWidth,0));
|
|
sb.Append("x");
|
|
sb.Append(Utility.FormatNumber(ScreenHeight,0));
|
|
sb.Append("x");
|
|
sb.Append(Utility.FormatNumber(ScreenDensity,0));
|
|
sb.Append(")");
|
|
sb.Append(IsDeviceTablet?"Tablet":"Phone");
|
|
return sb.ToString();
|
|
}
|
|
}
|
|
|
|
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"];
|
|
}
|
|
|
|
}
|
|
} |