Exemplo n.º 1
0
        public ClienteDto Editar(ClienteDto dto)
        {
            if (dto == null)
            {
                dto = new ClienteDto();
                dto.AddError("Não foi informado dados suficientes para editar o cliente.");
                return(dto);
            }

            var validate = _clienteDtoValidator.Validate(dto);

            if (!validate.IsValid)
            {
                dto.AddErrors(validate.Errors.Select(z => z.ErrorMessage));
                return(dto);
            }

            var cliente = GetById(dto.Id);

            if (cliente == null)
            {
                dto.AddError("Não foi possível localizar o cliente informado.");
                return(dto);
            }

            cliente.SetNome(dto.Nome);
            cliente.SetCpf(dto.Cpf);
            cliente.SetEndereco(dto.Endereco);
            cliente.SetNumeroDoEndereco(dto.NumeroDoEndereco);
            cliente.SetBairro(dto.Bairro);
            cliente.SetCidade(dto.Cidade);
            cliente.SetUf(dto.Uf);

            if (!cliente.IsValid)
            {
                dto.AddErrors(cliente.Errors);
                return(dto);
            }

            _chronosContext.Entry(cliente).State = EntityState.Modified;
            _chronosContext.SaveChanges();

            return(_mapper.Map <Cliente, ClienteDto>(cliente));
        }
Exemplo n.º 2
0
        public ClienteDto Salvar(ClienteDto dto)
        {
            if (dto == null)
            {
                dto = new ClienteDto();
                dto.AddError("Não foi informado dados suficientes para salvar o cliente.");
                return(dto);
            }

            var validate = _clienteDtoValidator.Validate(dto);

            if (!validate.IsValid)
            {
                dto.AddErrors(validate.Errors.Select(z => z.ErrorMessage));
                return(dto);
            }

            var cliente = _clienteBuilder
                          .ComId(dto.Id)
                          .ComNome(dto.Nome)
                          .ComCpf(dto.Cpf)
                          .ComEndereco(dto.Endereco)
                          .ComNumeroDoEndereco(dto.NumeroDoEndereco)
                          .ComBairro(dto.Bairro)
                          .ComCidade(dto.Cidade)
                          .ComUf(dto.Uf)
                          .Build();

            if (!cliente.IsValid)
            {
                dto.AddErrors(cliente.Errors);
                return(dto);
            }

            _chronosContext.Clientes.Add(cliente);
            _chronosContext.SaveChanges();

            return(_mapper.Map <Cliente, ClienteDto>(cliente));
        }