public async Task CadastrarEnderecos(List <EnderecoRequest> enderecos, Guid contatoId)
        {
            foreach (var request in enderecos)
            {
                request.Validate();


                if (contatoId == Guid.Empty)
                {
                    throw new Exception("Id do contato não fornecidado para o cadastro.");
                }

                if (string.IsNullOrEmpty(request.Cep))
                {
                    throw new Exception("CEP não fornecido para cadastro de endereço.");
                }

                var endereco = request.ConvertyToEntity();
                endereco.ContatoId = contatoId;

                await _enderecoRepository.CadastrarEndereco(endereco);

                if (endereco.EnderecoId == Guid.Empty)
                {
                    throw new Exception($"Erro ao cadastrar endereço de CEP {endereco.Cep}");
                }
            }
        }
Пример #2
0
        public async Task <int> Cadastrar(string cep)
        {
            cep = SanitizarCep(cep);

            ValidarCep(cep);

            var endereco = await viaCepService.BuscarCep(cep);

            if (endereco.Erro)
            {
                throw new Exception("Endereço não encontrado no WS!");
            }

            endereco.Cep = cep;

            return(await enderecoRepository.CadastrarEndereco(endereco));
        }
Пример #3
0
        /// <summary>
        /// Cadastra um endereço
        /// </summary>
        /// <param name="pEndereco">Endereço a ser cadastrado</param>
        public void CadastrarEndereco(Entidades.Nutricionista.Endereco pEndereco)
        {
            if (pEndereco == null)
            {
                throw new ArgumentException("O endereço é obrigatório");
            }

            if (string.IsNullOrEmpty(pEndereco.CEP))
            {
                throw new ArgumentException("O CEP não pode ser nulo.");
            }

            Address endereco = new Correios.NET.Services().GetAddresses(pEndereco.CEP.Replace("-", "")).FirstOrDefault();

            if (endereco == null)
            {
                throw new Exception("CEP não localizado.");
            }
            if (!endereco.Street.Equals(pEndereco.Logradouro))
            {
                throw new Exception("Logradouro não corresponde com a cidade informada pelo CEP");
            }
            if (!endereco.District.Equals(pEndereco.Bairro))
            {
                throw new Exception("Cidade não corresponde com a cidade informada pelo CEP");
            }
            if (!endereco.City.Equals(pEndereco.Cidade))
            {
                throw new Exception("Cidade não corresponde com a cidade informada pelo CEP");
            }
            if (!Enum.GetValues(typeof(UnidadeFederacaoEnum))
                .Cast <UnidadeFederacaoEnum>()
                .FirstOrDefault(c => c.GetDefaultValue().Equals(endereco.State)).GetDefaultValue().Equals(pEndereco.UF.GetDefaultValue()))
            {
                throw new Exception("UF não corresponde com a cidade informada pelo CEP");
            }

            _EnderecoRepository.CadastrarEndereco(pEndereco);
        }