public HttpResponseMessage Synchronize([FromBody] List <ERP_EMPRESAS> lista) { log.Info("Ingreso Synchronize"); HttpResponseMessage response = new HttpResponseMessage(); ServiceSyncErpEmpresasEntity resultSQLite = null; try { ServiceErpEmpresasBusiness serviceErpEmpresasBusiness = new ServiceErpEmpresasBusiness(); //Comparo el input enviado desde SQLite con la base local log.Info("Ejecuta serviceErpEmpresasBusiness.SynchronizeSQLite(lista): " + JsonConvert.SerializeObject(lista)); resultSQLite = serviceErpEmpresasBusiness.SynchronizeSQLite(lista); log.Info("Respuesta serviceErpEmpresasBusiness.SynchronizeSQLite(lista): " + JsonConvert.SerializeObject(lista)); response = Request.CreateResponse(HttpStatusCode.Created, resultSQLite); } 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 Synchronize"); return(response); }
public ServiceSyncErpEmpresasEntity SynchronizeErpEmpresasDACS(ItrisAuthenticateEntity authenticateEntity, string lastUpdate) { //Listas CUD en DB_DACS ServiceSyncErpEmpresasEntity serviceSyncErpEmpresasEntity = new ServiceSyncErpEmpresasEntity(); serviceSyncErpEmpresasEntity.ListaCreate = new List <ERP_EMPRESAS>(); serviceSyncErpEmpresasEntity.ListaUpdate = new List <ERP_EMPRESAS>(); serviceSyncErpEmpresasEntity.ListaDelete = new List <ERP_EMPRESAS>(); try { List <ERP_EMPRESAS> listaEmpresasItris = new List <ERP_EMPRESAS>(); ItrisErpEmpresasBusiness itrisErpEmpresasBusiness = new ItrisErpEmpresasBusiness(authenticateEntity); ItrisErpEmpresasResponse itrisErpEmpresasResponse = Task.Run(async() => await itrisErpEmpresasBusiness.GetLastUpdate(lastUpdate)).GetAwaiter().GetResult(); List <ERP_EMPRESAS> listaServiceEmpresas = this.Read() as List <ERP_EMPRESAS>; //Comparo elemento por elemento para chequear los insert y actualizaciones foreach (var objItris in itrisErpEmpresasResponse.data) { var empresa = listaServiceEmpresas.Where(a => a.ID == objItris.ID).SingleOrDefault(); if (empresa != null) { if (!EmpresasIguales(empresa, objItris)) { ActualizoEmpresa(empresa, objItris); serviceSyncErpEmpresasEntity.ListaUpdate.Add(empresa); } } else { serviceSyncErpEmpresasEntity.ListaCreate.Add(CreoNuevaEmpresa(objItris)); } } //Obtengo los elementos que tengo que eliminar en la bd DACS //foreach (var objService in listaServiceEmpresas) //{ // var objDelete = itrisErpEmpresasResponse.data.Where(a => a.ID == objService.ID).SingleOrDefault(); // if (objDelete == null) // serviceSyncErpEmpresasEntity.ListaDelete.Add(objService); //} PersistirListas(serviceSyncErpEmpresasEntity); } catch (Exception ex) { throw ex; } return(serviceSyncErpEmpresasEntity); }
public ServiceSyncErpEmpresasEntity SynchronizeSQLite(List <ERP_EMPRESAS> listaEmpresasSQLite) { //Listas CUD en DB_DACS ServiceSyncErpEmpresasEntity serviceSyncErpEmpresasEntity = new ServiceSyncErpEmpresasEntity(); serviceSyncErpEmpresasEntity.ListaCreate = new List <ERP_EMPRESAS>(); serviceSyncErpEmpresasEntity.ListaUpdate = new List <ERP_EMPRESAS>(); serviceSyncErpEmpresasEntity.ListaDelete = new List <ERP_EMPRESAS>(); try { List <ERP_EMPRESAS> listaServiceEmpresas = this.Read() as List <ERP_EMPRESAS>; //Comparo elemento por elemento para chequear los insert y actualizaciones foreach (var objService in listaServiceEmpresas) { var empresa = listaEmpresasSQLite.Where(a => a.ID == objService.ID).SingleOrDefault(); if (empresa != null) { if (!EmpresasIguales(empresa, objService)) { serviceSyncErpEmpresasEntity.ListaUpdate.Add(objService); } } else { serviceSyncErpEmpresasEntity.ListaCreate.Add(objService); } } //Obtengo los elementos que tengo que eliminar en la bd DACS foreach (var objSQLite in listaEmpresasSQLite) { var objDelete = listaServiceEmpresas.Where(a => a.ID == objSQLite.ID).SingleOrDefault(); if (objDelete == null) { serviceSyncErpEmpresasEntity.ListaDelete.Add(objSQLite); } } } catch (Exception ex) { throw ex; } return(serviceSyncErpEmpresasEntity); }
private void PersistirListas(ServiceSyncErpEmpresasEntity serviceSyncErpEmpresasEntity) { try { foreach (var obj in serviceSyncErpEmpresasEntity.ListaCreate) { serviceErpEmpresasRepository.Create(obj); } foreach (var obj in serviceSyncErpEmpresasEntity.ListaUpdate) { serviceErpEmpresasRepository.Update(obj); } foreach (var obj in serviceSyncErpEmpresasEntity.ListaDelete) { serviceErpEmpresasRepository.Delete(obj); } } catch (Exception ex) { throw ex; } }