using System;
using System.Diagnostics;
using System.Linq;
using System.Windows;
using H.Formatters;
using H.Pipes;
using H.Pipes.Extensions;
using InABox.Logikal;
using Newtonsoft.Json;
namespace PRSLogikal
{
///
/// Interaction logic for MainWindow.xaml
///
public partial class MainWindow
{
private LogikalServer _logikal;
private LogikalListener _listener;
private void Log(string msg)
{
Dispatcher.BeginInvoke(new Func(() => _Log.Text += $"{msg}\n"));
}
public MainWindow()
{
InitializeComponent();
_logikal = new LogikalServer();
_logikal.Log += (o, e) => Log(e.Message);
_listener = new LogikalListener()
{
Server = _logikal
};
_listener.Disconnecting += (sender, args) => Dispatcher.Invoke(() => Close());
_listener.Log += (o, e) => Log(e.Message);
_listener.Start();
}
private void MainWindow_OnClosed(object sender, EventArgs e)
{
_listener.Stop();
_logikal.Disconnect();
}
private void _connect_OnClick(object sender, RoutedEventArgs e)
{
if (_logikal.Connect(_path.Text) == LogikalStatus.Ok)
{
_connect.IsEnabled = false;
_path.IsEnabled = false;
_disconnect.IsEnabled = true;
_login.IsEnabled = true;
_userid.IsEnabled = true;
_password.IsEnabled = true;
_logout.IsEnabled = false;
}
}
private void _login_OnClick(object sender, RoutedEventArgs e)
{
if (_logikal.Login((_userid).Text, _password.Text) == LogikalStatus.Ok)
{
_disconnect.IsEnabled = false;
_login.IsEnabled = false;
_userid.IsEnabled = false;
_password.IsEnabled = false;
_logout.IsEnabled = true;
}
}
private void _logout_OnClick(object sender, RoutedEventArgs e)
{
if (_logikal.Logout() == LogikalStatus.Ok)
{
_disconnect.IsEnabled = true;
_login.IsEnabled = true;
_userid.IsEnabled = true;
_password.IsEnabled = true;
_logout.IsEnabled = false;
}
}
private void _disconnect_OnClick(object sender, RoutedEventArgs e)
{
if (_logikal.Disconnect() == LogikalStatus.Ok)
{
_connect.IsEnabled = true;
_path.IsEnabled = true;
_disconnect.IsEnabled = false;
_login.IsEnabled = false;
_userid.IsEnabled = false;
_password.IsEnabled = false;
}
}
}
}