public AlarmCreateResult UpdateAlarm(string alarmId, AlarmDto alarmDto) { if (string.IsNullOrEmpty(_token)) { throw new ArgumentNullException(nameof(_token)); } if (string.IsNullOrEmpty(alarmId)) { throw new ArgumentNullException(nameof(alarmId)); } if (alarmDto == null) { throw new ArgumentNullException("alarmDto"); } var _request = new RestRequest(Method.PUT) { RequestFormat = DataFormat.Json, Resource = $"alarm/{alarmId}" }; _request.AddHeader("Content-Type", "application/json"); _request.AddHeader("Authorization", $"Bearer {_token}"); var test = alarmDto.ToJson(); _request.AddJsonBody(test); var _client = new RestClient(Settings.Default.Alarmapp_WebserviceUrl2); _client.UserAgent = "RISv" + Assembly.GetExecutingAssembly().GetName().Version; var _response = _client.Execute <AlarmCreateResult>(_request); if (_response.ErrorException != null) { Logger.WriteError(MethodBase.GetCurrentMethod(), "Error retrieving response: " + _response.ErrorMessage); return(null); } if (_response.Data == null) { Logger.WriteError(MethodBase.GetCurrentMethod(), "Error retrieving response: No Data"); return(null); } return(_response.Data); }
public async Task <WebApiResult> Save(AlarmDto alarm) { try { #if DEBUG await Task.Delay(500); #endif return(await Task.Factory.StartNew(() => { this._service.Save(alarm, GetUserDto()); return WebApiResult.Succeed(); })); } catch (Exception e) { Logger.e("Save", e); return(WebApiResult.Failed(e.Message)); } }
/// <summary> /// Creates or Updates alarm </summary> /// <param name="alarmDto">alarm DTO</param> /// <param name="userDto">user who updates the alarm</param> public void Save(AlarmDto alarmDto, UserDto userDto) { var rep = UnitOfWork.GetRepository <Alarm>(); var model = rep.GetById(alarmDto.EntityId); if (model == null) { model = this.Mapper.Map <Alarm>(alarmDto); this.UnitOfWork.GetRepository <Alarm>().Insert(model, userDto.Id); } else { this.Mapper.Map(alarmDto, model); this.UnitOfWork.GetRepository <Alarm>().Update(model, userDto.Id); } this.UnitOfWork.SaveChanges(); }
public void UpdateAlarm(int id, AlarmDto alarmDto) { if (!ModelState.IsValid) { throw new HttpResponseException(HttpStatusCode.BadRequest); } var alarmInDb = _context.Alarms.SingleOrDefault(c => c.Id == id); if (alarmInDb == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } Mapper.Map(alarmDto, alarmInDb); _context.SaveChanges(); }
public async Task <IHttpActionResult> CreateAlarm(AlarmDto alarmDto) { if (!ModelState.IsValid) { return(BadRequest()); } var alarm = Mapper.Map <AlarmDto, Alarm>(alarmDto); _context.Alarms.Add(alarm); _context.SaveChanges(); var rooms = _context.Rooms.ToList().Select(Mapper.Map <Room, Room>); var room = rooms.FirstOrDefault(r => r.Id == alarmDto.RoomId); alarmDto.Id = alarm.Id; string title = alarmDto.Name + " - " + room.Name; string body = alarmDto.Name + " - " + room.Name + alarmDto.NotifyDate.ToString(); await ApplicationFirebase.SendData(title, body); return(Ok()); }
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 }); } }); }
private void decoderService_PagerMessageReceived(object sender, PagerMessageEventArgs e) { if (e == null || e.Pager == null) { return; } if (_apiService == null) { return; } timerAlarmEnd_Reset(); Task.Factory.StartNew(() => { try { Logger.WriteDebug(MethodBase.GetCurrentMethod(), $"Pager-Message({e.Identifier})"); if (!_currentPagerList.Contains(e.Pager)) { _currentPagerList.Add(e.Pager); } if (e.Pager.AlarmappGroups?.Count == 0 && string.IsNullOrEmpty(_currentAlarmId)) { return; } var alarmDto = new AlarmDto(); alarmDto.Alarm.Title = "EINSATZ"; // add alarmgroups to dto foreach (var group in e.Pager.AlarmappGroups) { alarmDto.Groups.Add(group.GroupId); } // add text to dto alarmDto.Alarm.AlarmDetails.Texts = new List <string>(); foreach (var pager in _currentPagerList) { alarmDto.Alarm.AlarmDetails.Texts.Add($"{pager.Identifier} - {pager.Name}"); } //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}]"); } } catch (Exception ex) { ExceptionOccured.RaiseEvent(this, new ExceptionEventArgs { Methode = MethodBase.GetCurrentMethod(), Error = ex }); } }); }