Beispiel #1
0
 public InicioProductoViewModel(ProductosModel ProductoParametro) : this()
 {
     ProductoSeleccionado = ProductoParametro;
     if (ProductoParametro != null)
     {
         NombreProductoF   = ProductoParametro.NombreProduto;
         CategoriaProductF = ProductoParametro.CategoriaProduc;
         CategoriaF        = ProductoParametro.Categoria;
     }
 }
 public bool CrearProducto(ProductosModel producto)
 {
     try
     {
         return(_service.CrearProducto(producto));
     }
     catch (Exception ex)
     {
         throw;
     }
 }
Beispiel #3
0
        public ActionResult Details(int idProducto)
        {
            var proxy     = new ServiceProxyB2CClient();
            var productos = new ProductosModel
            {
                Productos             = proxy.ConsultarProducto(TipoConsultaProducto.ID, idProducto.ToString()),
                ProductosRelacionados = proxy.ConsultaTop5Productos(new[] { idProducto.ToString() })
            };

            return(View(productos));
        }
        public async Task <IActionResult> Create([Bind("CodigoProducto,Descripcion,CodigoProveedor,Fecha,UbicacionFisica,ExistenciaMinima,TipoProducto")] ProductosModel productosModel)
        {
            if (ModelState.IsValid)
            {
                _context.Add(productosModel);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(productosModel));
        }
Beispiel #5
0
 public int Actualizar(ProductosModel Parametro)
 {
     try
     {
         return(cdProductos.Actualizar(Parametro));
     }
     catch (Exception er)
     {
         throw new Exception(er.Message);
     }
 }
Beispiel #6
0
        public ActionResult Index(string searchString, int page)
        {
            var proxy     = new ServiceProxyB2CClient();
            var productos = new ProductosModel
            {
                Productos    = proxy.ConsultarProducto(TipoConsultaProducto.DESCRIPCION, page + "@" + searchString),
                Page         = page,
                SearchString = searchString
            };

            return(View(productos));
        }
        public static ProductosModel GetProdCategories(string categoria)
        {
            string         Query       = "EXECUTE obtener_producto_categoria '" + categoria + "';";
            var            ResulSet    = Db_Connection.ReaderDatabase(Query);
            ProductosModel infProCateg = new ProductosModel();

            infProCateg.nombre_producto = ResulSet.Rows[0]["nombre_producto"].ToString();
            infProCateg.descripcion     = ResulSet.Rows[0]["descripcion"].ToString();
            infProCateg.precio          = float.Parse(ResulSet.Rows[0]["precio"].ToString());
            infProCateg.stock           = int.Parse(ResulSet.Rows[0]["stock"].ToString());
            infProCateg.imagen          = ResulSet.Rows[0]["imagen"].ToString();
            return(infProCateg);
        }
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            ProductosModel producto = new ProductosModel();

            producto.insertarProducto(
                Convert.ToInt32(cmbCategoria.SelectedValue),
                txtNombreProd.Text,
                txtDescripccion.Text,
                (int)numCantidad.Value,
                float.Parse(txtPrecio.Text));

            MessageBox.Show("Producto Guardado con exito");
            mostrarProductos();
        }
        public ActionResult Obtener([FromBody] PedidosModel pedido)
        {
            int    result = 0, cantidadP = 0, pk_falta_calificacion = 0;
            string msj = "¡Error al obtener tiendas intente más tarde!";
            string liga = "", apiOpen = "", produccion = "", apiOpenCharId = "";
            List <TiendasModel>        lista = null;
            List <ProductosModel>      listaPromos = null;
            ProductosModel             aux1 = new ProductosModel();
            ImagenesSliderModel        imgSlider = new ImagenesSliderModel();
            List <ImagenesSliderModel> imagenesSlider = null;

            try
            {
                TiendasModel tienda = new TiendasModel();
                lista         = tienda.getTiendasLight();
                listaPromos   = aux1.getProductosByPromocion();
                liga          = "Conoce ACMarket app en: " + VariablesModel.getVariableValue("LIGA_COMPARTIR");
                apiOpen       = VariablesModel.getVariableValue("PUBLICAOPEN");
                apiOpenCharId = VariablesModel.getVariableValue("IDOPEN");
                produccion    = VariablesModel.getVariableValue("API_PRODUCTIVA_OPEN_PAY");
                cantidadP     = pedido.obtenerCantidadPedidosByPkCliente();
                if (pedido.faltaCalificacion())
                {
                    pk_falta_calificacion = int.Parse(pedido.PK);
                }
                imagenesSlider = imgSlider.getList();
                result         = 1;
                msj            = "¡Tiendas obtenidas!";
            }
            catch
            {
                result = 0;
                msj    = "¡Error al obtener tiendas intente más tarde!";
            }

            return(Ok(new
            {
                resultado = result,
                mensaje = msj,
                tiendas = lista,
                link = liga,
                publicaopen = apiOpen,
                openproduccion = produccion,
                idopen = apiOpenCharId,
                promos = listaPromos,
                cantidadMisPedidos = cantidadP,
                faltaCalificacion = pk_falta_calificacion,
                sliderImg = imagenesSlider
            }));
        }
Beispiel #10
0
        public int Guardar(ProductosModel Objeto)
        {
            int res;

            try
            {
                res = cdProductos.Guardar(Objeto);
            }
            catch (Exception)
            {
                res = 0;
            }

            return(res);
        }
Beispiel #11
0
        public ActionResult Index()
        {
            List <Producto> ListaDeProductos = new List <Producto>();

            using (Context context = new Context())
            {
                ListaDeProductos = context.Productos.ToList();
            };

            ProductosModel ProductosModel = new ProductosModel
            {
                Productos = ListaDeProductos
            };

            return(View("Index", ProductosModel));
        }
Beispiel #12
0
        void CreaProducto(List <int> lista) //Este metodo crea un nuevo producto si se va a modificar su lista de detalles, y ademas recupera el id del nuevo producto
        {
            for (int i = 0; i < lista.Count; i++)
            {
                DataTable      listaProductos = cnProductos.ConsultaConsultaPorId(lista[i]);
                ProductosModel _Productos     = new ProductosModel
                {
                    IdProducto         = Convert.ToInt32(listaProductos.Rows[0]["IdProducto"]),
                    IdFormula          = Convert.ToInt32(listaProductos.Rows[0]["IdFormula"]),
                    NombreProducto     = Convert.ToString(listaProductos.Rows[0]["NombreProducto"]),
                    Cantidad           = Convert.ToDecimal(listaProductos.Rows[0]["Cantidad"]),
                    UnidadMedida       = Convert.ToString(listaProductos.Rows[0]["UnidadMedida"]),
                    CostoUnitario      = Convert.ToDecimal(listaProductos.Rows[0]["CostoUnitario"]),
                    CostoTotalProducto = Convert.ToDecimal(listaProductos.Rows[0]["CostoUnitario"]),
                    Activo             = (bool)(listaProductos.Rows[0]["Activo"])
                };
                int       IdP      = Convert.ToInt32(cnProductos.Guardar(_Productos));
                DataTable Detalles = cnDetProducto.ConsultaDetallesPorProducto(Convert.ToInt32(listaProductos.Rows[0]["IdProducto"]));
                double    Precio   = 0.00;
                foreach (DataRow row in Detalles.Rows)
                {
                    if (Convert.ToInt32(row["IdInsumo"]) == IdInsumo)
                    {
                        row["IdProducto"] = IdP;
                        row["Precio"]     = PrecioInsumo;
                        Precio           += Convert.ToDouble(row["Precio"]);
                    }
                    else
                    {
                        row["IdProducto"] = IdP;
                        Precio           += Convert.ToDouble(row["Precio"]);
                    }

                    cnDetProducto.Guardar(new DetallesProductosModel
                    {
                        CostoInsumo = Convert.ToDecimal(row["Precio"]),
                        IdDetalle   = Convert.ToInt32(row["IdDetalle"]),
                        IdProducto  = Convert.ToInt32(row["IdProducto"]),
                        IdInsumo    = IdInsumo,
                    });
                }
                _Productos.IdProducto          = IdP;
                _Productos.CostoTotalProducto += Convert.ToDecimal(Precio);
                cnProductos.Actualizar(_Productos);
                cnProductos.Borrar(lista[i]);
            }
        }
 public ActionResult CrearProducto(int?id)
 {
     try
     {
         ProductosModel modelo = null;
         if (id > 0)
         {
             modelo = _productosImpl.ConsultarProductoPorId(id.GetValueOrDefault());
         }
         return(View(modelo));
     }
     catch (ApplicationException ae)
     {
         ViewBag.error = ae.Message;
         return(View());
     }
 }
        public int ActualizarProducto(ProductosModel producto)
        {
            using (var contexto = new LocalDB_ProyectoMVCEntities())
            {
                var p = contexto.Productos.Where(prod => prod.CveProducto == producto.iCveProducto).FirstOrDefault();

                if (p != null)
                {
                    p.Nombre       = producto.sNombre;
                    p.PrecioCompra = producto.dPrecioCompra;
                    p.PrecioVenta  = producto.dPrecioVenta;
                    p.Stock        = producto.iStock;
                }
                contexto.SaveChanges();
            }
            return(1);
        }
        // GET: Productos/Edit/5
        public ActionResult Edit(int id)
        {
            ProductosModel prdModel = new ProductosModel();
            DataTable      db       = objDb.DetalleProductoDB(id);

            if (db.Rows.Count == 1)
            {
                prdModel.ProdId          = int.Parse(db.Rows[0][0].ToString());
                prdModel.ProdNombre      = db.Rows[0][1].ToString();
                prdModel.ProdDescripcion = db.Rows[0][2].ToString();
                prdModel.ProdPrecio      = int.Parse(db.Rows[0][3].ToString());
                return(View(prdModel));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
 private void button2_Click(object sender, EventArgs e)
 {
     try
     {
         ProductosModel producto = new ProductosModel();
         producto.nombre      = textBoxNombre.Text;
         producto.codigoInt   = textBoxCodInt.Text;
         producto.precioNeto  = Convert.ToDecimal(textBoxPrecioNeto.Text);
         producto.precioventa = Convert.ToInt32(textBoxPrecioBruto.Text);
         producto.exento      = checkBoxExento.Checked.ToString();
         producto.save(producto);
         MessageBox.Show(" El Producto se Guardo con Exito");
         this.Refresh();
     }
     catch (Exception ex)
     {
         MessageBox.Show("Error al Guardar: " + ex);
     }
 }
 // GET: Product
 public ActionResult Index(string searchString)
 {
     if (string.IsNullOrEmpty(searchString))
     {
         var proxy     = new ServiceProxyB2CClient();
         var productos = new ProductosModel {
             Productos = proxy.ConsultarCampaniaProducto()
         };
         return(View(productos));
     }
     else
     {
         var proxy     = new ServiceProxyB2CClient();
         var productos = new ProductosModel {
             Productos = proxy.ConsultarProducto(TipoConsultaProducto.DESCRIPCION, null, searchString, null)
         };
         return(View(productos));
     }
 }
Beispiel #18
0
        public int Add(ProductosModel Model)
        {
            ProductosEntitie Producto = new ProductosEntitie();

            Producto.Nombre      = Model.Nombre;
            Producto.SKU         = Model.SKU;
            Producto.Valor       = Model.Valor;
            Producto.Descripcion = Model.Descripcion;
            Producto.IdTienda    = Model.IdTienda;
            if (Model.Nombre != null)
            {
                _context.Productos.Add(Producto);
                _context.SaveChanges();
                return(Model.IdProducto);
            }
            else
            {
                return(0);
            }
        }
Beispiel #19
0
        // GET: Product
        public ActionResult Index()
        {
            var          user    = SessionHelper.UsuarioLogueado;
            var          prod    = RNProduct.ListarProductos();
            ActionResult validar = Redirect("/Home/Index");

            if (user == null)
            {
                validar = Redirect("/Login/Index");
            }
            else if (SessionHelper.ComprobarPersmisos(user))
            {
                ProductosModel modelo = new ProductosModel
                {
                    Productos = prod,
                };
                validar = View("Productos", modelo);
            }
            return(validar);
        }
 public ActionResult CrearProductos(ProductosModel modelo)
 {
     try
     {
         bool guardoCorrectamente;
         if (modelo.Id > 0)
         {
             //Actualizar producto
         }
         else
         {
             guardoCorrectamente = _productosImpl.CrearProducto(modelo);
         }
         return(Json(new { guardoCorrectamente = true }, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         throw new ApplicationException("Error al crear el producto.");
     }
 }
        void GuardarCambios()
        {
            if (ProductoSeleccionado != null)
            {
                ProductoSeleccionado.NombreProduto   = NombreProductoF;
                ProductoSeleccionado.CategoriaProduc = CategoriaProductF;
                ProductoSeleccionado.Categoria       = CategoriaF;

                var respuestaDB = Repositorio.ActualizarProducto(ProductoSeleccionado);
            }
            else
            {
                var productoNuevo = new ProductosModel();
                productoNuevo.NombreProduto   = NombreProductoF;
                productoNuevo.CategoriaProduc = CategoriaProductF;
                productoNuevo.Categoria       = CategoriaF;

                var resultadoDb = Repositorio.CrearProducto(productoNuevo);
            }
        }
Beispiel #22
0
        public ActionResult Insertar(ProductosModel p)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    CProductos cp = new CProductos();

                    if (cp.Insertar(p))
                    {
                        ViewBag.Message = "Producuto insertado correctamente";
                        ModelState.Clear();
                    }
                }
                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                return(View());
            }
        }
Beispiel #23
0
        void AgregarProducto()
        {
            if (ProductoSeleccionado != null)
            {
                ProductoSeleccionado.NombreProducto = NombreProductoF;



                var respuestaDB = Repositorio.ActualizarProducto(ProductoSeleccionado);
            }
            else
            {
                var productoNuevo = new ProductosModel();
                productoNuevo.NombreProducto = NombreProductoF;



                var resultadoDb = Repositorio.CrearProducto(productoNuevo);
                Producto.Add(productoNuevo);
            }
        }
Beispiel #24
0
        public ActionResult Actualizar(int id, ProductosModel p)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    CProductos cp = new CProductos();


                    if (cp.Actualizar(p))
                    {
                        ModelState.Clear();
                    }
                }
                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                return(View());
            }
        }
        public ActionResult Post()
        {
            int    result = 0;
            string msj = "¡Error al obtener tiendas intente más tarde!";
            string liga = "", apiOpen = "", produccion = "", apiOpenCharId = "";
            List <TiendasModel>   lista = null;
            List <ProductosModel> listaPromos = null;
            ProductosModel        aux1 = new ProductosModel();

            try
            {
                TiendasModel tienda = new TiendasModel();
                lista         = tienda.getTiendasLight();
                listaPromos   = aux1.getProductosByPromocion();
                liga          = "Conoce ACMarket app en: " + VariablesModel.getVariableValue("LIGA_COMPARTIR");
                apiOpen       = VariablesModel.getVariableValue("PUBLICAOPEN");
                apiOpenCharId = VariablesModel.getVariableValue("IDOPEN");
                produccion    = VariablesModel.getVariableValue("API_PRODUCTIVA_OPEN_PAY");
                result        = 1;
                msj           = "¡Tiendas obtenidas!";
            }
            catch {
                result = 0;
                msj    = "¡Error al obtener tiendas intente más tarde!";
            }

            return(Ok(new{
                resultado = result,
                mensaje = msj,
                tiendas = lista,
                link = liga,
                publicaopen = apiOpen,
                openproduccion = produccion,
                idopen = apiOpenCharId,
                promos = listaPromos
            }));
        }
        public ProductosModel NuevoProducto(ProductosModel product)
        {
            using (var contexto = new LocalDB_ProyectoMVCEntities())
            {
                var iExiste = contexto.Productos.Where(p => p.CveProducto == product.iCveProducto || p.Nombre == product.sNombre).FirstOrDefault();

                if (iExiste != null)
                {
                    return(null);
                }

                var nuevoProducto = new Productos
                {
                    CveProducto  = product.iCveProducto,
                    Nombre       = product.sNombre,
                    PrecioCompra = product.dPrecioCompra,
                    PrecioVenta  = product.dPrecioVenta,
                    Stock        = product.iStock
                };
                contexto.Productos.Add(nuevoProducto);
                contexto.SaveChanges();
                return(product);
            }
        }
Beispiel #27
0
        void CrearNuevoPrducto(List <int> lista, int IdFormula)//Este método crea un nuevo producto si se creo una nueva formula
        {
            for (int i = 0; i < lista.Count; i++)
            {
                DataTable listaProductos = cnProductos.ConsultaPorFormula(lista[i]);
                for (int j = 0; j < listaProductos.Rows.Count; j++)
                {
                    DataTable DetallesProductos = cnDetProducto.ConsultaDetallesPorProducto(Convert.ToInt32(listaProductos.Rows[j]["IdProducto"]));
                    cnProductos.Borrar(Convert.ToInt32(listaProductos.Rows[j]["IdProducto"]));

                    ProductosModel _Productos = new ProductosModel
                    {
                        IdProducto     = Convert.ToInt32(listaProductos.Rows[j]["IdProducto"]),
                        IdFormula      = IdFormula,
                        NombreProducto = Convert.ToString(listaProductos.Rows[j]["NombreProducto"]),
                        Cantidad       = Convert.ToDecimal(listaProductos.Rows[j]["Cantidad"]),
                        UnidadMedida   = Convert.ToString(listaProductos.Rows[j]["UnidadMedida"]),
                        CostoUnitario  = Convert.ToDecimal(CalculaPrecioUnitarioProducto(IdFormula, Convert.ToInt32(listaProductos.Rows[j]["IdProducto"]))),
                        Activo         = (bool)(listaProductos.Rows[j]["Activo"]),
                    };
                    _Productos.CostoTotalProducto = _Productos.CostoUnitario + Convert.ToDecimal(PrecioDetalles);

                    int id = Convert.ToInt32(cnProductos.Guardar(_Productos));
                    foreach (DataRow row in DetallesProductos.Rows)
                    {
                        cnDetProducto.Guardar(new DetallesProductosModel
                        {
                            IdDetalle   = 0,
                            IdProducto  = id,
                            IdInsumo    = Convert.ToInt32(row["IdInsumo"]),
                            CostoInsumo = Convert.ToDecimal(row["Precio"])
                        });
                    }
                }
            }
        }
 public ActionResult Create(ProductosModel prdModel)
 {
     objDb.InsertarProductoDB(prdModel.ProdNombre, prdModel.ProdDescripcion, prdModel.ProdPrecio);
     return(RedirectToAction("Index"));
 }
        public void mostrarProductos()
        {
            ProductosModel producto = new ProductosModel();

            dataGridView1.DataSource = producto.mostrarProductos();
        }
Beispiel #30
0
        public static void Lectura(string opcion)
        {
            int eAux = 0;

            int primerapasada = 0;

            if (opcion == "a")
            {
                while (eAux == 0)
                {
                    try
                    {
                        Console.WriteLine("************************************************** \n");

                        Console.WriteLine("Comienza lectura de Categorias - " + DateTime.Now);

                        WebRequest webCategoria = WebRequest.Create(urlcode + "platforms?access_token=" + token);

                        using (WebResponse respcategoria = webCategoria.GetResponse())
                        {
                            Stream catdataStream = respcategoria.GetResponseStream();

                            Console.WriteLine("Lectura correcta - categorias - " + DateTime.Now + "\n");

                            StreamReader catreader = new StreamReader(catdataStream);

                            string catresponseFromServer = catreader.ReadToEnd();

                            Console.WriteLine("Obteniendo Lista de Categorias - " + DateTime.Now);

                            dynamic catjson = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(catresponseFromServer);

                            Newtonsoft.Json.Linq.JArray listacategorias = catjson.platforms;

                            foreach (dynamic i in listacategorias)
                            {
                                string categoriaNombre = i.name;

                                Console.WriteLine("Leyendo Categoria - " + categoriaNombre + " _ " + DateTime.Now + "\n");

                                Boolean e = DL.AgregarCategorias(categoriaNombre);

                                if (e == true)
                                {
                                    Console.WriteLine("Categoria agregada - " + categoriaNombre + " _ " + DateTime.Now + "\n");
                                }

                                System.Threading.Thread.Sleep(1);
                            }

                            catreader.Close();

                            eAux = 1;
                        }
                    }
                    catch (WebException wex)
                    {
                        Console.WriteLine("Codewhosale Error - " + DateTime.Now + " - " + wex.Response.ToString());

                        if (wex.Response != null)
                        {
                            using (var errorResponse = (HttpWebResponse)wex.Response)
                            {
                                using (var reader = new StreamReader(errorResponse.GetResponseStream()))
                                {
                                    string error = reader.ReadToEnd();

                                    dynamic jsonDe = JsonConvert.DeserializeObject(error);

                                    Console.WriteLine(" Error web " + jsonDe + " - " + DateTime.Now);

                                    if (jsonDe.error == "invalid_token")
                                    {
                                        Console.WriteLine("Codewhosale Error : invalid_token " + DateTime.Now);

                                        #region token new
                                        try
                                        {
                                            WebRequest requesttoken = WebRequest.Create(urltoken + "grant_type=client_credentials&client_id=" + client_id + "&client_secret=" + client_secret);

                                            requesttoken.ContentType = "application/json;charset=UTF-8";

                                            requesttoken.Method = "POST";

                                            var response = (HttpWebResponse)requesttoken.GetResponse();

                                            Console.WriteLine("Codewhosale Error Get token - " + DateTime.Now + " - " + response.StatusDescription);

                                            var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

                                            var items = JsonConvert.DeserializeObject <dynamic>(responseString);

                                            Console.WriteLine("Codewhosale Error Get token " + DateTime.Now + " - " + responseString);

                                            token = items.access_token;

                                            eAux = 0;

                                            #endregion
                                        }
                                        catch (WebException token_error)
                                        {
                                            eAux = 1;

                                            using (var token_error_str = (HttpWebResponse)token_error.Response)
                                            {
                                                var resp_error = token_error_str.GetResponseStream();

                                                using (StreamReader st_t_error = new StreamReader(resp_error))
                                                {
                                                    string string_resp = st_t_error.ReadToEnd();

                                                    dynamic jsonDe_resp = JsonConvert.DeserializeObject(string_resp);

                                                    Console.WriteLine("************************************************************************");

                                                    Console.WriteLine(" Error grave - generador de token " + jsonDe_resp + " - " + DateTime.Now);

                                                    Console.WriteLine("************************************************************************");
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            Console.WriteLine("A la mierda todo " + ex.Message.ToString() + DateTime.Now);

                                            eAux = 1;
                                        }
                                    }
                                }
                                //   eAux = 0;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Error obteniendo Lista de Categorias - " + ex.Message.ToString() + "_" + DateTime.Now);

                        eAux = 1;
                    }
                }
            }
            else if (opcion == "ei")
            {
                System.IO.DirectoryInfo d = new DirectoryInfo("imagenes");

                foreach (var f in d.GetFiles())
                {
                    f.Delete();

                    Console.WriteLine("eliminando Imagen : " + f.Name);
                }
            }
            else if (opcion == "pi")
            {
                Console.WriteLine("\n********** INICIO OBTENIENDO IMÁGENES DE PRODUCTOS ************\n");

                Dictionary <string, object> p = DL.GetListProducts();

                DataTable dt = (DataTable)p["valor"];

                foreach (DataRow r in dt.Rows)
                {
                    string id = r["productosId"].ToString();

                    string image = r["productosimagen"].ToString();

                    bool resp = gamekeyspotCodewhoSales.Services.GetImage.getImageApi(r["id_codewhosale"].ToString(), id);
                }

                //foreach (var i in (DataTable)dt)
                //{

                //}
            }
            else
            {
                while (eAux == 0)
                {
                    try
                    {
                        WebRequest request = WebRequest.Create(urlcode + "products?access_token=" + token);

                        request.Credentials = CredentialCache.DefaultCredentials;

                        Console.WriteLine("llamada: products - " + DateTime.Now + " - token: " + token);

                        WebResponse response = request.GetResponse();

                        Stream dataStream = response.GetResponseStream();

                        Console.WriteLine("Lectura correcta - products - " + DateTime.Now);

                        StreamReader reader = new StreamReader(dataStream);

                        string responseFromServer = reader.ReadToEnd();

                        JsonSerializer serializer = new JsonSerializer();

                        Console.WriteLine("Obteniendo Lista de productos - " + DateTime.Now);

                        dynamic json = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(responseFromServer);

                        Newtonsoft.Json.Linq.JArray listaProductos = json.items;

                        foreach (dynamic i in listaProductos)
                        {
                            try
                            {
                                string region = "";

                                if (i.regions.Count > 0)
                                {
                                    region = i.regions[0];
                                }

                                decimal precio = 0;

                                if (i.prices.Count > 0)
                                {
                                    precio = i.prices[0].value;
                                }

                                string lenguajes = "";

                                if (i.languages.Count > 0)
                                {
                                    for (var il = 0; il < i.languages.Count; il++)
                                    {
                                        lenguajes += i.languages[il] + ",";
                                    }

                                    lenguajes = lenguajes.Substring(0, lenguajes.LastIndexOf(','));
                                }

                                string productoId = i.productId.ToString(), ProductoNombre = i.name, identifier = i.identifier, cantidad = i.quantity;
                                string releaseDate = i.releaseDate, plataform = i.platform;
                                string officialTitle = "", category = "", developerName = "", developerHomepage = "";

                                Console.WriteLine("********** Producto " + i.productId + " ************\n\n");

                                Console.WriteLine("Producto: " + productoId + " - " + ProductoNombre + " - cantidad:" + cantidad + " - release " + releaseDate + " - categoria: " + plataform + " - precio: " + precio + " - región: " + region + " - lenguajes: " + lenguajes + " _ " + DateTime.Now + "\n");

                                Console.WriteLine("---- Descripción " + i.productId + "---- \n");

                                Dictionary <string, object> dictdescripcion = new Dictionary <string, object>();

                                try
                                {
                                    //dictdescripcion = ObtenerDescripcion(i.productId.ToString());

                                    if (dictdescripcion.ContainsKey("error"))
                                    {
                                        if (dictdescripcion["error"].ToString() == "50042")
                                        {
                                            dictdescripcion["error"] = "No existe descripción";
                                        }

                                        Console.WriteLine("Error obteniendo descripción : " + i.productId + " : " + dictdescripcion["error"] + " - " + DateTime.Now);

                                        dictdescripcion.Clear();
                                    }
                                    else
                                    {
                                        Console.WriteLine("Datos de Descripción Finalizado : " + i.productId + " - " + DateTime.Now);
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine("************ Error descripción : programación**************" + ex.Message.ToString());
                                }

                                string imagenprincipal = string.Empty;

                                try
                                {
                                    if (i.images.Count > 0)
                                    {
                                        if (!File.Exists("imagenes/" + i.productId.ToString()))
                                        {
                                            Console.WriteLine("Guardando imagen _ " + i.productId.ToString() + "_" + DateTime.Now);

                                            string imageurl = "https://api.codeswholesale.com/v1/products/" + i.productId.ToString() + "/image?format=MEDIUM";

                                            imagenprincipal = SaveImageAsync(imageurl, i.productId.ToString());

                                            Console.WriteLine("Imagen guardada _ " + i.productId.ToString() + "_" + DateTime.Now);
                                        }
                                        else
                                        {
                                            imagenprincipal = i.productId.ToString();
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                }

                                Console.WriteLine("\n********** GUARDANDO DATABASE ************\n");

                                try
                                {
                                    ProductosModel m = new ProductosModel();

                                    string description = string.Empty;

                                    if (dictdescripcion.Count > 0)
                                    {
                                        officialTitle     = dictdescripcion["officialTitle"].ToString();
                                        category          = dictdescripcion["category"].ToString();
                                        developerName     = dictdescripcion["developerName"].ToString();
                                        developerHomepage = dictdescripcion["developerHomepage"].ToString();

                                        if (dictdescripcion.ContainsKey("factSheets"))
                                        {
                                            try
                                            {
                                                description = dictdescripcion["factSheets"].ToString();
                                            }
                                            catch (Exception ex)
                                            {
                                            }
                                        }
                                    }

                                    m.productCodewhosaleId = productoId;

                                    m.productName = ProductoNombre;

                                    m.images = imagenprincipal;

                                    m.description = description;
                                    m.quantity    = cantidad;
                                    m.regions     = region;

                                    m.prices = precio;

                                    m.identifier      = identifier;
                                    m.languages       = lenguajes;
                                    m.escodewhosale   = 1;
                                    m.platform        = plataform;
                                    m.categoriaNombre = plataform;

                                    m.officialTitle     = officialTitle;
                                    m.category          = category;
                                    m.developerName     = developerName;
                                    m.developerHomepage = developerHomepage;

                                    dynamic ProductoAlmacenado = DL.AgregarProducto(m);

                                    if (ProductoAlmacenado.ContainsKey("error"))
                                    {
                                        try
                                        {
                                            dynamic e = ProductoAlmacenado;

                                            Console.WriteLine("** ERROR GUARDANDO DATABASE ** ProductoAlmacenado ** : " + e["error"]);
                                        }
                                        catch (Exception ex)
                                        {
                                            Console.WriteLine("** ERROR GUARDANDO DATABASE ** ProductoAlmacenado ** : " + ex.Message.ToString());
                                        }
                                    }

                                    if (ProductoAlmacenado.ContainsKey("valor"))
                                    {
                                        string p = ProductoAlmacenado["valor"].ToString();

                                        Console.WriteLine("**** id: " + p + " ******");

                                        // para almacenar fotos //
                                        if (dictdescripcion.Count > 0)
                                        {
                                            if (dictdescripcion.ContainsKey("fotos"))
                                            {
                                                try
                                                {
                                                    dynamic df = dictdescripcion["fotos"];

                                                    if (df.Count > 0)
                                                    {
                                                        foreach (dynamic f in (List <string>)df)
                                                        {
                                                            string ext = ".jpg";

                                                            var fresult = DL.AgregarGaleria(p, "", f + ext, "fotos");

                                                            if (fresult == true)
                                                            {
                                                                Console.WriteLine("Foto guardada correctamente en db");
                                                            }
                                                            else
                                                            {
                                                                Console.WriteLine("Error guardando foto en db");
                                                            }
                                                        }
                                                    }
                                                }
                                                catch (Exception ex)
                                                {
                                                    Console.WriteLine("Error guardando foto en db " + ex.Message.ToString());
                                                    ;
                                                }
                                            }

                                            if (dictdescripcion.ContainsKey("videos"))
                                            {
                                                try
                                                {
                                                    dynamic df = dictdescripcion["videos"];

                                                    if (df.Count > 0)
                                                    {
                                                        foreach (dynamic f in (List <string>)df)
                                                        {
                                                            string[] f_split = f.Split('#');

                                                            string url    = string.Empty;
                                                            string titulo = string.Empty;

                                                            int fint = 0;

                                                            foreach (var sf in f_split)
                                                            {
                                                                if (fint == 0)
                                                                {
                                                                    url = sf;
                                                                }
                                                                else
                                                                {
                                                                    titulo = sf;
                                                                }
                                                                fint = fint + 1;
                                                            }

                                                            var fresult = DL.AgregarGaleria(p, titulo, f, "videos");

                                                            if (fresult == true)
                                                            {
                                                                Console.WriteLine("video guardada correctamente en db");
                                                            }
                                                            else
                                                            {
                                                                Console.WriteLine("Error guardando videos en db");
                                                            }
                                                        }
                                                    }
                                                }
                                                catch (Exception ex)
                                                {
                                                    ex.Message.ToString();
                                                }
                                            }
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine("** ERROR GUARDANDO DATABASE **" + ex.Message);
                                }


                                Console.WriteLine("\n\n********** Final Producto ************\n\n");

                                System.Threading.Thread.Sleep(50);
                            }
                            catch (Exception ex)
                            {
                                ex.Message.ToString();

                                Console.WriteLine(i);

                                Console.WriteLine("Leyendo Producto - " + i.name + " - categoria: " + i.platform + " - precio: " + i.prices[0].value + " - región: " + i.regions + " _ " + DateTime.Now + "\n");
                            }
                        }

                        reader.Close();
                        response.Close();

                        Console.WriteLine("Finalizo lectura de productos - " + DateTime.Now + "\n");

                        eAux = 0;

                        //PASA UNA VEZ AL DÍA//
                        //if (DateTime.Now.Hour >= 6 && DateTime.Now.Hour <= 7)
                        //{


                        primerapasada = primerapasada + 1;
                    }
                    catch (WebException wex)
                    {
                        Console.WriteLine("Codewhosale Error - " + DateTime.Now + " - " + wex.Response.ToString());

                        if (wex.Response != null)
                        {
                            using (var errorResponse = (HttpWebResponse)wex.Response)
                            {
                                using (var reader = new StreamReader(errorResponse.GetResponseStream()))
                                {
                                    string error = reader.ReadToEnd();

                                    dynamic jsonDe = JsonConvert.DeserializeObject(error);

                                    Console.WriteLine(" Error web " + jsonDe + " - " + DateTime.Now);

                                    if (jsonDe.error == "invalid_token")
                                    {
                                        Console.WriteLine("Codewhosale Error : invalid_token " + DateTime.Now);

                                        #region token new
                                        try
                                        {
                                            WebRequest requesttoken = WebRequest.Create(urltoken + "grant_type=client_credentials&client_id=" + client_id + "&client_secret=" + client_secret);

                                            requesttoken.ContentType = "application/json;charset=UTF-8";

                                            requesttoken.Method = "POST";

                                            var response = (HttpWebResponse)requesttoken.GetResponse();

                                            Console.WriteLine("Codewhosale Error Get token - " + DateTime.Now + " - " + response.StatusDescription);

                                            var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

                                            var items = JsonConvert.DeserializeObject <dynamic>(responseString);

                                            Console.WriteLine("Codewhosale Error Get token " + DateTime.Now + " - " + responseString);

                                            var a = items.access_token;

                                            token = items.access_token;

                                            eAux = 0;

                                            #endregion
                                        }
                                        catch (WebException token_error)
                                        {
                                            eAux = 1;

                                            using (var token_error_str = (HttpWebResponse)token_error.Response)
                                            {
                                                var resp_error = token_error_str.GetResponseStream();

                                                using (StreamReader st_t_error = new StreamReader(resp_error))
                                                {
                                                    string string_resp = st_t_error.ReadToEnd();

                                                    dynamic jsonDe_resp = JsonConvert.DeserializeObject(string_resp);

                                                    Console.WriteLine("************************************************************************");

                                                    Console.WriteLine(" Error grave - generador de token " + jsonDe_resp + " - " + DateTime.Now);

                                                    Console.WriteLine("************************************************************************");
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            Console.WriteLine("A la mierda todo " + ex.Message.ToString() + DateTime.Now);

                                            eAux = 1;
                                        }
                                    }
                                }
                                //   eAux = 0;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Error de programación - " + ex.Message.ToString() + " - " + DateTime.Now);

                        eAux = 1;
                    }
                    // finalizo while
                    if (primerapasada > 0)
                    {
                        Console.WriteLine("15 mint para la proxima pasada - " + DateTime.Now);
                        System.Threading.Thread.Sleep(7200000); // 2 h
                    }
                }
            }
        }