private void PostItris(ItrisPlanillaEntity model) { log.Info("- Ingreso -"); string usuarioItris = this.ObtenerUsuarioItris(); ItrisAuthenticateEntity authenticateEntity = new ItrisAuthenticateEntity(ITRIS_SERVER, ITRIS_PUERTO, ITRIS_CLASE, usuarioItris, ITRIS_PASS, ITRIS_DATABASE); try { //Inserts itris ServiceRelevamientoBusiness serviceRelevamientoBusiness = new ServiceRelevamientoBusiness(authenticateEntity); log.Info("Ejecuta serviceRelevamientoBusiness.Post(model): " + JsonConvert.SerializeObject(model)); serviceRelevamientoBusiness.Post(model); log.Info("Respuesta serviceRelevamientoBusiness.Post(model): " + JsonConvert.SerializeObject(model)); } catch (Exception ex) { log.Error("Mensaje de Error: " + ex.Message); if (ex.InnerException != null) { log.Error("Inner exception: " + ex.InnerException.Message); } throw ex; } log.Info("- Salio -"); }
public Finalizado(TbRequest tbRequests) { InitializeComponent(); ItrisPlanillaEntity respuesta2 = JsonConvert.DeserializeObject <ItrisPlanillaEntity>(tbRequests.req_json); LblDistribuidor.Text = "Distribuidor:" + respuesta2.relevamiento.FK_ERP_EMPRESAS; LblLocal.Text = "Fecha" + respuesta2.relevamiento.FECHA; if (!tbRequests.req_estado) { LblEmail.Text = "pendiente"; } else { LblEmail.Text = "enviado"; } }
private async void btnFinalizarClicked(object sender, EventArgs e) { App.releva.FK_ERP_EMPRESAS = App.distribuidorseleccionado.ID.ToString(); App.releva.FK_ERP_ASESORES = App.distribuidorseleccionado.FK_ERP_ASESORES; App.releva.FECHA = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"); App.releva.CODIGO = "ASD123ADSASD"; ItrisPlanillaEntity relevamientos = new ItrisPlanillaEntity(); relevamientos.relevamiento = App.releva; relevamientos.comercios = App.comercios; //Obtengo el imei del equipo para el request string phoneImei = Task.Run(async() => await this.GetImei()).GetAwaiter().GetResult().ToString(); //Seteo el IMEI y el maximo identificador de la tabla tbRequest local SQLite relevamientos.codigoRequest = string.Format("{0}-{1}", phoneImei, GetMaxIdTbRequest()); var post = relevamientos; string jsonRelevamiento = JsonConvert.SerializeObject(relevamientos); //String content que serealiza la clase a string StringContent stringContent = new StringContent(jsonRelevamiento, Encoding.UTF8, "application/json"); TbRequest tbRequests = new TbRequest() { req_codigo = phoneImei, req_json = jsonRelevamiento, req_estado = false }; //INSERT using (SQLite.SQLiteConnection conexion = new SQLiteConnection(App.RutaBD)) { int result = conexion.Insert(tbRequests); EditorResponseDebug.Text = "INSERT: " + result.ToString(); } if (hasConnectivity) { await SendPostRelevamiento(jsonRelevamiento, tbRequests); } }
private async Task SendPostRelevamiento(string jsonRelevamiento, TbRequest tbRequestToUpdate) { StringContent stringContent = new StringContent(jsonRelevamiento, Encoding.UTF8, "application/json"); HttpClient httpClient = new HttpClient(); httpClient.Timeout = TimeSpan.FromMinutes(30); //URL para hacer el post string urlPost = "http://iserver.itris.com.ar:7101/DACServicesTest/api/Relevamiento"; //variable que se utiliza para tomar la respuesta HttpResponseMessage httpResponseMessage; //Se ejecuta el post y se lo asigna a la variable que contiene la respuesta httpResponseMessage = await httpClient.PostAsync(new Uri(urlPost), stringContent); //Obtengo el mensaje de respuesta del server var stringResponse = httpResponseMessage.Content.ReadAsStringAsync().Result; //Serializo la repsuesta que viene en formato json al tipo de clase //ACA TENES QUE TENER LA RESPUESTA DEL SERVICIO DACServiceTest ItrisPlanillaEntity respuesta = JsonConvert.DeserializeObject <ItrisPlanillaEntity>(stringResponse); //Dato a guardar en tabla tbRequest string requestBody = JsonConvert.SerializeObject(respuesta); using (SQLite.SQLiteConnection conexion = new SQLiteConnection(App.RutaBD)) { tbRequestToUpdate.req_json = requestBody; tbRequestToUpdate.req_estado = true; int result = conexion.Update(tbRequestToUpdate); EditorResponseDebug.Text = result.ToString(); } }
public void Post(ItrisPlanillaEntity planilla) { string stringSession = string.Empty; try { stringSession = _itrisRelevamientoBusiness.SessionString; #region Post Planilla Itris var resultItrisRelevamientoResponse = Task.Run(async() => await _itrisRelevamientoBusiness.Post(planilla.Relevamiento, stringSession)).GetAwaiter().GetResult(); planilla.Relevamiento = resultItrisRelevamientoResponse.data.FirstOrDefault(); #endregion #region Post Lista Comercios foreach (var comercioArticulos in planilla.Comercios) { #region Post Comercio Itris //Asigno los articulos al comercio maestro-detalle itris comercioArticulos.RelevamientoArticulo.ForEach(x => x.FK_RELEVAMIENTO = planilla.Relevamiento.ID); comercioArticulos.Comercio._DET_REL_ART = comercioArticulos.RelevamientoArticulo; //Asigno los articulos al comercio maestro-detalle itris var resultItrisComercioResponse = Task.Run(async() => await _itrisComercioBusiness.Post(comercioArticulos.Comercio, stringSession)).GetAwaiter().GetResult(); comercioArticulos.Comercio = resultItrisComercioResponse.data.FirstOrDefault(); #endregion #region Post RelevamientoArticulo - OK //if (resultItrisRelevamientoResponse.data.FirstOrDefault().ID != 0 && // resultItrisComercioResponse.data.FirstOrDefault().ID != 0) //{ // var resultItrisRelevamientoArticuloResponse = // Task.Run(async () => await _itrisRelevamientoArticuloBusiness.Post( // resultItrisRelevamientoResponse.data.FirstOrDefault().ID, // resultItrisComercioResponse.data.FirstOrDefault().ID, // comercioArticulos.RelevamientoArticulo, stringSession)).GetAwaiter().GetResult(); // comercioArticulos.RelevamientoArticulo = resultItrisRelevamientoArticuloResponse.data; //} #endregion } #endregion #region Post Tabla Envio E-mails if (resultItrisRelevamientoResponse.data.FirstOrDefault().ID != 0) { ItrisEstadoEmailRelevamientoEntity itrisEstadoEmailRelevamientoEntity = new ItrisEstadoEmailRelevamientoEntity() { FK_RELEVAMIENTO = resultItrisRelevamientoResponse.data.FirstOrDefault().ID, ENVIADO_POR_MAIL = false }; var resultEstadoEmailRelevamientoResponse = Task.Run(async() => await _itrisEstadoEmailRelevamientoBusiness.Post(itrisEstadoEmailRelevamientoEntity)).GetAwaiter().GetResult(); planilla.EstadoEmailRelevamiento = resultEstadoEmailRelevamientoResponse.data.FirstOrDefault(); } #endregion //PROCESO DE ENVIAR LOS DATOS A ITRIS } catch (Exception ex) { throw ex; } finally { string mensaje = _itrisRelevamientoBusiness.CloseSession(stringSession); } }
public RelevamientoModel() { ItrisPlanilla = new ItrisPlanillaEntity(); }
private async Task SendPostRelevamiento(string jsonRelevamiento, TbRequest tbRequestToUpdate) { try { //String content que serealiza la clase a string StringContent stringContent = new StringContent(jsonRelevamiento, Encoding.UTF8, "application/json"); HttpClient httpClient = new HttpClient(); httpClient.Timeout = TimeSpan.FromMinutes(30); //TEST //string urlPost = "http://iserver.itris.com.ar:7101/DACServicesTest/api/Relevamiento"; //PROD string urlPost = "http://iserver.itris.com.ar:7101/DACServices/api/Relevamiento"; //variable que se utiliza para tomar la respuesta HttpResponseMessage httpResponseMessage; //Se ejecuta el post y se lo asigna a la variable que contiene la respuesta httpResponseMessage = await httpClient.PostAsync(new Uri(urlPost), stringContent); if (httpResponseMessage.StatusCode == System.Net.HttpStatusCode.Created) { //Se comenta porque no es necesario informarle al usuario que se envio el relevamiento ok //Va a poder chequearlo desde el menu estados //await DisplayAlert("Aviso", "Se ha enviado el relevamiento", "Ok"); //Obtengo el mensaje de respuesta del server var stringResponse = httpResponseMessage.Content.ReadAsStringAsync().Result; //Serializo la repsuesta que viene en formato json al tipo de clase //ACA TENES QUE TENER LA RESPUESTA DEL SERVICIO ItrisPlanillaEntity respuesta = JsonConvert.DeserializeObject <ItrisPlanillaEntity>(stringResponse); //Dato a guardar en tabla tbRequest string requestBody = JsonConvert.SerializeObject(respuesta); var tbRequestDataService = new TbRequestDataService(); tbRequestToUpdate.req_json = requestBody; tbRequestToUpdate.req_estado = true; //Se updatea el estado del registro de la planilla enviada tbRequestDataService.Update(tbRequestToUpdate); //Se comenta codigo porque son mensajes debug //if (tbRequestDataService.Update(tbRequestToUpdate)) // await DisplayAlert("Aviso", "Se ha actualizado el relevamiento relevamiento", "Ok"); //else // await DisplayAlert("Aviso", "NO se ha podido actualizar el relevamiento relevamiento", "Ok"); } else { await DisplayAlert("Aviso", "NO se ha podido enviar el relevamiento", "Ok"); } } catch (Exception ex) { throw ex; } }
private async void btnFinalizarClicked(object sender, EventArgs e) { try { bool respuesta = await DisplayAlert("ATENCION", "¿Desea finalizar el Relevamiento de este Pueblo?", "Si", "No"); if (respuesta) { //Primero se envia a la pantalla principal para que se sigan ejecutando los threads y evitar mandar 2 relevamientos PopUntilDestination(typeof(Principal)); //Comento acceso al imei politicas android //string imeiTelefono = DependencyService.Get<IServiceImei>().GetImei(); ERP_ASESORES asesor = new ERP_ASESORES(); int maxRequestId = 1; using (SQLite.SQLiteConnection conexion = new SQLiteConnection(App.RutaBD)) { //TbRequest maxRequest = new TbRequest(); //Se obtiene asesor mediante el imei del equipo. Por politicas de privacidad se obtiene mediante descripcion asesor. //asesor = conexion.Table<ERP_ASESORES>().Where(a => a.c_IMEI == imeiTelefono).FirstOrDefault(); //Nuevo metodo de obtener asesore por descripcion (google play) //asesor = conexion.Table<ERP_ASESORES>().Where(a => a.c_IMEI == imeiTelefono).FirstOrDefault(); TbRequest maxRequest = conexion.Table <TbRequest>().OrderByDescending(r => r.ID).FirstOrDefault(); if (maxRequest != null) { maxRequestId = maxRequest.ID + 1; } } App.releva.FK_ERP_EMPRESAS = App.distribuidorseleccionado.ID.ToString(); //Asesor previo politica //App.releva.FK_ERP_ASESORES = asesor.ID; App.releva.FK_ERP_ASESORES = App.globalAsesor.ID; App.releva.FECHA = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"); //string codigoRequest = string.Format("{0}-{1}", App.globalAsesor.ID.ToString(), maxRequestId.ToString()); string codigoRequest = string.Format("{0}-{1}", App.globalAsesor.ID.ToString(), DateTime.Now.ToString("yyyyMMddHHmmss")); //Obtengo el imei del equipo para el request App.releva.CODIGO = "ASD123ADSASD"; ItrisPlanillaEntity relevamientos = new ItrisPlanillaEntity(); relevamientos.relevamiento = App.releva; relevamientos.comercios = App.comercios; relevamientos.codigoRequest = codigoRequest;// "123456789-9"; //<-- Usar este codigo para test (no va a itris) string jsonRelevamiento = JsonConvert.SerializeObject(relevamientos); var tbRequestDataService = new TbRequestDataService(); if (!tbRequestDataService.isInserted(relevamientos.codigoRequest)) { TbRequest tbRequests = new TbRequest() { req_codigo = relevamientos.codigoRequest, req_json = jsonRelevamiento, req_estado = false }; //Se updatea el estado del registro de la planilla enviada try { tbRequestDataService.Insert(tbRequests); App.comercios = new List <ItrisComercioArticulo>(); } catch (Exception ex) { throw ex; } //Se comenta codigo porque son mensajes debug //if (tbRequestDataService.Insert(tbRequests)) // await DisplayAlert("Aviso", "Se ha dado de alta un nuevo relevamiento", "Ok"); //else // await DisplayAlert("Aviso", "NO se ha podido dar de alta el relevamiento", "Ok"); if (CheckNetworkState.hasConnectivity) { await SendPostRelevamiento(jsonRelevamiento, tbRequests); } else { await DisplayAlert("Aviso", "Sin conexion a internet, no se podra enviar el relevamiento hasta que vuelva a tener conexion", "Ok"); } } else { await DisplayAlert("Aviso", "Ese relevamiento ya se encuentra dado de alta", "Ok"); } //Se comenta esta linea porque permitia enviar dos formularios, se agrego arriba (si pasa test borrar). //PopUntilDestination(typeof(Principal)); } } catch (Exception ex) { throw ex; } }
public HttpResponseMessage Post([FromBody] ItrisPlanillaEntity model) { log.Info("- Ingreso -"); HttpResponseMessage response = new HttpResponseMessage(); try { ServiceRequestBusiness serviceRequestBusiness = new ServiceRequestBusiness(); tbRequest request = new tbRequest(); //Valido request en DACS Func <tbRequest, bool> predicado = p => p.req_codigo == model.CodigoRequest; request = ((List <tbRequest>)serviceRequestBusiness.Read(predicado)).FirstOrDefault(); if (request != null) { if (request.req_body_response != null) { model = JsonConvert.DeserializeObject <ItrisPlanillaEntity>(request.req_body_response); log.Info("Retorno el modelo almacenado en DB_DACS: " + JsonConvert.SerializeObject(model)); return(Request.CreateResponse(HttpStatusCode.Created, model)); } else { //Envio nuevamente el request a itris si no se proceso model = JsonConvert.DeserializeObject <ItrisPlanillaEntity>(request.req_body_request); this.PostItris(model); } } else { //Insert bd local request = new tbRequest() { req_fecha_request = DateTime.Now, req_fecha_response = null, req_body_request = JsonConvert.SerializeObject(model), req_estado = false, req_codigo = model.CodigoRequest }; //Creo objeto en base local serviceRequestBusiness.Create(request); //Inserts itris this.PostItris(model); } //PERSISTENCIA ITRIS OK => ACTUALIZO BASE LOCAL CON OK if (model.Relevamiento.ID != 0) { request.req_fecha_response = DateTime.Now; request.req_body_response = JsonConvert.SerializeObject(model); request.req_estado = true; serviceRequestBusiness.Update(request); response = Request.CreateResponse(HttpStatusCode.Created, model); } else { response = Request.CreateResponse(HttpStatusCode.InternalServerError, "Itris no inserto registros."); } } catch (Exception ex) { log.Error("Mensaje de Error: " + ex.Message); if (ex.InnerException != null) { log.Error("Inner exception: " + ex.InnerException.Message); } response = Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message); } log.Info("Retorna objeto: " + JsonConvert.SerializeObject(model)); log.Info("- Salio -"); return(response); }