public async Task <HttpResponseMessage> Get() { log.Info("Ingreso"); HttpResponseMessage response = new HttpResponseMessage(); //CLASS string ITRIS_SERVER = ConfigurationManager.AppSettings["ITRIS_SERVER"]; string ITRIS_PUERTO = ConfigurationManager.AppSettings["ITRIS_PUERTO"]; string ITRIS_CLASE = ConfigurationManager.AppSettings["ITRIS_CLASE_TIPO_ARTICULO"]; //AUTHENTICATE string ITRIS_USER = ConfigurationManager.AppSettings["ITRIS_USER"]; string ITRIS_PASS = ConfigurationManager.AppSettings["ITRIS_PASS"]; string ITRIS_DATABASE = ConfigurationManager.AppSettings["ITRIS_DATABASE"]; ItrisTipoDeArticuloResponse responseItris; try { ItrisAuthenticateEntity authenticateEntity = new ItrisAuthenticateEntity(ITRIS_SERVER, ITRIS_PUERTO, ITRIS_CLASE, ITRIS_USER, ITRIS_PASS, ITRIS_DATABASE); ItrisTipoDeArticuloBusiness itrisTipoDeArticuloBusiness = new ItrisTipoDeArticuloBusiness(authenticateEntity); //REQUEST GENERARNDO LA SESSION DESDE EL BUSINESS log.Info("Ejecuta itrisTipoDeArticuloBusiness.Get():"); string session = itrisTipoDeArticuloBusiness.SessionString; responseItris = await itrisTipoDeArticuloBusiness.Get(session); string mensaje = itrisTipoDeArticuloBusiness.CloseSession(session); log.Info("Respuesta itrisTipoDeArticuloBusiness.Get(): " + JsonConvert.SerializeObject(responseItris)); //REQUEST DELEGANDO EL MANEJO DE SESION EN EL REPOSITORY BASE. ABRE Y CIERRA EN EL MISMO REQUEST //log.Info("Ejecuta itrisTipoDeArticuloBusiness.Get():"); //responseItris = await itrisTipoDeArticuloBusiness.Get(); //log.Info("Respuesta itrisTipoDeArticuloBusiness.Get(): " + JsonConvert.SerializeObject(responseItris)); response = Request.CreateResponse(HttpStatusCode.Created, responseItris.data); } 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("Salio"); return(response); }
public ServiceSyncTipArtEntity SynchronizeTipArtDACS(ItrisAuthenticateEntity authenticateEntity) { //Listas CUD en DB_DACS ServiceSyncTipArtEntity serviceSyncTipArtEntity = new ServiceSyncTipArtEntity(); serviceSyncTipArtEntity.ListaCreate = new List<TIP_ART>(); serviceSyncTipArtEntity.ListaUpdate = new List<TIP_ART>(); serviceSyncTipArtEntity.ListaDelete = new List<TIP_ART>(); try { List<TIP_ART> listaTipArtItris = new List<TIP_ART>(); ItrisTipoDeArticuloBusiness itrisTipoDeArticuloBusiness = new ItrisTipoDeArticuloBusiness(authenticateEntity); ItrisTipoDeArticuloResponse itrisTipoDeArticuloResponse = Task.Run(async () => await itrisTipoDeArticuloBusiness.Get()).GetAwaiter().GetResult(); List<TIP_ART> listaServiceTipArt = this.Read() as List<TIP_ART>; //Comparo elemento por elemento para chequear los insert y actualizaciones foreach (var objItris in itrisTipoDeArticuloResponse.data) { var tipArt = listaServiceTipArt.Where(a => a.ID == objItris.ID).SingleOrDefault(); if (tipArt != null) { if (!TipoDeArticuloIguales(tipArt, objItris)) { ActualizoTipArt(tipArt, objItris); serviceSyncTipArtEntity.ListaUpdate.Add(tipArt); } } else serviceSyncTipArtEntity.ListaCreate.Add(CreoNuevoTipArt(objItris)); } //Obtengo los elementos que tengo que eliminar en la bd DACS foreach (var objService in listaServiceTipArt) { var objDelete = itrisTipoDeArticuloResponse.data.Where(a => a.ID == objService.ID).SingleOrDefault(); if (objDelete == null) serviceSyncTipArtEntity.ListaDelete.Add(objService); } PersistirListas(serviceSyncTipArtEntity); } catch (Exception ex) { throw ex; } return serviceSyncTipArtEntity; }