public ProdutoDto Salvar(ProdutoDto dto) { if (dto == null) { dto = new ProdutoDto(); dto.AddError("Não foi informado dados suficientes para salvar o produto."); return(dto); } var validate = _produtoDtoValidator.Validate(dto); if (!validate.IsValid) { dto.AddErrors(validate.Errors.Select(z => z.ErrorMessage)); return(dto); } var produto = _produtoBuilder .ComId(dto.Id) .ComNome(dto.Nome) .ComPreco(dto.Preco) .Build(); if (!produto.IsValid) { dto.AddErrors(produto.Errors); return(dto); } _chronosContext.Produtos.Add(produto); _chronosContext.SaveChanges(); return(_mapper.Map <Produto, ProdutoDto>(produto)); }
public ProdutoDto Editar(ProdutoDto dto) { if (dto == null) { dto = new ProdutoDto(); dto.AddError("Não foi informado dados suficientes para editar o produto."); return(dto); } var validate = _produtoDtoValidator.Validate(dto); if (!validate.IsValid) { dto.AddErrors(validate.Errors.Select(z => z.ErrorMessage)); return(dto); } var produto = GetById(dto.Id); if (produto == null) { dto.AddError("Não foi possível localizar o produto informado."); return(dto); } produto.SetNome(dto.Nome); produto.SetPreco(dto.Preco); if (!produto.IsValid) { dto.AddErrors(produto.Errors); return(dto); } _chronosContext.Entry(produto).State = EntityState.Modified; _chronosContext.SaveChanges(); return(_mapper.Map <Produto, ProdutoDto>(produto)); }