diff --git a/Borepin/Borepin/Base/ConnectionModelBase.cs b/Borepin/Borepin/Base/ConnectionModelBase.cs index a07360e..aed8945 100644 --- a/Borepin/Borepin/Base/ConnectionModelBase.cs +++ b/Borepin/Borepin/Base/ConnectionModelBase.cs @@ -1,5 +1,6 @@ using Borepin.Service; using FabAccessAPI; +using NLog; using Prism.Navigation; using Prism.Services; using System; @@ -30,12 +31,13 @@ namespace Borepin.Base #endregion #region Methods - public async void OnConnectionStatusChanged(object sender, ConnectionStatusChange args) + public async void OnConnectionStatusChanged(object sender, ConnectionStatusChanged args) { switch(args) { - case ConnectionStatusChange.Connected: + case ConnectionStatusChanged.Connected: IsConnected = true; + IsConnecting = false; try { await LoadAPIData().ConfigureAwait(false); @@ -44,35 +46,16 @@ namespace Borepin.Base { IsConnected = false; await _API.Disconnect().ConfigureAwait(false); - _API.UnbindAllEvents(); + _API.UnbindEventHandler(); } break; - case ConnectionStatusChange.Reconnected: - try - { - await ReloadAPIData().ConfigureAwait(false); - } - catch - { - IsConnected = false; - await _API.Disconnect().ConfigureAwait(false); - _API.UnbindAllEvents(); - } - break; - case ConnectionStatusChange.ConnectionLoss: - try - { - await _API.Reconnect().ConfigureAwait(false); - } - catch - { - IsConnected = false; - await _API.Disconnect().ConfigureAwait(false); - _API.UnbindAllEvents(); - } - break; - case ConnectionStatusChange.Disconnected: + case ConnectionStatusChanged.ConnectionLoss: IsConnected = false; + IsConnecting = true; + break; + case ConnectionStatusChanged.Disconnected: + IsConnected = false; + IsConnecting = false; break; } } @@ -81,22 +64,28 @@ namespace Borepin.Base { return Task.CompletedTask; } - public virtual Task ReloadAPIData() - { - return Task.CompletedTask; - } #endregion #region Fields /// /// PageModel is Connected /// - private bool _IsConnected = true; + private bool _IsConnected = false; public bool IsConnected { get => _IsConnected; set => SetProperty(ref _IsConnected, value); } + + /// + /// PageModel is Connecting + /// + private bool _IsConnecting = false; + public bool IsConnecting + { + get => _IsConnecting; + set => SetProperty(ref _IsConnecting, value); + } #endregion #region INavigationAware @@ -110,11 +99,12 @@ namespace Borepin.Base { await LoadAPIData().ConfigureAwait(false); } - catch(Exception ex) + catch(Exception exception) { IsConnected = false; await _API.Disconnect().ConfigureAwait(false); - _API.UnbindAllEvents(); + _API.UnbindEventHandler(); + Log.Error("LoadAPIData failed", exception); } } } diff --git a/Borepin/Borepin/Page/MachineListPage.xaml b/Borepin/Borepin/Page/MachineListPage.xaml index 5b47d51..08fcd0a 100644 --- a/Borepin/Borepin/Page/MachineListPage.xaml +++ b/Borepin/Borepin/Page/MachineListPage.xaml @@ -17,9 +17,7 @@ - - - +