private void faxService_EinsatzCreated(object sender, EinsatzCreatedEventArgs e) { if (e == null || e.Einsatz == null) { return; } if (_apiService == null) { return; } Task.Factory.StartNew(() => { try { Logger.WriteDebug(MethodBase.GetCurrentMethod(), "Fax-Message"); _apiService.CreateAlarm(e.Einsatz); } catch (Exception ex) { ExceptionOccured.RaiseEvent(this, new ExceptionEventArgs { Methode = MethodBase.GetCurrentMethod(), Error = ex }); } }); }
private void faxService_EinsatzCreated(object sender, EinsatzCreatedEventArgs e) { if (e == null || e.Einsatz == null) { return; } var _tempTime = e.Einsatz.AlarmTime; //Set new AlarmTime if AMS was activ in the last 5min var _pagerMessages = ServiceLocator.Current.GetInstance <MainPagersViewModel>() .PagerMessages.OrderByDescending(a => a.Time).ToList(); if (_pagerMessages != null) { foreach (var _message in _pagerMessages) { //Stop if time is longer ago then 5 minutes if ((DateTime.Now - _message.Time).Minutes > 5) { break; } //Change time only if prio if (_message.Priority) { e.Einsatz.AlarmTime = _message.Time; } } //Logging if (e.Einsatz.AlarmTime != _tempTime) { Logger.WriteDebug(MethodBase.GetCurrentMethod(), "Einsatz -> AlarmTime changed to " + e.Einsatz.AlarmTime); } } //Show Window var _alarmWindow = new AlarmWindow(e.Einsatz); _alarmWindow.Topmost = IsAdminMode ? false : true; _alarmWindow.Show(); }
private void faxService_EinsatzCreated(object sender, EinsatzCreatedEventArgs e) { if (e == null || e.Einsatz == null) { return; } Task.Factory.StartNew(() => { try { var _message = new Message(); _message.Subject = Settings.Default.MailOutput_Subject; //Empfänger _message.Recivers = new List <User>(); _message.Recivers.AddRange(_business.GetUserWithFaxMessageServiceMailOn().ToList()); //Nachricht _message.Text = "EINSATZDATEN:" + Environment.NewLine; if (!string.IsNullOrEmpty(e.Einsatz.Schlagwort)) { _message.Text += "Schlagwort: " + e.Einsatz.Schlagwort + Environment.NewLine; } if (!string.IsNullOrEmpty(e.Einsatz.Stichwort)) { _message.Text += "Stichwort: " + e.Einsatz.Stichwort + Environment.NewLine; } if (!string.IsNullOrEmpty(e.Einsatz.Objekt)) { _message.Text += "Objekt: " + e.Einsatz.Objekt + Environment.NewLine; } if (!string.IsNullOrEmpty(e.Einsatz.Straße)) { _message.Text += "Straße: " + e.Einsatz.Straße + " " + e.Einsatz.Hausnummer + Environment.NewLine; } if (!string.IsNullOrEmpty(e.Einsatz.Ort)) { _message.Text += "Ort: " + e.Einsatz.Ort + Environment.NewLine; } if (!string.IsNullOrEmpty(e.Einsatz.Abschnitt)) { _message.Text += "Abschnitt: " + e.Einsatz.Abschnitt + Environment.NewLine; } if (!string.IsNullOrEmpty(e.Einsatz.Kreuzung)) { _message.Text += "Kreuzung: " + e.Einsatz.Kreuzung + Environment.NewLine; } if (!string.IsNullOrEmpty(e.Einsatz.Station)) { _message.Text += "Station: " + e.Einsatz.Station + Environment.NewLine; } if (!string.IsNullOrEmpty(e.Einsatz.Bemerkung)) { _message.Text += "Bemerkung: " + e.Einsatz.Bemerkung + Environment.NewLine; } _message.Text += Environment.NewLine; _message.Text += Environment.NewLine; _message.Text += "EINSATZMITTEL:" + Environment.NewLine; foreach (var _vehicle in e.Einsatz.Einsatzmittel) { _message.Text += _vehicle.Name + Environment.NewLine; } _message.Text += Environment.NewLine; _message.Text += Environment.NewLine; var coordinaten = e.Einsatz.KoordinatenWGS84(); if (coordinaten != null) { var nfi = new NumberFormatInfo { NumberDecimalSeparator = "." }; var googleMapsUrl = $"https://www.google.com/maps/search/?api=1&query={coordinaten.Latitude.ToString(nfi)},{coordinaten.Longitude.ToString(nfi)}"; _message.Text += $"ROUTE: {Environment.NewLine}{googleMapsUrl}" + Environment.NewLine; } else if (!string.IsNullOrEmpty(e.Einsatz.Straße) && !string.IsNullOrEmpty(e.Einsatz.Hausnummer) && !string.IsNullOrEmpty(e.Einsatz.Ort)) { var googleMapsQuery = $"{e.Einsatz.Straße} {e.Einsatz.Hausnummer}, {e.Einsatz.Ort}"; var googleMapsUrl = $"https://www.google.com/maps/search/?api=1&query={HttpUtility.UrlEncode(googleMapsQuery)}"; _message.Text += $"ROUTE: {Environment.NewLine}{googleMapsUrl}" + Environment.NewLine; } //Start to send mail without attachment sendMail(_message); //Empfänger _message.Recivers = new List <User>(); _message.Recivers.AddRange(_business.GetUserWithFaxMessageServiceFaxOn().ToList()); //Add Faximage as attachment var _attachmentPath = e.Einsatz.FaxPath; if (Path.GetExtension(e.Einsatz.FaxPath).ToLower() == ".tif") { _attachmentPath = $"{Settings.Default.WorkingFolder}\\Temp\\ALARMFAX_PNG_{e.Einsatz.AlarmTime.ToString("yyyy-MM-dd_HH-mm-ss")}.png"; TiffConverter.SaveTiffAsImage(e.Einsatz.FaxPath, _attachmentPath); } _message.AttachmentPath = _attachmentPath; //Start to send mail with attachment sendMail(_message); } catch (Exception ex) { ExceptionOccured.RaiseEvent(this, new ExceptionEventArgs { Methode = MethodBase.GetCurrentMethod(), Error = ex }); } }); }
private void faxService_EinsatzCreated(object sender, EinsatzCreatedEventArgs e) { if (e == null || e.Einsatz == null) { return; } Task.Factory.StartNew(() => { var finishedEventArgs = new FinishedEventArgs(e.Einsatz); if (IsRunning == false) { //To start PrinterService Finished.RaiseEvent(this, finishedEventArgs); return; } try { //start location var _startLocation = new Location(Settings.Default.Route_StartLocation); if (_startLocation == null) { Logger.WriteDebug(MethodBase.GetCurrentMethod(), "no startpoint"); return; } //stop location Location _stopLocation = null; var coordinaten = e.Einsatz.KoordinatenWGS84(); if (coordinaten != null) { _stopLocation = new Location(coordinaten.Latitude, coordinaten.Longitude); } if (_stopLocation == null) { var _stopAddress = $"{e.Einsatz.Ort}, {e.Einsatz.Straße} {e.Einsatz.Hausnummer}"; Logger.WriteDebug(MethodBase.GetCurrentMethod(), "set address -> " + _stopAddress); _stopLocation = clientGeocode(_stopAddress); } if (_stopLocation == null) { Logger.WriteDebug(MethodBase.GetCurrentMethod(), "destination not found"); return; } else { Logger.WriteDebug(MethodBase.GetCurrentMethod(), "destination found -> " + _stopLocation); } var _route = clientRouting(_startLocation, _stopLocation); if (_route == null || !_route.IsValid) { Logger.WriteDebug(MethodBase.GetCurrentMethod(), "route not found"); return; } finishedEventArgs.Found = true; finishedEventArgs.Distance = _route.Distance; finishedEventArgs.ImageWindow = clientMapImage(_route, Settings.Default.Route_ImageSize.X, Settings.Default.Route_ImageSize.Y, e.Einsatz.Marker); finishedEventArgs.ImageReport = clientMapImage(_route, 1024, 647, e.Einsatz.Marker); finishedEventArgs.Description = clientGetDescription(_route); } catch (Exception ex) { ExceptionOccured.RaiseEvent(this, new ExceptionEventArgs { Methode = MethodBase.GetCurrentMethod(), Error = ex }); } finally { //To start PrinterService Finished.RaiseEvent(this, finishedEventArgs); } }); }
private void faxService_EinsatzCreated(object sender, EinsatzCreatedEventArgs e) { if (e == null || e.Einsatz == null) { return; } if (_apiService == null) { return; } timerAlarmEnd_Reset(); Task.Factory.StartNew(() => { try { Logger.WriteDebug(MethodBase.GetCurrentMethod(), "Fax-Message"); var alarmDto = new AlarmDto(); //Select alarmgroups var _groups = _business.GetAlarmappGroupWithAlarmfax(); foreach (var group in _groups) { if (group.Vehicles.Count > 0 && group.OnlyWithPager == false) { var faxVehicleIds = e.Einsatz.Einsatzmittel.Select(faxVehicle => faxVehicle.Id); var result = group.Vehicles.Where(groupVehicle => faxVehicleIds.Contains(groupVehicle.Id)) .ToList(); if (result != null && result.Count >= 1) { alarmDto.Groups.Add(group.GroupId); } } else if (group.Vehicles.Count == 0 && group.OnlyWithPager) { var pagerIds = _currentPagerList.Select(pager => pager.Id); var result = group.Pagers.Where(groupPager => pagerIds.Contains(groupPager.Id)).ToList(); if (result != null && result.Count >= 1) { alarmDto.Groups.Add(group.GroupId); } } else if (group.Vehicles.Count > 0 && group.OnlyWithPager) { var faxVehicleIds = e.Einsatz.Einsatzmittel.Select(faxVehicle => faxVehicle.Id); var resultVehicle = group.Vehicles .Where(groupVehicle => faxVehicleIds.Contains(groupVehicle.Id)).ToList(); var pagerIds = _currentPagerList.Select(pager => pager.Id); var resultPager = group.Pagers.Where(groupPager => pagerIds.Contains(groupPager.Id)) .ToList(); if (resultVehicle != null && resultVehicle.Count >= 1 && resultPager != null && resultPager.Count >= 1) { alarmDto.Groups.Add(group.GroupId); } } else // no fahrzeug filter & no pager filter { alarmDto.Groups.Add(group.GroupId); } } if (alarmDto.Groups.Count == 0) { Logger.WriteDebug(MethodBase.GetCurrentMethod(), "create alarm -> no alarmgroups found"); return; } //Create titel var _titel = "EINSATZ"; if (!string.IsNullOrWhiteSpace(e.Einsatz.Stichwort) && !string.IsNullOrWhiteSpace(e.Einsatz.Schlagwort)) { _titel = $"{e.Einsatz.Stichwort} - {e.Einsatz.Schlagwort}"; } else if (!string.IsNullOrWhiteSpace(e.Einsatz.Stichwort) && string.IsNullOrWhiteSpace(e.Einsatz.Schlagwort)) { _titel = $"{e.Einsatz.Stichwort}"; } else if (string.IsNullOrWhiteSpace(e.Einsatz.Stichwort) && !string.IsNullOrWhiteSpace(e.Einsatz.Schlagwort)) { _titel = $"{e.Einsatz.Schlagwort}"; } alarmDto.Alarm.Title = _titel; //Set vehicles alarmDto.Alarm.AlarmDetails.Vehicles = e.Einsatz.Einsatzmittel?.Select(x => x.Name).ToList(); alarmDto.Alarm.AlarmDetails.Object = e.Einsatz?.Objekt; //Set coordinates if (!string.IsNullOrEmpty(e.Einsatz.Ort)) { alarmDto.Alarm.AlarmDetails.Address.City = e.Einsatz.Ort; } if (!string.IsNullOrEmpty(e.Einsatz.Straße)) { alarmDto.Alarm.AlarmDetails.Address.Street = new Street { line = $"{e.Einsatz.Straße} {e.Einsatz.Hausnummer}" } } ; ; var coordinaten = e.Einsatz.KoordinatenWGS84(); if (coordinaten != null) { alarmDto.Alarm.AlarmDetails.Address.Coordinates = new Coordinates(); alarmDto.Alarm.AlarmDetails.Address.Coordinates.Latitude = coordinaten.Latitude; alarmDto.Alarm.AlarmDetails.Address.Coordinates.Longitude = coordinaten.Longitude; } //Create text if (!string.IsNullOrEmpty(e.Einsatz.Bemerkung)) { alarmDto.Alarm.AlarmDetails.Texts = new List <string>(); alarmDto.Alarm.AlarmDetails.Texts.Add(e.Einsatz.Bemerkung); } //Send alarm to backend Logger.WriteDebug(MethodBase.GetCurrentMethod(), $"create alarm -> {alarmDto}"); if (string.IsNullOrEmpty(_currentAlarmId)) { var _alarmResult = _apiService.CreateAlarm(alarmDto); if (_alarmResult == null || string.IsNullOrEmpty(_alarmResult.alarm_id)) { Logger.WriteDebug(MethodBase.GetCurrentMethod(), "create alarm -> ERROR"); return; } _currentAlarmId = _alarmResult.alarm_id; Logger.WriteDebug(MethodBase.GetCurrentMethod(), $"create alarm -> alarmId[{_currentAlarmId}]"); } else { var _alarmResult = _apiService.UpdateAlarm(_currentAlarmId, alarmDto); if (_alarmResult == null || string.IsNullOrEmpty(_alarmResult.alarm_id)) { Logger.WriteDebug(MethodBase.GetCurrentMethod(), "update alarm -> ERROR"); return; } Logger.WriteDebug(MethodBase.GetCurrentMethod(), $"update alarm -> alarmId[{_currentAlarmId}]"); } Alarmed.RaiseEvent(this, new AlarmedEventArgs(e.Einsatz.Guid, _currentAlarmId)); timerAlarmEnd_Elapsed(this, null); // after a fax, alarm could not be updated } catch (Exception ex) { ExceptionOccured.RaiseEvent(this, new ExceptionEventArgs { Methode = MethodBase.GetCurrentMethod(), Error = ex }); } }); }