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); }
public void CreateClienteNosisAsync(MongoResponseNosis mongoResponseNosis) { IMongoDatabase database = client.GetDatabase("nosis"); IMongoCollection <MongoResponseNosis> collection = database.GetCollection <MongoResponseNosis>("clientes_nosis"); //FilterDefinition<MongoResponseNosis> filter = Builders<MongoResponseNosis>.Filter.Eq("Documento", mongoResponseNosis.Contenido.Pedido.Documento); //UpdateDefinition<MongoResponseNosis> update = Builders<MongoResponseNosis>.Update.Set("Contenido", mongoResponseNosis.Contenido); //UpdateResult ur = collection.UpdateOne(filter, update); //if (ur.UpsertedId==null) { collection.InsertOneAsync(mongoResponseNosis); //} }