Example #1
0
        public async Task <IActionResult> Create(ExpenseCreateViewModel vm)
        {
            if (!TryValidateModel(vm))
            {
                return(View(vm));
            }

            string userId = User.FindFirstValue(ClaimTypes.NameIdentifier);

            var expense = new Expense
            {
                Description = vm.Description,
                Date        = vm.Date,
                Amount      = vm.Amount,
                CategoryId  = vm.SelectedCategory,
                ExpenseTags = vm.SelectedTags.Select(id => new ExpenseTag {
                    TagId = id
                }).ToList(),
                ExpenseAppUserId = userId
            };

            if (vm.File != null)
            {
                expense.PhotoPath = _photoService.AddPhoto(vm.File);
            }

            await _expenseDbContext.AddAsync(expense);

            await _expenseDbContext.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }