From bb5048fd8709d070033cfcd4567a4a3771fa64e0 Mon Sep 17 00:00:00 2001 From: MCARDLE Sean M Date: Fri, 18 Nov 2016 20:28:53 -0800 Subject: [PATCH] Communicating service state to status UI now. --- WifiSitterGui/MainWindow.xaml | 26 ++++++++++++++++++++++--- WifiSitterGui/ViewModel/MainWindowViewModel.cs | 27 ++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 3 deletions(-) diff --git a/WifiSitterGui/MainWindow.xaml b/WifiSitterGui/MainWindow.xaml index 75f2490..04d3f9c 100644 --- a/WifiSitterGui/MainWindow.xaml +++ b/WifiSitterGui/MainWindow.xaml @@ -16,8 +16,28 @@ - + + + + + + + + + + Service Status: + + + + + + + + + + + diff --git a/WifiSitterGui/ViewModel/MainWindowViewModel.cs b/WifiSitterGui/ViewModel/MainWindowViewModel.cs index caba1c6..72732a8 100644 --- a/WifiSitterGui/ViewModel/MainWindowViewModel.cs +++ b/WifiSitterGui/ViewModel/MainWindowViewModel.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.ServiceProcess; using System.Text; using WifiSitter; @@ -13,6 +14,7 @@ namespace WifiSitterGui.ViewModel #region fields SimpleNetworkState _netState; + private ServiceController _sc; #endregion // fields @@ -32,9 +34,34 @@ namespace WifiSitterGui.ViewModel get { return _netState; } set { _netState = value; OnPropertyChanged(null); } } + public List Nics { get { return NetState.Nics; } } + + public string ServiceState { + get { + try { if (_sc == null) _sc = new ServiceController("WifiSitter"); } + catch { return "No Service"; } + + _sc.Refresh(); + switch (_sc.Status) { + case ServiceControllerStatus.Running: + return "Running"; + case ServiceControllerStatus.Stopped: + return "Stopped"; + case ServiceControllerStatus.Paused: + return "Paused"; + case ServiceControllerStatus.StopPending: + return "Stopping"; + case ServiceControllerStatus.StartPending: + return "Starting"; + default: + return "Status Changing"; + } + } + } + #endregion // properties