public IHttpActionResult Update(int id, [FromBody] ExpenditureParam param) { try { if (ModelState.IsValid) { int userId = 1; // UserHelper.GetCurrentUserId(); DateTime getDate = DateHelper.GetDateTime(); param.UpdatedDate = getDate; param.UpdatedBy = userId; int result = _expenditureService.Update(id, param); return(Ok(result)); } else { string errorResult = string.Join(" ", ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage)); return(Content(HttpStatusCode.BadRequest, errorResult)); } } catch (Exception ex) { if (ex.InnerException == null) { return(Content(HttpStatusCode.InternalServerError, ex.Message)); } else { return(Content(HttpStatusCode.InternalServerError, ex.InnerException.Message)); } } }
public int Update(int id, ExpenditureParam param) { var model = _expenditureRepository.Get(id); Validate.NotNull(model, "Expenditure name is not found."); var budget = _budgetRepository.Get(param.BudgetId); Validate.NotNull(budget, "Budget name is not found."); var modelDetail = _expenditureDetailRepository.GetByExpenditureIdExpenditureDetailId(id, param.ExpenditureDetailId); //isExist(id, param.ExpenditureDate); using (_unitOfWork) { var currentDate = _expenditureRepository.GetByExpenditureDate(param.ExpenditureDate); if (currentDate == null) { Expenditure modelNew = new Expenditure(param.ExpenditureDate, param.Price, param.CreatedBy, param.CreatedDate); _expenditureRepository.Insert(modelNew); model = modelNew; } if (modelDetail != null) { modelDetail.Update(param.ExpenditureName, param.ExpenditureDefinition, param.Price, model, budget, param.UpdatedBy, param.UpdatedDate); _expenditureDetailRepository.Update(modelDetail); //change total var dataHeader = _expenditureRepository.Get(modelDetail.ExpenditureId); var totalPerDay = CalculateTotalPerDay(modelDetail.ExpenditureId); var grandTotal = dataHeader.Total + totalPerDay; dataHeader.AddTotal(grandTotal); } else { Validate.NotNull(modelDetail, "Expenditure Detail's id {1} with expenditure's id {0} is not found. ", model.Id, modelDetail.Id); } _unitOfWork.Commit(); } return(model.Id); }
public int Add(ExpenditureParam param) { int id = 0; Validate.NotNull(param.ExpenditureName, "Expenditure name is required."); var budget = _budgetRepository.Get(param.BudgetId); Validate.NotNull(budget, "Budget name is not found."); Expenditure modelHeader = new Expenditure(); using (_unitOfWork) { var currentData = _expenditureRepository.GetByExpenditureDate(param.ExpenditureDate); if (currentData == null) { Expenditure model = new Expenditure(param.ExpenditureDate, param.Price, param.CreatedBy, param.CreatedDate); _expenditureRepository.Insert(model); id = model.Id; modelHeader = model; //insert detail ExpenditureDetail modelDetail = new ExpenditureDetail(param.ExpenditureName, param.ExpenditureDefinition, param.Price, model, budget, param.CreatedBy, param.CreatedDate); _expenditureDetailRepository.Insert(modelDetail); } else { //insert detail ExpenditureDetail modelDetail = new ExpenditureDetail(param.ExpenditureName, param.ExpenditureDefinition, param.Price, modelHeader, budget, param.CreatedBy, param.CreatedDate); _expenditureDetailRepository.Insert(modelDetail); //add total var dataHeader = _expenditureRepository.Get(param.ExpenditureId); var totalPerDay = CalculateTotalPerDay(param.ExpenditureId); var grandTotal = dataHeader.Total + totalPerDay; dataHeader.AddTotal(grandTotal); } _unitOfWork.Commit(); } return(id); }