Пример #1
0
        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));
        }