Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }