private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.TryGetComponent(out IMovement player))
     {
         Alarmed?.Invoke();
     }
 }
예제 #2
0
파일: Program.cs 프로젝트: Tilps/Stash
 static void Main(string[] args)
 {
     Alarmed c = new Alarmed();
     object o = c.noise(new int[] {}, new int[] {}, new int[] {});
     PrintObj(o);
     System.Console.In.ReadLine();
 }
 private void AlarmOn()
 {
     _volumeSmooth.SetVolume(MaxVolume);
     Alarmed?.Invoke();
 }
예제 #4
0
        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
                    });
                }
            });
        }