public async Task <IActionResult> CreateFriendExpenses([FromBody] FriendExpensesData data) { if (ModelState.IsValid) { unitofwork.UserRepository.CreateFriendExpense(data); await unitofwork.Save(); unitofwork.UserRepository.AddFriendBill(data); await unitofwork.Save(); } return(Ok(data)); }
public void CreateFriendExpense(FriendExpensesData friendExpensesData) { int k = 0; int f = 0; List <FriendExpense> expense = Context.FriendExpenses.Where(x => x.Paidby == friendExpensesData.Paidby).ToList(); if (expense.Count != 0) { foreach (var exp in expense) { k = 0; foreach (var i in friendExpensesData.FriendUserExpense) { var b = Context.FriendBills.FirstOrDefault(x => x.FriendId == i.UserId); if (b != null) { k++; } } if (k == friendExpensesData.FriendUserExpense.Count) { exp.Amount += friendExpensesData.Amount; exp.Date = friendExpensesData.Date; Context.FriendExpenses.Update(exp); f = 1; break; } } if (f != 1) { FriendExpense exp = new FriendExpense(); exp.Date = friendExpensesData.Date; exp.Description = friendExpensesData.Description; exp.Amount = friendExpensesData.Amount; exp.Split = friendExpensesData.Split; exp.Paidby = friendExpensesData.Paidby; Context.FriendExpenses.Add(exp); } } else { FriendExpense exp = new FriendExpense(); exp.Date = friendExpensesData.Date; exp.Description = friendExpensesData.Description; exp.Amount = friendExpensesData.Amount; exp.Split = friendExpensesData.Split; exp.Paidby = friendExpensesData.Paidby; Context.FriendExpenses.Add(exp); } }
public void AddFriendBill(FriendExpensesData data) { int expId = GetExpenseId(data.Date); List <FriendBill> list = new List <FriendBill>(); List <FriendBill> a = Context.FriendBills.Where(x => x.FriendExpId == expId).ToList(); List <FriendExpense> expense = Context.FriendExpenses.Where(x => x.Paidby == data.Paidby).ToList(); int f = 0, k = 0; if (expense.Count != 0) { foreach (var exp in expense) { k = 0; foreach (var i in data.FriendUserExpense) { var b = Context.FriendBills.FirstOrDefault(x => x.FriendId == i.UserId); if (b != null) { k++; } } if (k == data.FriendUserExpense.Count) { f = 0; foreach (var i in data.FriendUserExpense) { var x = Context.FriendBills.FirstOrDefault(b => b.FriendExpId == exp.Id && b.FriendId == i.UserId); x.Bill += i.Amount; Context.FriendBills.Update(x); f++; } } if (f == k) { break; } } if (f == 0) { foreach (var i in data.FriendUserExpense) { FriendBill bills = new FriendBill(); bills.FriendExpId = expId; bills.FriendId = i.UserId; bills.Bill = i.Amount; list.Add(bills); } Context.FriendBills.AddRange(list); } } else { foreach (var i in data.FriendUserExpense) { FriendBill bills = new FriendBill(); bills.FriendExpId = expId; bills.FriendId = i.UserId; bills.Bill = i.Amount; list.Add(bills); } Context.FriendBills.AddRange(list); } }