| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 | using System;using System.Diagnostics;using System.Linq;using System.Windows;using System.Windows.Interop;using H.Formatters;using H.Pipes;using H.Pipes.Extensions;using InABox.Logikal;using Newtonsoft.Json;namespace PRSLogikal{    /// <summary>    /// Interaction logic for MainWindow.xaml    /// </summary>    public partial class MainWindow    {        private LogikalServer _server;        private LogikalListener _listener;        private void Log(string msg)        {            Dispatcher.BeginInvoke(new Func<object>(() => _Log.Text += $"{msg}\n"));        }        public MainWindow()        {            InitializeComponent();                  }                private void MainWindow_OnClosed(object sender, EventArgs e)        {            if (bClosing)            {                _listener.Stop();                _server.Disconnect();            }        }                private void _connect_OnClick(object sender, RoutedEventArgs e)        {            var _request = new LogikalConnectRequest() { Path = _path.Text };            var _response = _server.Connect(_request);            Log($"Connect(): {_response}");            if (_response is LogikalConnectResponse)            {                _connect.IsEnabled = false;                _path.IsEnabled = false;                _disconnect.IsEnabled = true;                _login.IsEnabled = true;                _userid.IsEnabled = true;                _password.IsEnabled = true;                _logout.IsEnabled = false;                _projects.IsEnabled = false;            }        }                private void _login_OnClick(object sender, RoutedEventArgs e)        {            var _request = new LogikalLoginRequest();            var _response = _server.Login(_request);            Log($"Login(): {_response}");            if (_response is LogikalLoginResponse)            {                _disconnect.IsEnabled = false;                _login.IsEnabled = false;                _userid.IsEnabled = false;                _password.IsEnabled = false;                _logout.IsEnabled = true;                _projects.IsEnabled = true;            }        }        private void _logout_OnClick(object sender, RoutedEventArgs e)        {            var _response = _server.Logout();            Log($"Logout(): {_response}");            if (_response is LogikalLoginResponse)            {                _disconnect.IsEnabled = true;                _login.IsEnabled = true;                _userid.IsEnabled = true;                _password.IsEnabled = true;                _logout.IsEnabled = false;                _projects.IsEnabled = false;            }        }                private void _disconnect_OnClick(object sender, RoutedEventArgs e)        {            var _response = _server.Disconnect();            Log($"Disconnect(): {_response}");            if (_response is LogikalDisconnectResponse)            {                _connect.IsEnabled = true;                _path.IsEnabled = true;                _disconnect.IsEnabled = false;                _login.IsEnabled = false;                _userid.IsEnabled = false;                _password.IsEnabled = false;                _projects.IsEnabled = false;            }        }        private void _projects_OnClick(object sender, RoutedEventArgs e)        {                        // var _request = new LogikalProjectsRequest();            // var _response = _server.GetProjects(_request);            // Log($"GetProjects(): {_response}");            // if (_response is LogikalProjectsResponse<LogikalProject> _projects)            // {            //     foreach (var _project in _projects.Projects)            //     {            //         Log(_project.Name);            //     }            // }        }        private void Window_Loaded(object sender, RoutedEventArgs args)        {            _server = new LogikalServer(new WindowInteropHelper(this).Handle);            _server.Log += (o, e) => Log(e.Message);            _listener = new LogikalListener()            {                Server = _server            };            _listener.Disconnecting += (o, e) => Dispatcher.Invoke(() => Close());            _listener.Log += (o, e) => Log(e.Message);            _listener.Start();            Hide();        }        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)        {            if (!bClosing)            {                Hide();                e.Cancel = true;            }        }        private void ShowInterfaceClick(object sender, RoutedEventArgs e)        {            Show();        }        private bool bClosing = false;        private void DoExitClick(object sender, RoutedEventArgs e)        {            bClosing = true;            Close();        }    }}
 |