public async Task <ActionResult <Product> > PostProduct([FromBody] ProductCreatRequest product) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var validator = new ProductCreateRequestValidator(); if (!validator.IsValid(product)) { return(BadRequest(new { error = "Produto inválido!" })); } var prod = product.ConvertContractToProduct(); var modelValidator = new ProductCreateValidator(_context, prod); //atribui a variavel erros a lista de erros encontrados var errors = modelValidator.IsValid(); // verificando se existe algum erro na lista errors if (errors.Count() > 0) { return(BadRequest(new { error = errors })); } if (!modelValidator.ExistingProduct()) { return(BadRequest(new { error = "ERRO! Produto existente." })); } _context.Product.Add(prod); await _context.SaveChangesAsync(); return(CreatedAtAction("GetProduct", new { id = prod.Id }, prod)); }
public IActionResult CreateProduct(ProductTypeCreateModel productTypeCreate) { var validator = new ProductCreateValidator(); if (validator.Validate(productTypeCreate).IsValid) { var productType = this._mapper.Map <ProductTypeCreateModel, ProductType>(productTypeCreate); if (this._uow.ProductTypeRepository.Save(productType)) { return(RedirectToAction("CreatePost", "Post")); } else { return(RedirectToAction("CreateProduct")); } } return(RedirectToAction("CreateProduct")); }