public override void ControllaParti(Parti parti, decimal totale)
 {
     if (parti.Divisione.Values.Sum() != totale)
     {
         throw new ArgumentException("La somma degli importi deve essere uguale totale speso");
     }
 }
 public override void ControllaParti(Parti parti, decimal totale)
 {
     if (parti.Divisione.Values.Sum() != 100)
     {
         throw new ArgumentException("La somma delle percentuali deve essere 100");
     }
 }
            public Dictionary <Utente, decimal> DividiSpesa(decimal totale, Parti parti)
            {
                Dictionary <Utente, decimal> divisione = new Dictionary <Utente, decimal>();

                foreach (Utente utente in parti.Divisione.Keys)
                {
                    divisione[utente] = Dividi(totale, utente, parti);
                }

                return(divisione);
            }
 public override void ControllaParti(Parti parti, decimal totale)
 {
     foreach (var parte in parti.Divisione.Values)
     {
         if (parte % 1 != 0)
         {
             throw new ArgumentException("Le quote devono essere degli interi");
         }
     }
     if (parti.Divisione.Values.Sum() == 0)
     {
         throw new ArgumentException("Almeno una quota deve essere diversa da 0");
     }
 }
 protected override decimal Dividi(decimal totale, Utente utente, Parti parti)
 {
     return((totale / parti.Divisione.Values.Sum()) * parti.Divisione[utente]);
 }
 protected override decimal Dividi(decimal totale, Utente utente, Parti parti)
 {
     return(totale * ((decimal)parti.Divisione[utente] / 100));
 }
 public override void ControllaParti(Parti parti, decimal totale)
 {
     return;
 }
 protected override decimal Dividi(decimal totale, Utente utente, Parti parti)
 {
     return(totale / parti.Divisione.Keys.Count);
 }
 public abstract void ControllaParti(Parti parti, decimal totale);
 protected abstract decimal Dividi(decimal totale, Utente utente, Parti parti);
 protected override decimal Dividi(decimal totale, Utente utente, Parti parti)
 {
     return(parti.Divisione[utente]);
 }