コード例 #1
0
        public void TestRegistraEvento()
        {
            Stazione stazione = new Stazione
            {
                Nome                   = "BolognaA1",
                Locazione              = "Bologna",
                IndirizzoDiRete        = IPAddress.Parse("10.56.77.233"),
                Porta                  = 5555,
                ImprontaChiavePubblica = "aksjdada8s7d8a6da78sdEEeewrR"
            };

            Assert.IsTrue(gestioneStazioniController.Registra(stazione));

            EventoSismico evento = new EventoSismico
            {
                Messaggio = "Magnitudo superata",
                Priorita  = Priorita.Fatal,
                Stazione  = stazione,
                Tag       = "Magnitudo",
                Timestamp = 1234
            };

            Assert.IsTrue(storicoController.RegistraEvento(evento));

            // Verifico che sia stato salvato correttamente
            IEventoSismico evnt = storicoController.ListaEventi()[0];

            Assert.AreEqual(evento, evnt);
            Assert.AreEqual(evnt.Stazione, stazione);
        }
コード例 #2
0
        public IList <IEventoSismico> ListaEventi()
        {
            List <IEventoSismico> eventi = new List <IEventoSismico>();

            // Nella query effettuo una JOIN con la tabella stazioni per ottenere tutti i dati combinati
            using (SQLiteCommand cmd = new SQLiteCommand("SELECT eventi.id AS eventi_id, eventi.tag AS eventi_tag, " +
                                                         "eventi.priorita AS eventi_priorita, eventi.timestamp AS eventi_timestamp," +
                                                         "eventi.messaggio AS eventi_messaggio, stazioni.id AS stazioni_id, " +
                                                         "stazioni.nome AS stazioni_nome, " +
                                                         "stazioni.locazione AS stazioni_locazione, " +
                                                         "stazioni.indirizzoDiRete AS stazioni_indirizzoDiRete, " +
                                                         "stazioni.porta AS stazioni_porta, stazioni.impronta AS stazioni_impronta " +
                                                         "FROM eventi LEFT OUTER JOIN stazioni ON eventi.stazione = stazioni.id", _connection))
            {
                using (SQLiteDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        IEventoSismico evento = EventoSismico.ConvertiRigaInEventoSismico(reader);
                        if (evento != null)
                        {
                            eventi.Add(evento);
                        }
                    }
                }
            }

            return(eventi);
        }
コード例 #3
0
        private void RiceviEvento(IEventoSismico evento)
        {
            this.Invoke((MethodInvoker) delegate
            {
                // Avvio l'allarme sonoro
                SoundPlayer simpleSound = new SoundPlayer(Resources.alarm);
                simpleSound.Play();

                // Running on the UI thread
                allertaEventoAsync(evento);
            });
        }
コード例 #4
0
        public void TestFiltroTag()
        {
            IEventoSismico e = EventoSismicoTest.createMockEvent();

            IFiltroEvento filter = new FiltroTag("Magnitude");

            Assert.IsTrue(filter.Filtra(e));

            IFiltroEvento filter2 = new FiltroTag("Frequency");

            Assert.IsFalse(filter2.Filtra(e));
        }
コード例 #5
0
        public void TestFiltroPriorita()
        {
            IFiltroEvento  filter = new FiltroPriorita(Priorita.Info);
            IEventoSismico e      = EventoSismicoTest.createMockEvent();

            // Should be false
            Assert.IsFalse(filter.Filtra(e));

            // Should be true
            IFiltroEvento filter2 = new FiltroPriorita(Priorita.Fatal);

            Assert.IsTrue(filter2.Filtra(e));
        }
コード例 #6
0
        public void TestFiltroIntervalloDiTempo()
        {
            IEventoSismico e = EventoSismicoTest.createMockEvent();

            IFiltroEvento filter = new FiltroIntervalloDiTempo(123000, 123999);

            Assert.IsTrue(filter.Filtra(e));

            IFiltroEvento filter2 = new FiltroIntervalloDiTempo(123999, 999999);

            Assert.IsFalse(filter2.Filtra(e));

            IFiltroEvento filter3 = new FiltroIntervalloDiTempo(123000, 123123);

            Assert.IsFalse(filter3.Filtra(e));
        }
コード例 #7
0
        public void TestFiltroCerca()
        {
            IEventoSismico e = EventoSismicoTest.createMockEvent();

            // Should be false
            IFiltroEvento filter = new FiltroCerca("yeah");

            Assert.IsFalse(filter.Filtra(e));

            // Should be true
            IFiltroEvento filter2 = new FiltroCerca("BRO");  // Test case insensitive

            Assert.IsTrue(filter2.Filtra(e));

            // Should be true
            IFiltroEvento filter3 = new FiltroCerca("gniTude");  // Test case insensitive

            Assert.IsTrue(filter3.Filtra(e));
        }
コード例 #8
0
        public async System.Threading.Tasks.Task allertaEventoAsync(IEventoSismico evento)
        {
            this.panelAllertaEvento.Visible   = true;
            this.panelAllertaEvento.BackColor = SismioColor.Priorita(evento.Priorita);
            this.labelPrioritaEvento.Text     = evento.Priorita.ToString().ToUpper();
            this.labelMessaggioEvento.Text    = evento.Messaggio.ToString();

            if (evento.Priorita == Priorita.Fatal)
            {
                this.labelPrioritaEvento.ForeColor  = Color.White;
                this.labelMessaggioEvento.ForeColor = Color.White;
            }
            else
            {
                this.labelPrioritaEvento.ForeColor  = Color.Black;
                this.labelMessaggioEvento.ForeColor = Color.Black;
            }

            int criticita = ((int)evento.Priorita) + 1;
            await Task.Delay(TimeSpan.FromSeconds(criticita *ALLERTA_TIME_MULTIPLIER));

            this.panelAllertaEvento.Visible = false;
        }
コード例 #9
0
 public bool Filtra(IEventoSismico eventoSismico)
 {
     return(eventoSismico.Tag.Equals(Tag));
 }
コード例 #10
0
 public bool Filtra(IEventoSismico eventoSismico)
 {
     return(eventoSismico.Tag.IndexOf(_query, StringComparison.OrdinalIgnoreCase) >= 0 ||
            eventoSismico.Messaggio.IndexOf(_query, StringComparison.OrdinalIgnoreCase) >= 0);
 }
コード例 #11
0
 public bool Filtra(IEventoSismico eventoSismico)
 {
     return(eventoSismico.Priorita == _priorita);
 }
コード例 #12
0
 public bool Filtra(IEventoSismico eventoSismico)
 {
     return(eventoSismico.Timestamp >= Inizio && eventoSismico.Timestamp <= Fine);
 }