MainWindow.xaml.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. using System;
  2. using System.Diagnostics;
  3. using System.Linq;
  4. using System.Windows;
  5. using H.Formatters;
  6. using H.Pipes;
  7. using H.Pipes.Extensions;
  8. using InABox.Logikal;
  9. using Newtonsoft.Json;
  10. namespace PRSLogikal
  11. {
  12. /// <summary>
  13. /// Interaction logic for MainWindow.xaml
  14. /// </summary>
  15. public partial class MainWindow
  16. {
  17. private LogikalServer _logikal;
  18. private LogikalListener _listener;
  19. private void Log(string msg)
  20. {
  21. Dispatcher.BeginInvoke(new Func<object>(() => _Log.Text += $"{msg}\n"));
  22. }
  23. public MainWindow()
  24. {
  25. InitializeComponent();
  26. _logikal = new LogikalServer();
  27. _logikal.Log += (o, e) => Log(e.Message);
  28. _listener = new LogikalListener()
  29. {
  30. Server = _logikal
  31. };
  32. _listener.Disconnecting += (sender, args) => Dispatcher.Invoke(() => Close());
  33. _listener.Log += (o, e) => Log(e.Message);
  34. _listener.Start();
  35. }
  36. private void MainWindow_OnClosed(object sender, EventArgs e)
  37. {
  38. _listener.Stop();
  39. _logikal.Disconnect();
  40. }
  41. private void _connect_OnClick(object sender, RoutedEventArgs e)
  42. {
  43. if (_logikal.Connect(_path.Text) == LogikalStatus.Ok)
  44. {
  45. _connect.IsEnabled = false;
  46. _path.IsEnabled = false;
  47. _disconnect.IsEnabled = true;
  48. _login.IsEnabled = true;
  49. _userid.IsEnabled = true;
  50. _password.IsEnabled = true;
  51. _logout.IsEnabled = false;
  52. }
  53. }
  54. private void _login_OnClick(object sender, RoutedEventArgs e)
  55. {
  56. if (_logikal.Login((_userid).Text, _password.Text) == LogikalStatus.Ok)
  57. {
  58. _disconnect.IsEnabled = false;
  59. _login.IsEnabled = false;
  60. _userid.IsEnabled = false;
  61. _password.IsEnabled = false;
  62. _logout.IsEnabled = true;
  63. }
  64. }
  65. private void _logout_OnClick(object sender, RoutedEventArgs e)
  66. {
  67. if (_logikal.Logout() == LogikalStatus.Ok)
  68. {
  69. _disconnect.IsEnabled = true;
  70. _login.IsEnabled = true;
  71. _userid.IsEnabled = true;
  72. _password.IsEnabled = true;
  73. _logout.IsEnabled = false;
  74. }
  75. }
  76. private void _disconnect_OnClick(object sender, RoutedEventArgs e)
  77. {
  78. if (_logikal.Disconnect() == LogikalStatus.Ok)
  79. {
  80. _connect.IsEnabled = true;
  81. _path.IsEnabled = true;
  82. _disconnect.IsEnabled = false;
  83. _login.IsEnabled = false;
  84. _userid.IsEnabled = false;
  85. _password.IsEnabled = false;
  86. }
  87. }
  88. }
  89. }