public async Task <IActionResult> PostUnplannedExpense(UnplannedExpenseForCreateDto unplannedExpense) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var categoryFromRepo = _categoryRepository.GetCategoryByName(unplannedExpense.CategoryName); if (categoryFromRepo == null) { return(BadRequest()); } var expenseToCreate = Mapper.Map <UnplannedExpense>(unplannedExpense); expenseToCreate.BudgetCategory = categoryFromRepo; await _unplannedExpenseRepository.Create(expenseToCreate); return(CreatedAtAction("GetUnplannedExpense", new { id = unplannedExpense.Id }, unplannedExpense)); }
public async Task <IActionResult> PutUnplannedExpense(Guid id, UnplannedExpenseForCreateDto unplannedExpense) { if (id != unplannedExpense.Id) { return(BadRequest()); } if (!await _unplannedExpenseRepository.EntryExists(id)) { return(NotFound()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var expenseFromRepo = await _unplannedExpenseRepository.GetById(id, true); var categoryFromRepo = _categoryRepository.GetCategoryByName(unplannedExpense.CategoryName); if (categoryFromRepo == null) { return(BadRequest()); } var expenseToUpdate = Mapper.Map(unplannedExpense, expenseFromRepo); expenseToUpdate.BudgetCategory = categoryFromRepo; await _unplannedExpenseRepository.Create(expenseToUpdate); await _paymentService.AddUnplannedExpensePaymentAsync(expenseToUpdate); return(NoContent()); }