public HttpResponseMessage Synchronize([FromBody] List <ERP_LOCALIDADES> lista) { log.Info("Ingreso Synchronize"); HttpResponseMessage response = new HttpResponseMessage(); ServiceSyncErpLocalidadesEntity resultSQLite = null; try { ServiceErpLocalidadesBusiness serviceErpLocalidadesBusiness = new ServiceErpLocalidadesBusiness(); //Comparo el input enviado desde SQLite con la base local log.Info("Ejecuta serviceErpLocalidadesBusiness.SynchronizeSQLite(lista): " + JsonConvert.SerializeObject(lista)); resultSQLite = serviceErpLocalidadesBusiness.SynchronizeSQLite(lista); log.Info("Respuesta serviceErpLocalidadesBusiness.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 ServiceSyncErpLocalidadesEntity SynchronizeErpLocalidadesDACS(ItrisAuthenticateEntity authenticateEntity, string lastUpdate) { //Listas CUD en DB_DACS ServiceSyncErpLocalidadesEntity serviceSyncErpLocalidadesEntity = new ServiceSyncErpLocalidadesEntity(); serviceSyncErpLocalidadesEntity.ListaCreate = new List <ERP_LOCALIDADES>(); serviceSyncErpLocalidadesEntity.ListaUpdate = new List <ERP_LOCALIDADES>(); serviceSyncErpLocalidadesEntity.ListaDelete = new List <ERP_LOCALIDADES>(); try { List <ERP_LOCALIDADES> listaAsesoresItris = new List <ERP_LOCALIDADES>(); ItrisErpLocalidadesBusiness itrisErpLocalidadesBusiness = new ItrisErpLocalidadesBusiness(authenticateEntity); ItrisErpLocalidadesResponse itrisErpLocalidadesResponse = Task.Run(async() => await itrisErpLocalidadesBusiness.GetLastUpdate(lastUpdate)).GetAwaiter().GetResult(); List <ERP_LOCALIDADES> listaServiceLocalidades = this.Read() as List <ERP_LOCALIDADES>; //Comparo elemento por elemento para chequear los insert y actualizaciones foreach (var objItris in itrisErpLocalidadesResponse.data) { var localidad = listaServiceLocalidades.Where(a => a.ID == objItris.ID).SingleOrDefault(); if (localidad != null) { if (!LocalidadesIguales(localidad, objItris)) { ActualizoLocalidad(localidad, objItris); serviceSyncErpLocalidadesEntity.ListaUpdate.Add(localidad); } } else { serviceSyncErpLocalidadesEntity.ListaCreate.Add(CreoNuevaLocalidad(objItris)); } } //Obtengo los elementos que tengo que eliminar en la bd DACS //foreach (var objService in listaServiceLocalidades) //{ // var objDelete = itrisErpLocalidadesResponse.data.Where(a => a.ID == objService.ID).SingleOrDefault(); // if (objDelete == null) // serviceSyncErpLocalidadesEntity.ListaDelete.Add(objService); //} PersistirListas(serviceSyncErpLocalidadesEntity); } catch (Exception ex) { throw ex; } return(serviceSyncErpLocalidadesEntity); }
public ServiceSyncErpLocalidadesEntity SynchronizeSQLite(List <ERP_LOCALIDADES> listaLocalidadesSQLite) { //Listas CUD en DB_DACS ServiceSyncErpLocalidadesEntity serviceSyncErpLocalidadesEntity = new ServiceSyncErpLocalidadesEntity(); serviceSyncErpLocalidadesEntity.ListaCreate = new List <ERP_LOCALIDADES>(); serviceSyncErpLocalidadesEntity.ListaUpdate = new List <ERP_LOCALIDADES>(); serviceSyncErpLocalidadesEntity.ListaDelete = new List <ERP_LOCALIDADES>(); try { List <ERP_LOCALIDADES> listaServiceLocalidades = this.Read() as List <ERP_LOCALIDADES>; //Comparo elemento por elemento para chequear los insert y actualizaciones foreach (var objService in listaServiceLocalidades) { var localidad = listaLocalidadesSQLite.Where(a => a.ID == objService.ID).SingleOrDefault(); if (localidad != null) { if (!LocalidadIguales(localidad, objService)) { serviceSyncErpLocalidadesEntity.ListaUpdate.Add(objService); } } else { serviceSyncErpLocalidadesEntity.ListaCreate.Add(objService); } } //Obtengo los elementos que tengo que eliminar en la bd DACS foreach (var objSQLite in listaLocalidadesSQLite) { var objDelete = listaServiceLocalidades.Where(a => a.ID == objSQLite.ID).SingleOrDefault(); if (objDelete == null) { serviceSyncErpLocalidadesEntity.ListaDelete.Add(objSQLite); } } } catch (Exception ex) { throw ex; } return(serviceSyncErpLocalidadesEntity); }
private void PersistirListas(ServiceSyncErpLocalidadesEntity serviceSyncErpLocalidadesEntity) { try { foreach (var obj in serviceSyncErpLocalidadesEntity.ListaCreate) { serviceErpLocalidadesRepository.Create(obj); } foreach (var obj in serviceSyncErpLocalidadesEntity.ListaUpdate) { serviceErpLocalidadesRepository.Update(obj); } foreach (var obj in serviceSyncErpLocalidadesEntity.ListaDelete) { serviceErpLocalidadesRepository.Delete(obj); } } catch (Exception ex) { throw ex; } }