public List <AG_ROOT_Cont> PlatesteFactura(Suma sum, IBAN catre, List <AG_ROOT_Cont> conturi) { if (this.Sold.getSuma - sum.getSuma >= 0) { //ia banii din contul celui care transfera Tranzactie tranzactie = new Tranzactie(new ID(IstoricTranzactii.getTranzactii.Count()), catre, TipTranzactie.Factura); Contract.Requires <ArgumentException>(!tranzactie.Suma.getSuma.Equals(new Suma(0.0)), "suma sa fie !=0"); tranzactie.SetSumaTranzactionata(sum); this.sold.getSuma -= tranzactie.Suma.getSuma; this.IstoricTranzactii.AdaugaTranzactie(tranzactie); //depune in contul altuia, update contul impactat!! int indexDest = GasesteDestinatarul(catre, conturi); if (indexDest != -1) { AG_ROOT_Cont destinatar = conturi.ElementAt(indexDest); destinatar.sold.getSuma += tranzactie.Suma.getSuma; Tranzactie tranzactie2 = new Tranzactie(new ID(destinatar.IstoricTranzactii.getTranzactii.Count()), this.iban, TipTranzactie.Depunere); tranzactie2.SetSumaTranzactionata(sum); destinatar.IstoricTranzactii.AdaugaTranzactie(tranzactie2); Console.WriteLine("Clientul: " + this.DateClient.Nume + " a platit o factura de " + sum.getSuma + " lei in contul lui " + destinatar.DateClient.Nume); return(conturi); //returneaza lista de conturi cu informatiile updatate } else { throw new AccountNotFoundException(); } } else { throw new InsufficientFundsException(); } }
public List <AG_ROOT_Cont> TransferBaniIntreDouaConturi(Suma sum, AG_ROOT_Cont sursa, AG_ROOT_Cont dest) { //va returna conturile modificate if (sursa.Sold.getSuma - sum.getSuma >= 0) { if (sum.getSuma == 0) { throw new ArgumentException(""); } else { Tranzactie tranzactie = new Tranzactie(new ID(1), dest.IBAN, TipTranzactie.Transfer); //ia banii din contul celui care transfera tranzactie.SetSumaTranzactionata(sum); sursa.sold.getSuma -= tranzactie.Suma.getSuma; sursa.IstoricTranzactii.AdaugaTranzactie(tranzactie); //depune in contul altuia, update contul impactat!! dest.sold.getSuma += tranzactie.Suma.getSuma; Tranzactie tranzactie2 = new Tranzactie(new ID(1), sursa.iban, TipTranzactie.Transfer); tranzactie2.SetSumaTranzactionata(sum); dest.IstoricTranzactii.AdaugaTranzactie(tranzactie2); //Console.WriteLine("Clientul: " + this.DateClient.Nume + " a depus " + sum.getSuma + " lei in contul lui " + destinatar.DateClient.Nume); List <AG_ROOT_Cont> conturi = new List <AG_ROOT_Cont>(); conturi.Add(sursa); conturi.Add(dest); return(conturi); //returneaza cele doua conturi cu informatiile updatate } } else { throw new InsufficientFundsException(); } }
public AG_ROOT_Cont CreazaCont(IBAN iban, Client client) { var cont = new AG_ROOT_Cont(iban, client); return(cont); }