public async Task <ActionResult <ReturnResponse> > PutCategory([FromRoute] int categoryId, [FromBody] CategoryToUpdate categoryToUpdate) { var dbTransaction = await _dataContext.Database.BeginTransactionAsync(); var result = await _categoryRepository.UpdateCategory(categoryId, categoryToUpdate); if (result.StatusCode == Utils.Success) { result.ObjectValue = _mapper.Map <CategoryResponse>((Category)result.ObjectValue); await dbTransaction.CommitAsync(); return(StatusCode(StatusCodes.Status200OK, result)); } else { await dbTransaction.RollbackAsync(); return(StatusCode(StatusCodes.Status400BadRequest, result)); } }
public async Task <ReturnResponse> UpdateCategory(int categoryId, CategoryToUpdate categoryToUpdate) { if (categoryToUpdate == null) { return(new ReturnResponse() { StatusCode = Utils.ObjectNull, StatusMessage = Utils.StatusMessageObjectNull }); } if (categoryId != categoryToUpdate.CategoryId) { return(new ReturnResponse() { StatusCode = Utils.BadRequest, StatusMessage = Utils.StatusMessageBadRequest }); } var categoryDetails = await _dataContext.Category.Where(a => a.CategoryId == categoryId).FirstOrDefaultAsync(); if (categoryDetails == null) { return(new ReturnResponse() { StatusCode = Utils.NotFound, StatusMessage = Utils.StatusMessageNotFound }); } var categoryToStore = _mapper.Map(categoryToUpdate, categoryDetails); var updateResult = _globalRepository.Update(categoryToStore); if (!updateResult) { return(new ReturnResponse() { StatusCode = Utils.NotSucceeded, StatusMessage = Utils.StatusMessageNotSucceeded }); } var saveResult = await _globalRepository.SaveAll(); if (!saveResult.HasValue) { return(new ReturnResponse() { StatusCode = Utils.SaveError, StatusMessage = Utils.StatusMessageSaveError }); } if (!saveResult.Value) { return(new ReturnResponse() { StatusCode = Utils.SaveNoRowAffected, StatusMessage = Utils.StatusMessageSaveNoRowAffected }); } return(new ReturnResponse() { StatusCode = Utils.Success, StatusMessage = Utils.StatusMessageSuccess, ObjectValue = categoryToStore }); }