Ejemplo n.º 1
0
        private void client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
        {
            var incomingJson = JsonConvert.DeserializeObject <Dictionary <string, object> >(Encoding.UTF8.GetString(e.Message, 0, e.Message.Length));

            // Print received message to window
            mainWindow.AppendLine("\n" + DateTime.Now + "  Message arrived.  Topic: " + e.Topic + "\nMessage: "
                                  + DatabaseHandler.jsonToStr(incomingJson), true);

            var returnJson = incomingMessageProcessor(incomingJson);

            returnJson["computerName"] = Environment.MachineName;

            // Print outgoing message to window
            mainWindow.AppendLine("\n" + DateTime.Now + "  Message outgoing.  Topic: " + PubTopic + "\nMessage: "
                                  + DatabaseHandler.jsonToStr(returnJson), true);

            // Publish return message
            mqttClient.Publish(PubTopic, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(returnJson)));

            // Highlight changed row
            try {
                switch (returnJson["directive"])
                {
                case "GET_NEW_BLU_RETURN":
                case "GET_DONE_BLU_RETURN":
                case "COMPLETE_DONE_BLU_RETURN":
                    Application.Current.Dispatcher.Invoke(() => {
                        // Refresh data grids
                        mainWindow.RefreshDataGrids();
                        // Highlight changed BLU row
                        StatusLogConfig.Get().FindAndSelectRowIfExists(StatusLogConfig.Get().dgBLU, returnJson["bluId"]);
                    });
                    break;

                case "GET_NEW_SLT_RETURN":
                    Application.Current.Dispatcher.Invoke(() => {
                        // Refresh data grids
                        mainWindow.RefreshDataGrids();
                        // Highlight changed SLT row
                        StatusLogConfig.Get().FindAndSelectRowIfExists(StatusLogConfig.Get().dgSLT, returnJson["sltId"]);
                    });
                    break;

                case "COMPLETE_NEW_BLU_RETURN":
                case "COMPLETE_NEW_SLT_RETURN":
                    // don't refresh data grids
                    break;

                default:
                    Application.Current.Dispatcher.Invoke(() => {
                        // Refresh data grids
                        mainWindow.RefreshDataGrids();
                    });
                    break;
                }
            }
            catch (Exception) {
                Console.Error.WriteLine("client_MqttMsgPublishReceived: Directive unrecognized.");
            }
        }
Ejemplo n.º 2
0
 public FindWindow()
 {
     statusLogConfig = StatusLogConfig.Get();
     KeyDown        += Esc_KeyDown;
     KeyDown        += FindWindow_KeyDown;
     InitializeComponent();
 }
Ejemplo n.º 3
0
 public ImportWindow(string filenameToImport)
 {
     this.filenameToImport = filenameToImport;
     statusLogConfig       = StatusLogConfig.Get();
     KeyDown += Esc_KeyDown;
     KeyDown += ImportWindow_KeyDown;
     InitializeComponent();
 }
Ejemplo n.º 4
0
 public DeleteWindow(string type, string id)
 {
     statusLogConfig = StatusLogConfig.Get();
     KeyDown        += Esc_KeyDown;
     KeyDown        += DeleteWindow_KeyDown;
     InitializeComponent();
     this.type = type;
     this.id   = id;
 }
Ejemplo n.º 5
0
        public MainWindow()
        {
            InitializeComponent();
            self            = this;
            statusLogConfig = new StatusLogConfig();
            this.Content    = statusLogConfig;

            Bitmap editIconBitmap   = Properties.Resources.edit_icon_black_small;
            Bitmap deleteIconBitmap = Properties.Resources.delete_icon_black_small;

            editIconBitmapImage   = BitmapToBitmapImage(editIconBitmap);
            deleteIconBitmapImage = BitmapToBitmapImage(deleteIconBitmap);

            //TODO: move mqtt logic to app.xaml.cs hopefully possibly. The idea being this main window won't always be active.
            mqttConnectionHandler = new MqttConnectionHandler(this);
        }
Ejemplo n.º 6
0
 public EditWindow(string type, string startId, string name, string description, string location, bool available)
 {
     statusLogConfig = StatusLogConfig.Get();
     KeyDown        += Esc_KeyDown;
     KeyDown        += EditWindow_KeyDown;
     InitializeComponent();
     this.type                   = type;
     this.startId                = startId;
     IdTextBox.Tag               = startId;
     IdTextBox.Text              = startId;
     NameTextBox.Tag             = name;
     NameTextBox.Text            = name;
     DescriptionTextBox.Tag      = description;
     DescriptionTextBox.Text     = description;
     LocationTextBox.Tag         = location;
     LocationTextBox.Text        = location;
     AvailableCheckBox.Tag       = available;
     AvailableCheckBox.IsChecked = available;
 }
Ejemplo n.º 7
0
 public StatusLogConfig()
 {
     self       = this;
     mainWindow = MainWindow.Get();
     InitializeComponent();
 }