Exemple #1
0
 public void sincronizacion(IRepositoryWrapper _repoWrapper)
 {
     using (IEnumerator <Clientes> empEnumerator = _repoWrapper.Clientes.FindByCondition(x => !x.ValidadoNosis).GetEnumerator())
     {
         while (empEnumerator.MoveNext())
         {
             // now empEnumerator.Current is the Employee instance without casting
             Clientes      cli  = empEnumerator.Current;
             ResponseNosis resp = callNosis(cli.DNI.ToString(), false);
             if (resp != null && resp.Contenido != null && resp.Contenido.Datos != null)
             {
                 foreach (Variables variable in resp.Contenido.Datos.Variables)
                 {
                     if (variable.Nombre.Contains("Nombre"))
                     {
                         cli.Nombre = variable.Valor;
                     }
                     if (variable.Nombre.Contains("Apellido"))
                     {
                         cli.Apellido      = variable.Valor;
                         cli.ValidadoNosis = true;
                         break;
                     }
                 }
                 _repoWrapper.Clientes.Update(cli);
             }
             else
             {
                 _logger.LogInformation("Cliente no sincronizado, falló la comunicación con NOSIS: {0} ", cli);
             }
         }
         _repoWrapper.Save();
         _logger.LogInformation("Cliente Sincronizado con éxito!");
     }
 }
        public IActionResult GetNosisResponse(string dni)
        {
            _logger.LogInformation("Solicitando datos de nosis");
            ResponseNosis responseNosis = _clienteNosis.callNosis(dni);

            return(StatusCode(Int16.Parse(responseNosis.Contenido.Resultado.Estado), responseNosis));
        }
Exemple #3
0
        public ResponseNosis callNosis(string dni, bool persist = true)
        {
            ResponseNosis responseNosis = null;

            try {
                string URL           = ConfigurationManager.AppSettings["URL"];
                string urlParameters = "?usuario=" + ConfigurationManager.AppSettings["usuario"] + "&token=" + ConfigurationManager.AppSettings["token"] + "&documento=" + dni + "&VR=" + ConfigurationManager.AppSettings["VR"];

                HttpClient client = new HttpClient();
                client.BaseAddress = new Uri(URL);

                client.DefaultRequestHeaders.Accept.Add(
                    new MediaTypeWithQualityHeaderValue("application/json"));

                // List data response.
                _logger.LogInformation("Request to: {0}{1}", URL, urlParameters);
                HttpResponseMessage response = client.GetAsync(urlParameters).Result;

                if (response.IsSuccessStatusCode)
                {
                    string xml = response.Content.ReadAsStringAsync().Result;
                    responseNosis = new ResponseNosis();
                    responseNosis = JsonConvert.DeserializeObject <ResponseNosis>(xml);
                    _logger.LogInformation("Response Success: {0}", responseNosis);
                    //Add Json to DB
                    if (persist)
                    {
                        try
                        {
                            MongoResponseNosis mongoResponseNosis = new MongoResponseNosis();
                            mongoResponseNosis.Contenido = responseNosis.Contenido;
                            _mongoResponseNosisRepository.CreateClienteNosisAsync(mongoResponseNosis);
                        }
                        catch (Exception e)
                        {
                            _logger.LogError("Error al tratar de guardar el registro en la BD mongo: {0}", e.Message);
                        }
                    }
                }
                else
                {
                    responseNosis = new ResponseNosis();
                    responseNosis.Contenido.Resultado.Estado  = response.StatusCode.ToString();
                    responseNosis.Contenido.Resultado.Novedad = "Existe un problema de comunicacion con Nosis, por favor descarte problemas de red o contacte con el proveedor";
                }
            }
            catch (UserDidntExistException e) {
                //Marcar BD como que no existe el usuario
                _logger.LogError("Error: {0}", e);
            }

            return(responseNosis);
        }