示例#1
0
        private void recordDevice_RecordingStopped(object sender, StoppedEventArgs e)
        {
            try
            {
                Logger.WriteDebug(MethodBase.GetCurrentMethod(), "recordDevice -> Stopped");

                if (_einsatz != null)
                {
                    //Raise Event
                    EinsatzFinished.RaiseEvent(this, new EinsatzFinishedEventArgs(_einsatz));
                    //Reset Einsatz
                    _einsatz = null;
                    Logger.WriteDebug(MethodBase.GetCurrentMethod(), "Reset einsatz -> finish");
                }

                _recordMp3Writer?.Dispose();
                _recordWaveStream?.Dispose();
            }
            catch (Exception ex)
            {
                ExceptionOccured.RaiseEvent(this, new ExceptionEventArgs
                {
                    Methode = MethodBase.GetCurrentMethod(),
                    Error   = ex
                });
            }
            finally
            {
                _recordState      = RecordState.Stopped;
                _recordWaveStream = null;
                _recordMp3Writer  = null;
            }
        }
示例#2
0
        private void decoderService_PagerMessageReceived(object sender, PagerMessageEventArgs e)
        {
            if (e == null || _recordState == RecordState.RequestedStop)
            {
                return;
            }

            try
            {
                Logger.WriteDebug(MethodBase.GetCurrentMethod(), $"Pager-Message({e.Identifier})");

                if (_einsatz == null)
                {
                    _einsatz = new Einsatz(App.Path_Record);
                    Logger.WriteDebug(MethodBase.GetCurrentMethod(), "Create new einsatz");

                    startRecording();
                }

                _einsatz.AddPager(e);

                timerAlarmEnd_Reset();
            }
            catch (Exception ex)
            {
                ExceptionOccured.RaiseEvent(this, new ExceptionEventArgs
                {
                    Methode = MethodBase.GetCurrentMethod(),
                    Error   = ex
                });
            }
        }
        private void OnShowAlarm()
        {
            try
            {
                Logger.WriteDebug("RIS: ShowAlarmCommand");

                var _testEinsatz = new Einsatz
                {
                    AbsenderValid = true,
                    AlarmTime     = DateTime.Now,
                    Ort           = "83278 Traunstein",
                    Straße        = "Empfing",
                    Hausnummer    = "15",
                    Objekt        = "Tierheim Traunstein",
                    Schlagwort    = "Brand Wohnhaus",
                    Stichwort     = "B4",
                    Bemerkung     = "Flammen schlagen aus dem Dach.Keine Personen mehr im Gebäude!Dies ist ein Test!!"
                };
                _testEinsatz.Einsatzmittel = new List <Vehicle>(_business.GetVehiclesAreEinsatzmittel().Take(3));

                var _alarmWindow = new AlarmWindow(_testEinsatz);
                _alarmWindow.ShowDialog();
            }
            catch (Exception ex)
            {
                Logger.WriteError(MethodBase.GetCurrentMethod(), ex);
                MessageBox.Show("Leider ist ein Fehler aufgetreten:\r\n" + ex.Message, MessageBoxButton.OK,
                                MessageBoxImage.Error);
            }
        }
        private void kd_delete_Click(object sender, RoutedEventArgs e)
        {
            Einsatz foo = new Einsatz(this.curr_id);

            foo.delete();
            this.refreshList();
        }
        public AlarmRouteViewModel(Einsatz _einsatz)
        {
            try
            {
                //Load logo as image
                using (var _memoryStream = new MemoryStream())
                {
                    var _resourceStream =
                        Application.GetResourceStream(new Uri(@"Resources/Image.Logo.png", UriKind.RelativeOrAbsolute));
                    _resourceStream.Stream.CopyTo(_memoryStream);
                    Image = _memoryStream.ToArray();
                }

                einsatzGuid = _einsatz.Guid;

                mapService = ServiceLocator.Current.GetInstance <IMapService>();
                if (mapService != null)
                {
                    mapService.Finished += (sender, e) => DispatcherHelper.CheckBeginInvokeOnUI(() =>
                    {
                        mapService_Finished(sender, e);
                    });
                }
            }
            catch (Exception ex)
            {
                Logger.WriteError(MethodBase.GetCurrentMethod(), ex);
            }
        }
示例#6
0
        static void Main(string[] args)
        {
            /*
             * // Delegates
             #region Delegates as Method Param
             * var rechenOperation = new RechenOperation(Add);
             * rechenOperation(10, 9);
             *
             * var cleanUp = new CleanUp(CleanUpImplementation);
             * DoSomething(cleanUp);
             #endregion
             *
             #region Linq & Lambdas
             * var list = Enumerable
             *  .Range(1, 100)
             *  .Where(x => x % 2 == 0)
             *  .Average();
             *
             * var sum = 0;
             * var cnt = 1;
             * for (int i = 1; i < 100; i++)
             *  if (i % 2 == 0)
             *  {
             *      cnt++;
             *      sum += i;
             *  }
             *
             * // Average
             * Console.WriteLine(sum / cnt);
             #endregion
             */

            // Delegates & Events an einem Beispiel

            #region Delegates & Events

            var freiwilligeFeuerwehr = new FreiwilligeFeuerwehr();
            var einsatz = new Einsatz {
                Meldung = "Blitzeinschlag"
            };

            var pagerService     = new PagerService();
            var sirenenService   = new SirenenService();
            var messagingService = new MessagingService();

            freiwilligeFeuerwehr.AlarmiereFeuerwehr += pagerService.AlarmiereFeuerwehr;
            freiwilligeFeuerwehr.AlarmiereFeuerwehr += sirenenService.AlarmiereFeuerwehr;
            freiwilligeFeuerwehr.AlarmiereFeuerwehr += messagingService.AlarmiereFeuerwehr;
            freiwilligeFeuerwehr.AlarmiereFeuerwehr -= messagingService.AlarmiereFeuerwehr;

            freiwilligeFeuerwehr.Alarmiere(einsatz);

            #endregion
        }
        private void kd_save_it()
        {
            Einsatz b = new Einsatz(this.curr_id);

            b.forecast   = Int32.Parse(this.ein_forecast.Text);
            b.ma_id      = Int32.Parse(this.ein_ma_id.Text);
            b.bau_id     = Int32.Parse(this.ein_bau_id.Text);
            b.start_date = this.ein_start.Text;
            b.end_date   = this.ein_ende.Text;

            b.save();

            this.refreshList();
        }
        public AlarmVehiclesViewModel(Einsatz _einsatz)
        {
            try
            {
                einsatzGuid = _einsatz.Guid;

                business = ServiceLocator.Current.GetInstance <IBusiness>();

                decoderService = ServiceLocator.Current.GetInstance <IDecoderService>();
                if (decoderService != null)
                {
                    decoderService.FmsMessageReceived += (sender, e) => DispatcherHelper.CheckBeginInvokeOnUI(() =>
                    {
                        decoderService_MessageFmsReceived(sender, e);
                    });
                }

                Vehicles            = new ObservableCollection <VehicleViewModel>();
                ContextMenuVehicles = new ObservableCollection <Vehicle>(business.GetVehiclesAreEinsatzmittel());
                foreach (var _vehicle in _einsatz.Einsatzmittel)
                {
                    //Add vehicle to view
                    var _alarmVehicle = addVehicle(_vehicle);
                    if (_alarmVehicle == null)
                    {
                        continue;
                    }

                    //Transfer Status from main view
                    var _mainVehicle = ServiceLocator.Current.GetInstance <MainVehiclesViewModel>().Vehicles
                                       .Where(v => v.Vehicle.Id == _alarmVehicle.Vehicle.Id).FirstOrDefault();
                    if (_mainVehicle != null)
                    {
                        _alarmVehicle.ChangeStatus(_mainVehicle.StatusText);
                    }

                    //Remove vehicle from ContextMenu if already in alarm list
                    var _contextMenuVehicle = ContextMenuVehicles.Where(c => c.Id == _vehicle.Id).FirstOrDefault();
                    if (_contextMenuVehicle != null)
                    {
                        ContextMenuVehicles.Remove(_contextMenuVehicle);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.WriteError(MethodBase.GetCurrentMethod(), ex);
            }
        }
        public AlarmViewModel(Einsatz einsatz)
        {
            try
            {
                _einsatzGuid = einsatz.Guid;

                _business = ServiceLocator.Current.GetInstance <IBusiness>();

                AlarmappVM = new AlarmAlarmappViewModel(einsatz);
                DataVM     = new AlarmDataViewModel(einsatz);
                RouteVM    = new AlarmRouteViewModel(einsatz);
                TimerVM    = new AlarmTimerViewModel(einsatz);
                VehiclesVM = new AlarmVehiclesViewModel(einsatz);
            }
            catch (Exception ex)
            {
                Logger.WriteError(MethodBase.GetCurrentMethod(), ex);
            }
        }
示例#10
0
        // Holt die Daten aus der Datenbank
        private void listing_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (this.listing.SelectedIndex >= 0)
            {
                this.curr_id = ((Einsatz)this.listing.Items[this.listing.SelectedIndex]).id;

                this.listing.Visibility = Visibility.Collapsed;

                Einsatz b = new Einsatz(this.curr_id);

                this.ein_bau_id.Text   = b.bau_id.ToString();
                this.ein_ma_id.Text    = b.ma_id.ToString();
                this.ein_start.Text    = b.start_date;
                this.ein_ende.Text     = b.end_date;
                this.ein_forecast.Text = b.forecast.ToString();

                this.formular.Visibility = Visibility.Visible;
            }
        }
示例#11
0
        public void refreshList()
        {
            this.listing.Items.Clear();

            Einsatz einsatz_neu = new Einsatz();

            this.listing.Items.Add(einsatz_neu);

            ArrayList alleEinsaetze = Einsatz.getAll();

            foreach (Einsatz b in alleEinsaetze)
            {
                this.listing.Items.Add(b);
            }

            this.curr_id = 0;

            this.formular.Visibility = Visibility.Collapsed;
            this.listing.Visibility  = Visibility.Visible;
        }
示例#12
0
        public AlarmTimerViewModel(Einsatz _einsatz)
        {
            try
            {
                einsatzGuid = _einsatz.Guid;
                alarmTime   = _einsatz.AlarmTime;

                updateTimer = new Timer
                {
                    Interval  = 1000,
                    AutoReset = false
                };
                updateTimer.Elapsed += updateTimer_Elapsed;
                updateTimer.Start();
            }
            catch (Exception ex)
            {
                Logger.WriteError(MethodBase.GetCurrentMethod(), ex);
            }
        }
        public AlarmAlarmappViewModel(Einsatz _einsatz)
        {
            try
            {
                einsatzGuid = _einsatz.Guid;

                alarmappService = ServiceLocator.Current.GetInstance <IAlarmappService>();
                if (alarmappService != null)
                {
                    alarmappService.Alarmed += (sender, e) => DispatcherHelper.CheckBeginInvokeOnUI(() =>
                    {
                        alarmappService_Alarmed(sender, e);
                    });
                }
            }
            catch (Exception ex)
            {
                Logger.WriteError(MethodBase.GetCurrentMethod(), ex);
            }
        }
示例#14
0
        public AlarmWindow(Einsatz _einsatz)
        {
            monitorService = ServiceLocator.Current.GetInstance <IMonitorService>();

            InitializeComponent();

            //Set time when window should be closed
            CloseTime = DateTime.Now.Add(Settings.Default.Monitor_AlarmTime);

            var _viewModel = new AlarmViewModel(_einsatz);

            _viewModel.CloseRequested += (sender, e) => { Close(); };
            DataContext = _viewModel;

            Loaded  += AlarmWindow_Loaded;
            Closing += AlarmWindow_Closing;

            //Add to alarmWindowList
            monitorService.AddAlarmWindow(this);
        }
示例#15
0
        private void timerStatusEnd_Elapsed(object sender, ElapsedEventArgs e)
        {
            Logger.WriteDebug(MethodBase.GetCurrentMethod(), "_timerStatusEnd -> Elapsed");

            if (_einsatz == null)
            {
                Logger.WriteDebug(MethodBase.GetCurrentMethod(), "no einsatz");
            }
            else if (_einsatz.PagerMessages.Count == 0)
            {
                Logger.WriteDebug(MethodBase.GetCurrentMethod(), "Reset einsatz -> no pagers");
                _einsatz = null;

                //Stop record
                stopRecording();
            }
            else
            {
                timerAlarmEnd_Reset();
            }
        }
        public static PlaylistEinsatz loadInto(Page page, Einsatz einsatz)
        {
            PlaylistEinsatz playlistEinsatz = page.LoadControl(PlaylistEinsatz.VirtualUrl) as PlaylistEinsatz;
            playlistEinsatz.Einsatz = einsatz;

            playlistEinsatz.lbPos.Text = String.Concat("&nbsp;", einsatz.PositionOnList.ToString());
            playlistEinsatz.tbAutor.Text = einsatz.Track.Autor.Name;
            playlistEinsatz.tbBpm.Text = einsatz.Track.Bpm.ValueAsString;
            playlistEinsatz.tbCode.Text = einsatz.Track.Code.Name;
            playlistEinsatz.tbInterpret.Text = einsatz.Track.Interpret.Name;
            playlistEinsatz.tbLabel.Text = einsatz.Track.Label.Name;
            playlistEinsatz.tbLaenge.Text = einsatz.Track.Laenge.Dauer;
            playlistEinsatz.tbTitel.Text = einsatz.Track.Titel.Name;
            playlistEinsatz.tbVerlag.Text = einsatz.Track.Verlag.Name;
            playlistEinsatz.tbYear.Text = einsatz.Track.Year.ValueAsString;

            /*
             * Quick hack. Statisches Laden ala TrackSearch_Servie ist Bloedsinn...
             */
            foreach(string name in Enum.GetNames(typeof(Ending.Attribute))) {
                playlistEinsatz.ddlEnding.Items.Add(
                    new ListItem(name, ((int)Enum.Parse(typeof(Ending.Attribute), name)).ToString()));
            }
            playlistEinsatz.ddlEnding.SelectedIndex = (int)einsatz.Track.Ending.Value;

            /*
             * tooltips
             */
            playlistEinsatz.tbAutor.ToolTip = einsatz.Track.Autor.Name;
            playlistEinsatz.tbInterpret.ToolTip = einsatz.Track.Interpret.Name;
            playlistEinsatz.tbLabel.ToolTip = einsatz.Track.Label.Name;
            playlistEinsatz.tbTitel.ToolTip = einsatz.Track.Titel.Name;
            playlistEinsatz.tbVerlag.ToolTip = einsatz.Track.Verlag.Name;
            playlistEinsatz.ddlEnding.ToolTip = "Select a track's ending characteristic.";

            return playlistEinsatz;
        }
示例#17
0
        private bool fileprintCheck(Einsatz einsatz, Fileprint fileprint)
        {
            if (fileprint == null || fileprint.Condition == null || fileprint.Expression == null)
            {
                return(false);
            }

            switch (fileprint.Condition.Id)
            {
            case 1:     //Ort ist
                if (Text.CheckString(einsatz.Ort, fileprint.Expression))
                {
                    return(true);
                }

                break;

            case 2:     //Straße ist
                if (Text.CheckString(einsatz.Straße, fileprint.Expression))
                {
                    return(true);
                }

                break;

            case 3:     //Hausnummer ist
                if (Text.CheckString(einsatz.Hausnummer, fileprint.Expression))
                {
                    return(true);
                }

                break;

            case 4:     //Straße + Hausnummer ist
                var splitExpression4 = fileprint.Expression.Split('+');
                if (splitExpression4.Count() != 2)
                {
                    return(false);
                }

                if (Text.CheckString(einsatz.Straße, splitExpression4[0]) &&
                    Text.CheckString(einsatz.Hausnummer, splitExpression4[1]))
                {
                    return(true);
                }

                break;

            case 5:     //Objekt ist
                if (Text.CheckString(einsatz.Objekt, fileprint.Expression))
                {
                    return(true);
                }

                break;

            case 6:     //Ort + Straße ist
                var splitExpression6 = fileprint.Expression.Split('+');
                if (splitExpression6.Count() != 2)
                {
                    return(false);
                }

                if (Text.CheckString(einsatz.Ort, splitExpression6[0]) &&
                    Text.CheckString(einsatz.Straße, splitExpression6[1]))
                {
                    return(true);
                }

                break;
            }

            return(false);
        }
示例#18
0
        public AlarmDataViewModel(Einsatz _einsatz)
        {
            try
            {
                einsatzGuid = _einsatz.Guid;

                //Stichwort
                if (!string.IsNullOrWhiteSpace(_einsatz.Stichwort))
                {
                    DataList.Add(_einsatz.Stichwort);
                }

                //Schlagwort
                if (!string.IsNullOrWhiteSpace(_einsatz.Schlagwort))
                {
                    DataList.Add(_einsatz.Schlagwort);
                }

                //Abschnitt
                if (!string.IsNullOrWhiteSpace(_einsatz.Abschnitt))
                {
                    DataList.Add(_einsatz.Abschnitt);
                }

                //Kreuzung
                if (!string.IsNullOrWhiteSpace(_einsatz.Kreuzung))
                {
                    DataList.Add(_einsatz.Kreuzung);
                }

                //Station
                if (!string.IsNullOrWhiteSpace(_einsatz.Station))
                {
                    DataList.Add(_einsatz.Station);
                }

                //Objekt
                if (!string.IsNullOrWhiteSpace(_einsatz.Objekt))
                {
                    DataList.Add(_einsatz.Objekt);
                }

                //Straße + Hausnr
                if (!string.IsNullOrWhiteSpace(_einsatz.Straße))
                {
                    DataList.Add(_einsatz.Straße + " " + _einsatz.Hausnummer);
                }

                //Ort
                if (!string.IsNullOrWhiteSpace(_einsatz.Ort))
                {
                    DataList.Add(_einsatz.Ort);
                }

                //Bemerkung
                if (!string.IsNullOrWhiteSpace(_einsatz.Bemerkung) && Settings.Default.AlarmData_Width > 0)
                {
                    var _bemerkung = string.Empty;
                    var _maxSign   = Convert.ToInt32(Settings.Default.AlarmData_Width) / 25;
                    var _signIndex = 0;

                    foreach (var _sign in _einsatz.Bemerkung)
                    {
                        if (_signIndex++ >= _maxSign && char.IsWhiteSpace(_sign))
                        {
                            _bemerkung += Environment.NewLine;
                            _signIndex  = 0;
                        }
                        else
                        {
                            _bemerkung += _sign;
                        }
                    }

                    DataList.Add(_bemerkung);
                }
                else if (!string.IsNullOrWhiteSpace(_einsatz.Bemerkung))
                {
                    DataList.Add(_einsatz.Bemerkung);
                }
            }
            catch (Exception ex)
            {
                Logger.WriteError(MethodBase.GetCurrentMethod(), ex);
            }
        }
示例#19
0
        public void CreateAlarm(Einsatz einsatz)
        {
            if (!IsAuthTokenValid())
            {
                return;
            }

            if (einsatz == null)
            {
                throw new ArgumentException("einsatz");
            }

            var operation = new FireboardOperation();

            operation.Version   = "1.0";
            operation.UniqueId  = Guid.NewGuid().ToString("N");
            operation.BasicData = new BasicData
            {
                ExternalNumber = "RISv" + Assembly.GetExecutingAssembly().GetName().Version,
                Keyword        = einsatz.Stichwort,
                Announcement   = einsatz.Schlagwort,
                Location       = $"{einsatz.Straße} {einsatz.Hausnummer}",
                Situation      = einsatz.Bemerkung
                                 //_text += "EINSATZMITTEL:" + Environment.NewLine;
                                 //foreach (Vehicle _vehicle in e.Einsatz.Einsatzmittel)
                                 //{
                                 //    _text += _vehicle.Name + Environment.NewLine;
                                 //}
            };

            if (!string.IsNullOrWhiteSpace(einsatz.KoordinatenRW) && !string.IsNullOrWhiteSpace(einsatz.KoordinatenHW))
            {
                var _coordinaten = new Coordinaten();
                _coordinaten.GaussToWGS84(Convert.ToDouble(einsatz.KoordinatenRW),
                                          Convert.ToDouble(einsatz.KoordinatenHW));

                operation.BasicData.Geo_location = new Geo_location
                {
                    Latitude  = _coordinaten.Latitude,
                    Longitude = _coordinaten.Longitude
                };
            }

            var client = new RestClient(Settings.Default.Fireboard_WebserviceUrl);

            client.UserAgent = "RISv" + Assembly.GetExecutingAssembly().GetName().Version;
            var request = new RestRequest(@"api?authkey={authkey}&call={calltype}", Method.POST);

            request.AddUrlSegment("authkey", Settings.Default.Fireboard_AuthKey);
            request.AddUrlSegment("calltype", "operation_data");
            request.RequestFormat = DataFormat.Xml;
            request.XmlSerializer = new DotNetXmlSerializer();
            request.AddXmlBody(operation);

            var response = client.Execute(request);

            if (response.ErrorException != null)
            {
                Logger.WriteError(MethodBase.GetCurrentMethod(), "Error retrieving response: " + response.ErrorMessage);
            }
        }
 public FinishedEventArgs(Einsatz _einsatz)
 {
     Einsatz = _einsatz;
 }