public GroupModel Editgroup(int id, GroupModel groupModel) { var oldgroup = context.Groups.ToList().FirstOrDefault(x => x.GroupId == id); oldgroup.Amount = groupModel.Group.Amount; oldgroup.CreatorIdId = groupModel.Group.CreatorIdId; oldgroup.Date = groupModel.Group.Date; oldgroup.Title = groupModel.Group.Title; var group = context.Groups.Attach(oldgroup); group.State = Microsoft.EntityFrameworkCore.EntityState.Modified; var groupMember = context.GroupMembers.Where(x => x.GroupId == id); context.GroupMembers.RemoveRange(groupMember); var groupExpenses = context.GroupsofExpenses.ToList().Where(x => x.GroupId == id); context.GroupsofExpenses.RemoveRange(groupExpenses); // foreach (var item in groupExpenses) // { // expenserepo.DeleteExpense(item.ExpenseId); // } foreach (var item in groupModel.MembersId.ToList()) { GroupMembers groupMembers = new GroupMembers(); groupMembers.GroupId = oldgroup.GroupId; groupMembers.UserId = item; context.GroupMembers.Add(groupMembers); context.SaveChanges(); } foreach (var item in groupModel.Expenses.ToList()) { GroupExpense groupExpense = new GroupExpense() { GroupId = oldgroup.GroupId, ExpenseId = item.ExpenseId, }; context.GroupsofExpenses.Add(groupExpense); context.SaveChanges(); } var activity = new Activity(); activity.Activitydata = "You Edited" + groupModel.Group.Title + "group"; activity.Date = DateTime.Now.ToString(); activity.UserId = groupModel.Group.CreatorIdId; context.Activities.Add(activity); context.SaveChanges(); return(groupModel); }
public Expense AddExpense(ExpenseModel expenseModel) { this.context.Expenses.Add(expenseModel.Expense); context.SaveChanges(); if (expenseModel.Expense .GroupId != null) { GroupExpense groupExpense = new GroupExpense() { ExpenseId = expenseModel.Expense.ExpenseId, GroupId = expenseModel.Expense.GroupId, }; context.GroupsofExpenses.Add(groupExpense); context.SaveChanges(); } foreach (var item in expenseModel.Shares) { item.ExpenseId = expenseModel.Expense.ExpenseId; context.Shareinfo.Add(item); context.SaveChanges(); } foreach (var item in expenseModel.Payers) { var share = GetShare(item.PayerId, expenseModel.Expense.ExpenseId); Expenseinfo expenseinfo = new Expenseinfo(); expenseinfo.ExpenseId = expenseModel.Expense.ExpenseId; expenseinfo.PaidAmouunt = item.Amount; expenseinfo.UserId = item.PayerId; expenseinfo.ShareId = share.ShareId; expenseinfo.shareamount = share.ShareAmount; if ((share.ShareAmount - item.Amount) >= 0) { expenseinfo.BorrowedAmout = share.ShareAmount - item.Amount; expenseinfo.LentedAmout = 0; } else { expenseinfo.LentedAmout = item.Amount - share.ShareAmount; } context.Expensesinfo.Add(expenseinfo); context.SaveChanges(); } var expenseinfolist = context.Expensesinfo.ToList().Where(x => x.ExpenseId == expenseModel.Expense.ExpenseId); foreach (var item in expenseinfolist) { var LentedAmout = item.LentedAmout; if (LentedAmout > 0) { foreach (var subitem in expenseinfolist) { var BorrowedAmout = subitem.BorrowedAmout; if (LentedAmout < 0) { break; } if (item.UserId == subitem.UserId) { continue; } if (BorrowedAmout > 0) { Settelement settelement = new Settelement(); settelement.ExpenseId = expenseModel.Expense.ExpenseId; settelement.BorrowerId = subitem.UserId; settelement.LenterId = item.UserId; settelement.GroupId = expenseModel.Expense.GroupId; if (LentedAmout >= BorrowedAmout) { settelement.SettelementAmount = BorrowedAmout; LentedAmout = LentedAmout - BorrowedAmout; BorrowedAmout = 0; } if (LentedAmout < BorrowedAmout) { settelement.SettelementAmount = LentedAmout; LentedAmout = 0; BorrowedAmout = BorrowedAmout - LentedAmout; } context.Settelements.Add(settelement); context.SaveChanges(); } } } } var activity = new Activity() { Activitydata = "You" + expenseModel.Expense.Title + "Added", Date = DateTime.Now.ToString(), UserId = expenseModel.Expense.UserId, }; context.Activities.Add(activity); context.SaveChanges(); return(expenseModel.Expense); }