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")); }