public async Task <ActionResult <CategoryDTO> > CreateAsync(CategoryForCreate model) { if (!ModelState.IsValid) { var errors = ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage).ToList(); return(BadRequest(new ErrorResponse(HttpStatusCode.BadRequest, "Validation error", errors))); } var result = await _categoryService.CreateCategoryAsync(model); return(result.Succeed ? Ok(result.Value) : BadRequest(new ErrorResponse(HttpStatusCode.BadRequest, "Create fail", result.Errors))); }
public async Task <ProcessResult <CategoryDTO> > CreateCategoryAsync(CategoryForCreate model) { async Task <CategoryDTO> acction() { var entity = await _repoWrapper.Category.FindByName(model.Name); if (entity != null) { throw new InvalidOperationException($"Name is exist, category Name: {entity.Name}"); } var cartg = _mapper.Map <Category>(model); cartg.Status = true; cartg.CreateBy = CurrentUser.UserName; cartg.CreateDate = DateTime.UtcNow; _repoWrapper.Category.CreateCategory(cartg); return(await _repoWrapper.SaveAsync() <= 0 ? throw new Exception("Save fail") : _mapper.Map <CategoryDTO>(cartg)); } return(await Process.RunAsync(acction)); }