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); }
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; }
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); }
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; }