Esempio n. 1
0
        public ServiceSyncArticuloEntity SynchronizeArticuloDACS(ItrisAuthenticateEntity authenticateEntity, string lastUpdate)
        {
            //Listas CUD en DB_DACS
            ServiceSyncArticuloEntity serviceArticuloEntity = new ServiceSyncArticuloEntity();

            serviceArticuloEntity.ListaCreate = new List <ARTICULO>();
            serviceArticuloEntity.ListaUpdate = new List <ARTICULO>();
            serviceArticuloEntity.ListaDelete = new List <ARTICULO>();

            try
            {
                List <ARTICULO> listaArticulosItris = new List <ARTICULO>();

                ItrisArticuloBusiness itrisArticuloBusiness = new ItrisArticuloBusiness(authenticateEntity);
                ItrisArticuloResponse itrisArticuloResponse =
                    Task.Run(async() => await itrisArticuloBusiness.GetLastUpdate(lastUpdate)).GetAwaiter().GetResult();

                List <ARTICULO> listaServiceArticulo = this.Read() as List <ARTICULO>;

                //Comparo elemento por elemento para chequear los insert y actualizaciones
                foreach (var objItris in itrisArticuloResponse.data)
                {
                    var articulo = listaServiceArticulo.Where(a => a.ID == objItris.ID).SingleOrDefault();
                    if (articulo != null)
                    {
                        if (!ArticulosIguales(articulo, objItris))
                        {
                            ActualizoArticulo(articulo, objItris);
                            serviceArticuloEntity.ListaUpdate.Add(articulo);
                        }
                    }
                    else
                    {
                        serviceArticuloEntity.ListaCreate.Add(CreoNuevoArticulo(objItris));
                    }
                }

                //Obtengo los elementos que tengo que eliminar en la bd DACS
                //foreach (var objService in listaServiceArticulo)
                //{
                //    var objDelete = itrisArticuloResponse.data.Where(a => a.ID == objService.ID).SingleOrDefault();
                //    if (objDelete == null)
                //        serviceArticuloEntity.ListaDelete.Add(objService);
                //}

                PersistirListas(serviceArticuloEntity);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(serviceArticuloEntity);
        }
        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_ARTICULO"];

            //AUTHENTICATE
            string ITRIS_USER     = ConfigurationManager.AppSettings["ITRIS_USER"];
            string ITRIS_PASS     = ConfigurationManager.AppSettings["ITRIS_PASS"];
            string ITRIS_DATABASE = ConfigurationManager.AppSettings["ITRIS_DATABASE"];

            ItrisArticuloResponse responseItris;

            try
            {
                ItrisAuthenticateEntity authenticateEntity =
                    new ItrisAuthenticateEntity(ITRIS_SERVER, ITRIS_PUERTO, ITRIS_CLASE, ITRIS_USER, ITRIS_PASS, ITRIS_DATABASE);

                ItrisArticuloBusiness itrisArticuloBusiness = new ItrisArticuloBusiness(authenticateEntity);

                log.Info("Ejecuta itrisArticuloBusiness.Get():");
                responseItris = await itrisArticuloBusiness.Get();

                log.Info("Respuesta itrisArticuloBusiness.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);
        }