Example #1
0
        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;
            }
        }