private async void WatcherOnPortsChanged(object sender, OnPortsChangedEventArgs e) { if (e.NewItem.Count > 0 && e.NewItem != null) { if (e.NewItem.Count == 1) { LogList.Insert(0, e.NewItem.Count + " New Device Detected..."); } else { LogList.Insert(0, e.NewItem.Count + " New Devices Detected..."); } await Task.Run(() => ReadDeviceList(e.NewItem)); //await Task.WhenAll(_watcher.ComPorts.Select(async item => await AddNewGsmComm(item)).ToList()); } if (e.RemovedItem.Count > 0 && e.RemovedItem != null) { foreach (var item in e.RemovedItem) { try { foreach (var gsm in GsmList.Where(gsm => gsm.Model.PortName == item)) { GsmList.Remove(gsm); LogList.Insert(0, "Removing Device " + gsm.Model.PortName); } } catch (Exception) { } } } }
public void Log(Log log) { Dispatcher.FromThread(OrderManager.UIThread).InvokeAsync(() => { if (LogList.Count > 0 && log.Text == LogList[0].Text && log.Source == LogList[0].Source) { LogList[0].Time = log.Time; } else { log.Text = log.Text.TrimEnd('\n'); LogList.Insert(0, log); if (File.Exists(logfile)) { try { lock (logFileLock) { using (var sw = new StreamWriter(logfile, true)) { sw.WriteLine(ListViewHelper.ObjectToLine(log)); } } } catch (Exception ex) { GlobalExceptionHandler.HandleException("Log", ex); } } } }); }
/// <summary> /// Updates the response. /// </summary> /// <param name="e">The <see cref="CommandRecievedEventArgs"/> instance containing the event data.</param> private void UpdateResponse(CommandRecievedEventArgs e) { try { if (e != null) { if (e.CommandID == (int)CommandEnum.GetLogList) { ObservableCollection <LogEntry> logsList = JsonConvert.DeserializeObject <ObservableCollection <LogEntry> >(e.Args[0]); UpdateLogList(logsList); isFirstTime = false; } if (e.CommandID == (int)CommandEnum.LogCommand) { if (!isFirstTime) { LogEntry newLog = JsonConvert.DeserializeObject <LogEntry>(e.Args[0]); Dispatcher.CurrentDispatcher.Invoke((System.Action) delegate // App.Current.Dispatcher.Invoke((System.Action)delegate { LogList.Insert(0, newLog); }); } } } } catch (Exception exc) { Console.WriteLine(exc.ToString()); } }
public void Log(string message) { System.Windows.Threading.Dispatcher.FromThread(OrderManager.UIThread).Invoke(() => { LogList.Insert(0, new Log() { Time = DateTime.Now, Text = message }); }); }
/// <summary> /// adds new log entry to the event log entries list /// </summary> /// <param name="responseObj">expected responseObj.Args[0] = EntryType, responseObj.Args[1] = Message </param> private void AddLogEntry(CommandRecievedEventArgs responseObj) { try { LogMessage newLogEntry = new LogMessage { Type = responseObj.Args[0], Message = responseObj.Args[1] }; LogList.Insert(0, new LogCollection { LogType = newLogEntry.Type, Message = newLogEntry.Message }); stringList.Add(new Tuple <string, string>(responseObj.Args[0], responseObj.Args[1])); } catch (Exception ex) { } }
/// <summary> /// Updates the logs messages collection with the input CommandRecievedEventArgs parameter. /// </summary> /// <param name="obj"></param> private void UpdateLogsCollection(CommandRecievedEventArgs obj) { try { LogMessage newLogMessage = new LogMessage { Type = obj.Args[0], Message = obj.Args[1] }; LogList.Insert(0, new Log { LogType = newLogMessage.Type, Message = newLogMessage.Message }); } catch (Exception ex) { Console.WriteLine(ex); } }
public void OnLogMessageRecieved(object sender, MessageRecievedEventArgs e) { if (e.EventLogEntryType.ToString().Equals("Information")) { NumOfInformation++; } else if (e.EventLogEntryType.ToString().Equals("Error")) { NumOfErrors++; } else { e.EventLogEntryType = EventLogEntryType.Warning; NumOfWarnings++; } LogList.Insert(0, new Tuple <string, string>(e.EventLogEntryType.ToString(), e.Message.Replace(".", ""))); }
private async Task ProcessMessage(MessageViewModel message) { await Task.Delay(1000); var messageType = MessageDecoder(message); if (messageType == MessageType.None) { LogList.Insert(0, "Garbage Message: " + message.MessageData.UserDataText); } if (messageType == MessageType.WeatherData) { //(013226007252592,2017/03/06,00:14:59,25.0,89.0,993.4,0.05,0.00,270,0.88, 0.00, 0.00,-52,11.57) //(IMEI,DATE,TIME,TEMP,HUM,PRES,RAIN24H,RAIN15M,WDIR,WSPEED15,IRRMIN,IRRHR,SIGNAL,BATTERY) var fields = message.MessageData.UserDataText.Split(','); for (var i = 0; i < fields.Length; i++) { fields[i] = fields[i].Trim('(', ')'); } var list = fields.ToList(); try { var station = await Task.Run(() => _repository.Stations.GetAsync(c => c.Imei == list.FirstOrDefault())); if (station == null) { LogList.Insert(0, "Imei was not recognized for message:" + message.MessageData.UserDataText); return; } var dt = DateTime.ParseExact(list.ElementAt(1) + " " + list.ElementAt(2), "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture); var records = await Task.Run( () => _repository.Measurements.GetRangeAsync( c => c.StationId == station.StationId && c.Date == dt)); if (records.Count == 0) { LogList.Insert(0, "Data is already existing in the system for message:" + message.MessageData.UserDataText); return; } await Task.Run(() => _repository.Measurements.AddAsync(new Measurement { StationId = station.StationId, Date = dt, Temperature = DecimalChecker(list.ElementAt(3)), Humidity = DecimalChecker(list.ElementAt(4)), Pressure = DecimalChecker(list.ElementAt(5)), Rainfall24H = DecimalChecker(list.ElementAt(6)), Rainfall15M = DecimalChecker(list.ElementAt(7)), WindDirection = DecimalChecker(list.ElementAt(8)), WindSpeed = DecimalChecker(list.ElementAt(9)), SolarIrradianceM = DecimalChecker(list.ElementAt(10)), SolarIrradianceH = DecimalChecker(list.ElementAt(11)), SignalLevel = DecimalChecker(list.ElementAt(12)), Battery = DecimalChecker(list.ElementAt(13)) })); LogList.Insert(0, "Succefully Added Data: " + message.MessageData.UserDataText); } catch (Exception) { LogList.Insert(0, "Unsuccessful data addition. Format is not acceptable for message: " + message.MessageData.UserDataText); } } if (messageType == MessageType.WeatherRequest) { var keyword = new List <string>(message.MessageData.UserDataText.Split(' ')).LastOrDefault(); try { var station = await Task.Run(() => _repository.Stations.GetAsync(c => c.Keyword == keyword)); if (station == null) { LogList.Insert(0, "Keyword does not exist: " + message.MessageData.UserDataText); return; } var measurements = await Task.Run(() => _repository.Measurements.GetRangeAsync(c => c.StationId == station.StationId)); if (measurements.Count == 0) { LogList.Insert(0, "There still no data available in this station: " + message.MessageData.UserDataText); return; } var measurement = measurements.OrderByDescending(c => c.Date).FirstOrDefault(); var gsm = GsmList.FirstOrDefault(c => c.Model.PortName == message.Port); var sms = "As of " + measurement.Date.ToString("yy-mm-dd") + " Temperature: " + measurement.Temperature + "°C, Humidity: " + measurement.Humidity + "%, Wind: " + measurement.WindDirection + "° " + measurement.WindSpeed + "m/s, Rainfall: " + measurement.Rainfall15M + "mm, Pressure" + measurement.Pressure + " hPa, Solar Irradiance: " + measurement.SolarIrradianceM; if (gsm != null) { await Task.Run( () => gsm.SendMessageASync(sms, message.PhoneNumber, false, false, 1)); LogList.Insert(0, "Request succesfull: " + message.MessageData); } } catch (Exception) { } } message.IsProcessed = true; await DeleteMessage(message); }