コード例 #1
0
 public ProdottiFormPresenter(ProdottiForm prodottiForm, Gruppo gruppo)
 {
     _prodottiForm = prodottiForm;
     _gruppo       = gruppo;
     InitializeEvents();
     AggiornaUI();
 }
コード例 #2
0
 public void RimuoviGruppo(Gruppo gruppo)
 {
     if (!this.Gruppi.Contains(gruppo))
     {
         throw new ArgumentException("Gruppo non presente, eliminazione fallita");
     }
     _gruppi.Remove(gruppo);
 }
コード例 #3
0
 public BilancioGruppoFormPresenter(BilancioGruppoForm bilancioGruppoForm, Utente utente, Gruppo gruppo)
 {
     _bilancioGruppoForm = bilancioGruppoForm;
     _utente             = utente;
     _gruppo             = gruppo;
     InitializeEvents();
     AggiornaUI();
 }
コード例 #4
0
ファイル: Utente.cs プロジェクト: nicolasebastianelli/Room8
        public void RimuoviGruppo(Gruppo gruppo)
        {
            if (gruppo == null)
            {
                throw new ArgumentNullException("gruppo");
            }

            _gruppi.Remove(gruppo);
        }
コード例 #5
0
ファイル: Utente.cs プロジェクト: nicolasebastianelli/Room8
        public void AggiungiGruppo(Gruppo gruppo)
        {
            if (gruppo == null)
            {
                throw new ArgumentNullException("gruppo");
            }

            _gruppi.Add(gruppo);
        }
コード例 #6
0
 public GruppoFormPresenter(GruppoForm gruppoForm, Utente utente, Gruppo gruppo)
 {
     _gruppoForm = gruppoForm;
     _utente     = utente;
     _gruppo     = gruppo;
     _controls   = new List <Button>();
     _mails      = new List <TextBox>();
     InitializeEvents();
     InitializeUI();
 }
コード例 #7
0
        public Parti(Gruppo gruppo)
        {
            if (gruppo == null)
            {
                throw new ArgumentNullException("gruppo");
            }

            _divisione = new Dictionary <Utente, decimal>();
            foreach (var utente in gruppo.MembriGruppo)
            {
                _divisione.Add(utente, 0);
            }
        }
コード例 #8
0
ファイル: Utente.cs プロジェクト: nicolasebastianelli/Room8
        public decimal CalcolaBilancio(Gruppo gruppo)
        {
            // ritorna l'ammontare totale a credito/debito con l'intero gruppo
            if (gruppo == null)
            {
                throw new ArgumentNullException("gruppo");
            }
            if (!gruppo.MembriGruppo.Contains(this))
            {
                throw new ArgumentException("utente non appartenente al gruppo");
            }

            return(gruppo.MembriGruppo.Sum(u => this.CalcolaSituazione(u, gruppo)));
        }
コード例 #9
0
        public void AggiungiGruppo(Gruppo gruppo)
        {
            if (this.Gruppi.Count != 0 && (_gruppi as List <Gruppo>).Exists(x => x.Id.Equals(gruppo.Id)))
            {
                throw new ArgumentException("Utente già presente");
            }

            foreach (var utente in gruppo.MembriGruppo)
            {
                if (!_utenti.Exists(x => x.Mail.Equals(utente.Mail)))
                {
                    _utenti.Add(utente);
                }
            }
            _gruppi.Add(gruppo);
        }
コード例 #10
0
 private void AggiungiPersonaLinkLabel_Click(object sender, EventArgs e)
 {
     GruppoForm.ErrorProvider.Clear();
     try
     {
         if (Gruppo == null)
         {
             Gruppo = new Gruppo(GruppoForm.NomeGruppoTextBox.Text);
         }
         AggiungiRiga("");
     }
     catch (ArgumentException ae)
     {
         GruppoForm.ErrorProvider.SetError(GruppoForm.NomeGruppoTextBox, string.IsNullOrEmpty(ae.ParamName) ?
                                           ae.Message : ae.Message.Substring(0, ae.Message.IndexOf('\n')));
     }
 }
コード例 #11
0
 void EliminaButton_Click(object sender, EventArgs e)
 {
     try
     {
         if (Mails.Count > 0)
         {
             throw new ArgumentException("Devi prima rimuovere tutti i membri");
         }
         while (Gruppo.MembriGruppo.Count > 0)
         {
             Gruppo.RimuoviMembro(Gruppo.MembriGruppo[0].Mail);
         }
         Observer.AggiornaUI();
         GruppoForm.DialogResult = DialogResult.OK;
     }
     catch (ArgumentException ae)
     {
         GruppoForm.ErrorProvider.SetError(GruppoForm.EliminaButton, ae.Message);
     }
 }
コード例 #12
0
ファイル: Utente.cs プロジェクト: nicolasebastianelli/Room8
        public decimal CalcolaSituazione(Utente amico, Gruppo gruppo)
        {
            // come calcolaSituazione ma limitato ai movimenti nel gruppo 'gruppo'
            if (amico == null)
            {
                throw new ArgumentNullException("amico");
            }
            if (gruppo == null)
            {
                throw new ArgumentNullException("gruppo");
            }

            decimal result = 0;

            foreach (var movimento in MovimentiDiDenaro.Where(
                         mov => mov.Destinazione.Equals(amico) || mov.Sorgente.Equals(amico)))
            {
                if ((movimento is Movimento && (movimento as Movimento).Spesa.SpeseGruppo.Gruppo.Equals(gruppo)) || movimento is Saldo)
                {
                    if (movimento.Sorgente.Equals(amico) && movimento.Destinazione.Equals(this))
                    {
                        result += movimento.Importo;
                    }
                    else if (movimento.Sorgente.Equals(this) && movimento.Destinazione.Equals(amico))
                    {
                        result -= movimento.Importo;
                    }
                }
                else
                {
                    continue;
                }
            }

            // Risultato negativo --> Credito
            // Risultato positivo --> Debito

            return(result);
        }
コード例 #13
0
        private void ConfermaButton_Click(object sender, EventArgs e)
        {
            GruppoForm.ErrorProvider.Clear();
            try
            {
                if (Mails.Count == 0)
                {
                    throw new ArgumentException("Inserisci almeno un'altro utente", "membro");
                }
                Gruppo.Nome = GruppoForm.NomeGruppoTextBox.Text;
                Gruppo.Foto = GruppoForm.PictureBox.ImageLocation;
                int i;
                for (i = 0; i < Gruppo.MembriGruppo.Count; i++)
                {
                    int j;
                    for (j = 0; j < Mails.Count; j++)
                    {
                        if (Gruppo.MembriGruppo[i].Mail.Equals(Mails[j].Text))
                        {
                            break;
                        }
                    }
                    if (j < Mails.Count)
                    {
                        continue;
                    }
                    Gruppo.RimuoviMembro(Gruppo.MembriGruppo[i].Mail);
                    i--;
                }

                for (int j = i; j < Mails.Count; j++)
                {
                    if (Mails[j].Text.Equals(""))
                    {
                        throw new ArgumentException("Inserisci una mail", "membro");
                    }
                    Utente utente = GestoreUtenti.Instance.GetUtente(Mails[j].Text);
                    if (utente == null)
                    {
                        throw new ArgumentException("Utente " + Mails[j].Text + " inesistente", "membro");
                    }
                    Gruppo.AggiungiMembro(utente);
                }
                Gruppo.AggiungiMembro(Utente);
                Observer.AggiornaUI();
                GruppoForm.DialogResult = DialogResult.OK;
            }
            catch (ArgumentException ae)
            {
                Control control;
                switch (ae.ParamName)
                {
                case "nome":
                    control = GruppoForm.NomeGruppoTextBox;
                    break;

                case "membro":
                    control = GruppoForm.AggiungiPersonaLinkLabel;
                    break;

                case "file":
                    control = GruppoForm.FileLabel;
                    break;

                default:
                    GruppoForm.ErrorProvider.SetIconAlignment(GruppoForm.ConfermaButton, ErrorIconAlignment.MiddleLeft);
                    control = GruppoForm.ConfermaButton;
                    break;
                }
                GruppoForm.ErrorProvider.SetError(control, string.IsNullOrEmpty(ae.ParamName) ?
                                                  ae.Message : ae.Message.Substring(0, ae.Message.IndexOf('\n')));
            }
        }
コード例 #14
0
 public SpeseGruppo(Gruppo gruppo)
 {
     _gruppo = gruppo;
     _spese  = new List <Spesa>();
 }