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."); } }
public FindWindow() { statusLogConfig = StatusLogConfig.Get(); KeyDown += Esc_KeyDown; KeyDown += FindWindow_KeyDown; InitializeComponent(); }
public ImportWindow(string filenameToImport) { this.filenameToImport = filenameToImport; statusLogConfig = StatusLogConfig.Get(); KeyDown += Esc_KeyDown; KeyDown += ImportWindow_KeyDown; InitializeComponent(); }
public DeleteWindow(string type, string id) { statusLogConfig = StatusLogConfig.Get(); KeyDown += Esc_KeyDown; KeyDown += DeleteWindow_KeyDown; InitializeComponent(); this.type = type; this.id = id; }
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); }
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; }
public StatusLogConfig() { self = this; mainWindow = MainWindow.Get(); InitializeComponent(); }