コード例 #1
0
        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());
        }
コード例 #2
0
        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());
        }