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}"); } } }
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)); }
/// <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); }