Ejemplo n.º 1
0
        private int ObterCliente(AccountSalesObject salesObject)
        {
            var client = new HttpClient();

            client.Timeout = TimeSpan.FromMinutes(120);
            var _microservicoUrls = RecuperarMicroServicosUrls();

            client.BaseAddress = new Uri(_microservicoUrls.UrlApiCliente);

            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));
            var content  = new StringContent(JsonConvert.SerializeObject(salesObject), Encoding.UTF8, "application/json");
            var response = client.PostAsync("api/cliente/TratarClienteSalesforce", content).Result;

            if (response.StatusCode != System.Net.HttpStatusCode.OK)
            {
                AdicionarLogGenerico("Erro ao persistir cliente: " + salesObject.CNPJ__c);
            }
            else
            {
                AdicionarLogGenerico("Persistencia do cliente: " + salesObject.Name + " concluida.");
                var responseString = response.Content.ReadAsStringAsync().Result;
                return(Int32.Parse(responseString));
            }
            return(0);
        }
Ejemplo n.º 2
0
        public Endereco TratarEnderecoSalesForce(AccountSalesObject salesObject, Endereco endereco)
        {
            var cidadeDb = _cidadeRepository.BuscarUnicoPorParametro(x => x.NmCidade.ToUpper() == salesObject.CNPJ_Cidade__c.ToUpper());

            if (cidadeDb == null)
            {
                cidadeDb = new Cidade
                {
                    NmCidade = salesObject.CNPJ_Estado__c,
                };
                endereco.Cidade = cidadeDb;
                var estadoDb = _estadoRepository.BuscarUnicoPorParametro(x => x.SgEstado.ToUpper() == salesObject.CNPJ_Estado__c.ToUpper() || x.NmEstado.ToUpper() == salesObject.CNPJ_Estado__c.ToUpper());
                if (estadoDb == null)
                {
                    estadoDb = new Estado
                    {
                        NmEstado = salesObject.CNPJ_Estado__c,
                        SgEstado = salesObject.CNPJ_Estado__c.Substring(0, 1),
                    };
                    endereco.Cidade.Estado = estadoDb;
                    var paisDb = _paisRepository.BuscarUnicoPorParametro(x => x.SgPais.ToUpper() == salesObject.PaisConta__c.ToUpper() || x.NmPais.ToUpper() == salesObject.PaisConta__c.ToUpper());
                    if (paisDb == null)
                    {
                        paisDb = new Pais
                        {
                            NmPais = salesObject.PaisConta__c,
                            SgPais = salesObject.PaisConta__c.Substring(0, 1),
                        };
                        endereco.Cidade.Estado.Pais = paisDb;
                    }
                    else
                    {
                        endereco.Cidade.Estado.IdPais = paisDb.Id;
                    }
                }
                else
                {
                    endereco.Cidade.IdEstado = estadoDb.Id;
                }
            }
            else
            {
                endereco.IdCidade = cidadeDb.Id;
            }
            return(endereco);
        }
Ejemplo n.º 3
0
        private int ObterClientePorIdSalesforce(AccountSalesObject salesObject)
        {
            var client = new HttpClient();

            client.Timeout = TimeSpan.FromMinutes(120);
            var _microservicoUrls = RecuperarMicroServicosUrls();

            client.BaseAddress = new Uri(_microservicoUrls.UrlApiCliente);


            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));
            var content        = new StringContent(JsonConvert.SerializeObject(salesObject), Encoding.UTF8, "application/json");
            var response       = client.GetAsync("api/cliente/obterClientePorIdSalesforce/" + salesObject.Id).Result;
            var responseString = response.Content.ReadAsStringAsync().Result;

            return(Int32.Parse(responseString));
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> ObterClienteMigrado(int idCliente)
        {
            var clienteExistente = _clienteService.VerificarExistenciaCliente(idCliente);

            if (clienteExistente)
            {
                return(Ok(idCliente));
            }

            var       pendente              = false;
            var       salesObject           = new AccountSalesObject();
            var       clienteEacessoService = new ClienteEacessoService(_connectionStrings.Value.EacessoConnection);
            var       clienteEacesso        = clienteEacessoService.ObterClienteEacessoPorId(idCliente);
            ClienteET clienteStfCorp        = null;

            if (clienteEacesso != null)
            {
                salesObject = Mapper.Map(clienteEacesso, salesObject);
            }
            if (salesObject.CNPJ__c != null && salesObject.CNPJ__c.Trim() != "")
            {
                salesObject.CNPJ__c = _clienteService.ApenasNumeros(salesObject.CNPJ__c);
            }
            else
            {
                pendente = true;
                await _logGenericoRepository.AddLog(new LogGenerico { NmTipoLog = Tipo.INTEGRACAO.GetDescription(), NmOrigem = Origem.SALESFORCE.GetDescription(), DtHoraLogGenerico = DateTime.Now, DescLogGenerico = "cliente: " + salesObject.Name + " não possui cnpj", DescExcecao = "" });

                salesObject.CNPJ__c = _clienteService.ApenasNumeros("NWM9709244W4");
            }

            clienteStfCorp = Mapper.Map <ClienteET>(salesObject);
            if (clienteStfCorp.Id == 0)
            {
                clienteStfCorp.Id = _clienteService.VerificarIdCliente();
            }

            var endereco = Mapper.Map <Endereco>(salesObject);

            if (clienteStfCorp.NrTelefone != null)
            {
                clienteStfCorp.NrTelefone = clienteStfCorp.NrTelefone.Replace(" ", "");
                if (clienteStfCorp.NrTelefone.Contains('/'))
                {
                    var numeros = clienteStfCorp.NrTelefone.Split("/");
                    clienteStfCorp.NrTelefone  = numeros[0];
                    clienteStfCorp.NrTelefone2 = numeros[0].Substring(0, 2) + numeros[1];
                }
            }
            if (clienteStfCorp.NrTelefone2 != null)
            {
                clienteStfCorp.NrTelefone = clienteStfCorp.NrTelefone2.Replace(" ", "");
            }

            if (clienteStfCorp.NmRazaoSocial == null || !clienteStfCorp.NmRazaoSocial.Any())
            {
                clienteStfCorp.NmRazaoSocial = "";
                pendente = true;
                await _logGenericoRepository.AddLog(new LogGenerico { NmTipoLog = Tipo.INTEGRACAO.GetDescription(), NmOrigem = Origem.SALESFORCE.GetDescription(), DtHoraLogGenerico = DateTime.Now, DescLogGenerico = "cliente: " + salesObject.Name + " não possui uma razão social", DescExcecao = "" });
            }
            if (clienteStfCorp.NmFantasia == null || !clienteStfCorp.NmFantasia.Any())
            {
                clienteStfCorp.NmFantasia = "";
                pendente = true;
                await _logGenericoRepository.AddLog(new LogGenerico { NmTipoLog = Tipo.INTEGRACAO.GetDescription(), NmOrigem = Origem.SALESFORCE.GetDescription(), DtHoraLogGenerico = DateTime.Now, DescLogGenerico = "cliente: " + salesObject.Name + " não possui um nome fantasia", DescExcecao = "" });
            }
            endereco.IdCidade = _enderecoService.VerificarEndereco(salesObject.CNPJ_Cidade__c);

            clienteStfCorp.Enderecos.Add(endereco);
            if (endereco.IdCidade == null)
            {
                pendente = true;
                await _logGenericoRepository.AddLog(new LogGenerico { NmTipoLog = Tipo.INTEGRACAO.GetDescription(), NmOrigem = Origem.SALESFORCE.GetDescription(), DtHoraLogGenerico = DateTime.Now, DescLogGenerico = "cliente: " + salesObject.Name + " não possui uma cidade valida", DescExcecao = "" });
            }

            if (!_clienteService.ValidarCNPJ(clienteStfCorp.NrCnpj, "BRASIL").Result)
            {
                pendente = true;
                await _logGenericoRepository.AddLog(new LogGenerico { NmTipoLog = Tipo.INTEGRACAO.GetDescription(), NmOrigem = Origem.SALESFORCE.GetDescription(), DtHoraLogGenerico = DateTime.Now, DescLogGenerico = "cliente: " + salesObject.Name + " não possui um cnpj valido", DescExcecao = "" });
            }

            if (pendente)
            {
                clienteStfCorp.FlStatus = "P";
            }
            else
            {
                clienteStfCorp.FlStatus = "A";
            }
            salesObject.IdStfCorp = _clienteService.PersistirCliente(clienteStfCorp);
            return(Ok(salesObject.IdStfCorp));
        }