public IEnumerable <BankWithClients> RetrieveAllBanksWithClients() { var results = _repo.DebtsForPeopleAndBanks().Result.Where(d => d.Amount > 0); var banks = _repo.AllBanks().Result; var bankClients = new List <BankWithClients>(); foreach (var bank in banks) { var theBank = new BankWithClients() { BankId = bank.IDBank, BankName = bank.Name, Clients = new List <Person>() }; bankClients.Add(theBank); } foreach (var item in bankClients) { foreach (var debt in results) { if (item.BankId == debt.bank.IDBank) { item.Clients.Add(debt.person); } } } return(bankClients); }
static void Main(string[] args) { var d = new DebtRepository(); Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(d.AllBanks())); Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(d.AllPersons())); Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(d.DebtsForPeopleAndBanks())); }
public RefinanceResponse TransferPersonsDebtToOneBank(int bankId, int personId) { var bankToTransfer = _repo.AllBanks().Result.Where(b => b.IDBank == bankId).FirstOrDefault(); if (bankToTransfer == null) { return(RefinanceResponse.NotFound); } var person = _repo.AllPersons().Result.Where(p => p.IDPerson == personId).FirstOrDefault(); if (person == null) { return(RefinanceResponse.NotFound); } var debts = _repo.DebtsForPeopleAndBanks().Result.Where(d => d.person.IDPerson == personId); if (debts.Count() < 2) { return(RefinanceResponse.BadRequest); } var maxDebt = bankToTransfer.MaxDebt; int sumDebt = 0; foreach (var debt in debts) { sumDebt += debt.Amount; } if (sumDebt > maxDebt) { return(RefinanceResponse.BadRequest); } foreach (var debt in debts) { if (debt.bank.IDBank == bankToTransfer.IDBank) { debt.Amount = sumDebt; } else { debt.Amount = 0; } } return(RefinanceResponse.Succes); }