public async Task <ActionResult <BudgetDto> > CreateBudgetAsync([FromBody] CreateBudgetDto budgetForCreateDto) { var newBudget = mapper.Map <Budget>(budgetForCreateDto); newBudget.TaxLiability = new TaxLiability(); if (!IsUserAuthorizedForResource(newBudget)) { return(Unauthorized("You can only create budgets for yourself.")); } budgetRepository.Add(newBudget); var saveResult = await budgetRepository.SaveAllAsync(); if (!saveResult) { return(BadRequest("Unable to create budget.")); } var budgetForReturn = mapper.Map <BudgetDto>(newBudget); return(CreatedAtRoute("GetBudgetAsync", new { id = budgetForReturn.Id }, budgetForReturn)); }
public async Task <ActionResult <Budget> > Post(Budget entity) { await _repository.Add(entity); return(CreatedAtAction("Get", new { id = entity.Id }, entity)); }
public ActionResult Budget(CreateBudgetModel form) { try { // 1. Validate account. Account account; using (var accRepo = new AccountRepository()) { account = accRepo.GetById(form.AccountID); // if not then, Add to database if (account == null) { account = new Account() { AccountID = form.AccountID, AccountName = form.AccountName, Status = RecordStatus.Active }; accRepo.Add(account); accRepo.Save(); } } // 2. Check Budget. Budget budget; using (var budgetRepo = new BudgetRepository()) { // 2.1 check budget is already in database budget = budgetRepo.Get().Where( b => b.Year == form.Year && b.AccountID == form.AccountID && b.CostCenterID == form.CostCenterID && b.Status == BudgetStatus.Active ).FirstOrDefault(); if (budget != null) { throw new Exception("งบประมาณนี้มีอยู่แล้วในระบบ"); } else // Add new budget { budget = new Budget() { BudgetID = Guid.NewGuid(), AccountID = form.AccountID, CostCenterID = form.CostCenterID, Sequence = 0, Year = form.Year, BudgetAmount = form.Amount, WithdrawAmount = 0, RemainAmount = 0, Status = BudgetStatus.Active }; budgetRepo.Add(budget); budgetRepo.Save(); } } // 3. Set return value returnobj.SetSuccess(budget); } catch (Exception ex) { returnobj.SetError(ex.Message); } return(Content(returnobj.ToJson(), "application/json")); }