Пример #1
0
        public override void AggiungiMovimentoDiDenaro()
        {
            if (Sorgente.Equals(Destinazione))
            {
                throw new ArgumentException("Sorgente e destinazione devono essere diversi", "sorgente/destinazione");
            }
            if (!Spesa.SpeseGruppo.Gruppo.MembriGruppo.Contains(Sorgente) ||
                !Spesa.SpeseGruppo.Gruppo.MembriGruppo.Contains(Destinazione))
            {
                throw new ArgumentException("Sorgente e destinazione devono far parte dello stesso gruppo", "sorgente/destinazione");
            }

            Sorgente.MovimentiDiDenaro.Add(this);
            Destinazione.MovimentiDiDenaro.Add(this);
        }
Пример #2
0
 public void OnLogout()
 {
     staFacendoLogout = true;
     magnitudoCodaThread.Abort();
     frequenzaCodaThread.Abort();
     Sorgente?.Ferma();
     Sorgente?.RimuoviAnalisi(magnitudo);
     Sorgente?.RimuoviAnalisi(frequenza);
     magnitudo.RicevitoriRisultato         -= SegnalaMagnitudo;
     frequenza.RicevitoriRisultato         -= SegnalaFrequenza;
     GestoreEventi.RicevitoriEventoSismico -= RiceviEvento;
     this.magnitudo = null;
     this.frequenza = null;
     Sorgente       = null;
 }
Пример #3
0
        public override void AggiungiMovimentoDiDenaro()
        {
            if (Sorgente.Equals(Destinazione))
            {
                throw new ArgumentException("Sorgente e destinazione devono essere diversi", "sorgente/destinazione");
            }
            if (!Sorgente.Amici().Contains(Destinazione))
            {
                throw new ArgumentException("Sorgente e destinazione devono essere amici", "sorgente/destinazione");
            }
            if (Sorgente.CalcolaSituazione(Destinazione) == 0)
            {
                throw new ArgumentException("Deve esistere un debito/credito tra sorgente e destinazione", "sorgente/destinazione");
            }

            Sorgente.MovimentiDiDenaro.Add(this);
            Destinazione.MovimentiDiDenaro.Add(this);
        }
Пример #4
0
        private void HomeDashboard_Load(object sender, EventArgs e)
        {
            this.panelAllertaEvento.Visible = false;

            threadSorgente = new Thread(() => Sorgente.CicloPrincipale());
            threadSorgente.Start();

            magnitudo = new AnalisiMagnitudine();
            Sorgente.AggiungiAnalisi(magnitudo);

            magnitudo.RicevitoriRisultato += SegnalaMagnitudo;

            frequenza = new AnalisiFrequenza();
            Sorgente.AggiungiAnalisi(frequenza);

            frequenza.RicevitoriRisultato += SegnalaFrequenza;


            magnitudoCodaThread = new Thread(() =>
            {
                while (!staFacendoLogout)
                {
                    double corrente = codaMagnitudo.Take();
                    updateChartMagnitudo(corrente);
                }
            });
            magnitudoCodaThread.Start();


            frequenzaCodaThread = new Thread(() =>
            {
                while (!staFacendoLogout)
                {
                    double corrente = codaFrequenza.Take();
                    updateChartFrequenza(corrente);
                }
            });
            frequenzaCodaThread.Start();

            // Registro il gestore di eventi
            GestoreEventi.RicevitoriEventoSismico += RiceviEvento;
        }