public void GetMessageFromClient(object sender, string message) { //If message if log - handle and notify, else ignore. CommandRecievedEventArgs command = CommandRecievedEventArgs.FromJson(message); if (command.CommandID == (int)CommandEnum.LogCommand) { ObservableCollection <LogType> list = new ObservableCollection <LogType>(); string[] logsStrings = command.Args[0].Split(';'); foreach (string s in logsStrings) { if (s.Contains("Status") && s.Contains("Message")) { try { MessageRecievedEventArgs m = MessageRecievedEventArgs.FromJson(s); list.Add(LogType.LogTypeFromMessageRecieved(m)); } catch (Exception e) { continue; } } } Logs = list; NotifyRefresh?.Invoke(); } else if (command.CommandID == (int)CommandEnum.NewLogEntryCommand) { try { MessageRecievedEventArgs m = MessageRecievedEventArgs.FromJson(command.Args[0]); ObservableCollection <LogType> tempList = new ObservableCollection <LogType>(Logs); tempList.Add(LogType.LogTypeFromMessageRecieved(m)); this.Logs = tempList; NotifyRefresh?.Invoke(); } catch (Exception e) { Console.WriteLine(e.ToString()); } } }