public async Task <Expense> CreateExpense(UserInExpense userInExpense, string userId) { Expense exp = new Expense(); exp.CreaterId = userInExpense.CreaterId; exp.Cost = userInExpense.Cost; exp.Date = userInExpense.Date; exp.Description = userInExpense.Description; exp.Split = userInExpense.Split; exp.PaidbyId = userInExpense.PaidbyId; exp.GrpId = userInExpense.GrpId; var grp = context.Group.Find(userInExpense.GrpId); Activity activity = new Activity(); activity.UserId = userId; activity.Description = "Created Expense in group :" + grp.GroupName; await context.Expense.AddAsync(exp); await context.Activity.AddAsync(activity); return(exp); }
public UserInExpense GetExpenseID(int id) { var userExpense = context.UserExpenses.Where(x => x.ExpId == id). Include(x => x.User). Include(x => x.Expense). ThenInclude(x => x.Group). ThenInclude(x => x.Category). ToList(); UserInExpense userInExpense = new UserInExpense(); userInExpense.Cost = userExpense[0].Expense.Cost; userInExpense.Description = userExpense[0].Expense.Description; userInExpense.Date = userExpense[0].Expense.Date; userInExpense.CreaterId = userExpense[0].Expense.CreaterId; userInExpense.GrpId = userExpense[0].Expense.Group.Id; userInExpense.PaidbyId = userExpense[0].Expense.PaidbyId; userInExpense.Split = userExpense[0].Expense.Split; userInExpense.Id = userExpense[0].Expense.Id; userInExpense.GroupUsersExpenses = new List <GroupUsersExpensesAC>(); foreach (var i in userExpense) { GroupUsersExpensesAC groupUsersExpensesAC = new GroupUsersExpensesAC(); groupUsersExpensesAC.UserId = i.User.Id; groupUsersExpensesAC.Amount = i.SplitAmount; userInExpense.GroupUsersExpenses.Add(groupUsersExpensesAC); } return(userInExpense); }
public async Task EditExpense(int id, UserInExpense expense) { Expense userInExpense = context.Expense.FirstOrDefault(x => x.Id == id); List <UserExpense> Uexp = context.UserExpenses.Where(x => x.ExpId == userInExpense.Id).ToList(); context.UserExpenses.RemoveRange(Uexp); userInExpense.Cost = expense.Cost; userInExpense.Description = expense.Description; userInExpense.Date = expense.Date; userInExpense.CreaterId = expense.CreaterId; userInExpense.GrpId = expense.GrpId; userInExpense.PaidbyId = expense.PaidbyId; userInExpense.Split = expense.Split; context.Expense.Update(userInExpense); await AddUser(expense, id); }
public async Task <IActionResult> EditExpense([FromRoute] int id, [FromBody] UserInExpense expense) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } unitofwork.ExpenseRepository.EditExpense(id, expense); try { await unitofwork.Save(); } catch (DbUpdateConcurrencyException) { } return(NoContent()); }
public async Task <UserInExpense> AddUser(UserInExpense userInExpense, int expId) { //int expId = GetExpenseId(userInExpense.Date); List <UserExpense> list = new List <UserExpense>(); foreach (var i in userInExpense.GroupUsersExpenses) { UserExpense userExpense = new UserExpense(); userExpense.ExpId = expId; userExpense.UsersId = i.UserId; userExpense.SplitAmount = i.Amount; list.Add(userExpense); } await context.UserExpenses.AddRangeAsync(list); return(userInExpense); }
public async Task <IActionResult> CreateExpense([FromBody] UserInExpense userInExpense) { if (ModelState.IsValid) { var username = User.Identity.Name; ApplicationUser user = await userManager.FindByNameAsync(username); var exp = await unitofwork.ExpenseRepository.CreateExpense(userInExpense, user.Id); await unitofwork.Save(); await unitofwork.ExpenseRepository.AddUser(userInExpense, exp.Id); await unitofwork.Save(); } return(Ok(userInExpense)); }