public async Task <ActionResult> MakeNewUserExpensesList(NewExpenseRequest newExpenseRequest) { ApplicationUser user = await _userManager.FindByNameAsync(User.FindFirst(ClaimTypes.NameIdentifier).Value); List <Expenses> madeExpenses = new List <Expenses>(); newExpenseRequest.ExpensesListedIds.ForEach(pid => { var expenseWithId = _context.Expenses.Find(pid); if (expenseWithId != null) { madeExpenses.Add(expenseWithId); } }); if (madeExpenses.Count == 0) { return(BadRequest()); } var userExpensesList = new UserExpensesList { ApplicationUser = user, OrderDateTime = newExpenseRequest.ExpenseListDateTime.GetValueOrDefault(), Expenses = madeExpenses }; _context.UserExpensesLists.Add(userExpensesList); await _context.SaveChangesAsync(); return(Ok()); }
public async Task <ActionResult> UpdateUserExpensesList(UpdateUserExpensesList updateUserExpensesList) { var user = await _userManager.FindByNameAsync(User.FindFirst(ClaimTypes.NameIdentifier).Value); UserExpensesList userExpensesList = _context.UserExpensesLists.Where(l => l.Id == updateUserExpensesList.Id && l.ApplicationUser.Id == user.Id).Include(l => l.Expenses).FirstOrDefault(); if (userExpensesList == null) { return(BadRequest("There is no userExpensesList with this ID.")); } updateUserExpensesList.ExpensesIds.ForEach(mid => { var expense = _context.Expenses.Find(mid); if (expense != null && !userExpensesList.Expenses.Contains(expense)) { userExpensesList.Expenses.ToList().Add(expense); } }); _context.Entry(userExpensesList).State = EntityState.Modified; await _context.SaveChangesAsync(); return(Ok()); }