public async Task <IActionResult> Edit(int?id, [Bind("Id,Descripcion,PrecioInicial,PrecioFinal,Descuento,StockInicial,CantidadVendida")] OpcionProducto opcionProducto)
        {
            if (id != opcionProducto.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    await _opcionesProductosService.EditOpcionProductoPost(opcionProducto);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!OpcionProductoExists(opcionProducto.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(opcionProducto));
        }
Ejemplo n.º 2
0
        public async Task <ProductosForIndex2VM> GetProductosForIndex2()
        {
            List <ProductoCategoria> listaProductosCategorias = await _context.ProductoCategoria.ToListAsync();

            List <Producto> listaProductos = await GetProductos();

            List <Categoria> listaCategorias = await _context.Categoria.ToListAsync();

            ProductosForIndex2VM listasProductosForIndex2 = new ProductosForIndex2VM();

            listasProductosForIndex2.ListasProductos = new List <List <ProductoPrimeraOpcionProductoVM> >();

            foreach (Categoria categoria in listaCategorias)
            {
                List <ProductoPrimeraOpcionProductoVM> newListaProducto = new List <ProductoPrimeraOpcionProductoVM>();
                foreach (ProductoCategoria productoCategoria in listaProductosCategorias)
                {
                    if (productoCategoria.CategoriaId == categoria.Id)
                    {
                        OpcionProducto opcion = await _context.OpcionProducto.Where(m => m.ProductoId == productoCategoria.ProductoId).FirstOrDefaultAsync();

                        ProductoPrimeraOpcionProductoVM productoConOpcion = new ProductoPrimeraOpcionProductoVM()
                        {
                            producto       = productoCategoria.Producto,
                            opcionProducto = opcion
                        };
                        newListaProducto.Add(productoConOpcion);
                    }
                }
                listasProductosForIndex2.ListasProductos.Add(newListaProducto);
            }
            return(listasProductosForIndex2);
        }
Ejemplo n.º 3
0
        public OpcionProducto crearDesdeJson(string json, int productoId)
        {
            var parseado = JsonDocument.Parse(json);
            var algo     = parseado.RootElement;

            var    descripcion   = algo.GetProperty("descripcion");
            string descripcionVM = descripcion.ToString();

            var   precioInicial   = algo.GetProperty("precioInicio");
            float precioInicialVM = float.Parse(precioInicial.ToString());

            var   precioFinal   = algo.GetProperty("precioFin");
            float precioFinalVM = float.Parse(precioFinal.ToString());

            var    descuento   = algo.GetProperty("descuento");
            string descuentoVM = descuento.ToString();

            var    unidades   = algo.GetProperty("stockInicial");
            string unidadesVM = unidades.ToString();

            OpcionProducto opcionProducto = new OpcionProducto()
            {
                ProductoId      = productoId,
                Descripcion     = descripcionVM,
                PrecioInicial   = precioInicialVM,
                PrecioFinal     = precioFinalVM,
                Descuento       = descuentoVM,
                StockInicial    = Convert.ToInt32(unidadesVM),
                CantidadVendida = 0,
            };

            return(opcionProducto);
        }
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            OpcionProducto opcionProducto = await _opcionesProductosService.EditOpcionProductoGet(id);

            if (opcionProducto == null)
            {
                return(NotFound());
            }
            return(View(opcionProducto));
        }
        public async Task <IActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            OpcionProducto opcionProducto = await _opcionesProductosService.GetOpcionProductoByHisId(id);

            if (opcionProducto == null)
            {
                return(NotFound());
            }

            return(View(opcionProducto));
        }
 public async Task <IActionResult> Create(OpcionProductoCreateVM opcionProductoCreateVM)
 {
     if (ModelState.IsValid)
     {
         if (opcionProductoCreateVM.OpcionProducto1 != null)
         {
             OpcionProducto opcionProducto = _opcionesProductosService.crearDesdeJson(opcionProductoCreateVM.OpcionProducto1, opcionProductoCreateVM.Producto.Id);
             await _opcionesProductosService.CreateOpcionProductoPost(opcionProducto);
         }
         if (opcionProductoCreateVM.OpcionProducto2 != null)
         {
             OpcionProducto opcionProducto = _opcionesProductosService.crearDesdeJson(opcionProductoCreateVM.OpcionProducto2, opcionProductoCreateVM.Producto.Id);
             await _opcionesProductosService.CreateOpcionProductoPost(opcionProducto);
         }
         if (opcionProductoCreateVM.OpcionProducto3 != null && opcionProductoCreateVM.OpcionProducto3 != "undefined")
         {
             OpcionProducto opcionProducto = _opcionesProductosService.crearDesdeJson(opcionProductoCreateVM.OpcionProducto3, opcionProductoCreateVM.Producto.Id);
             await _opcionesProductosService.CreateOpcionProductoPost(opcionProducto);
         }
         return(RedirectToAction("Detalles", "Productos", new { id = opcionProductoCreateVM.Producto.Id }));
     }
     return(View(opcionProductoCreateVM));
 }
Ejemplo n.º 7
0
        public async Task <IActionResult> Confirmar(int?id, int opcionElegida)
        {
            Usuario usuario = await _usuariosService.GetUsuarioByActiveIdentityUser(_userManager.GetUserId(User));

            Producto producto = await _productosService.GetProductoById(id);

            List <OpcionProducto> opciones = await _opcionesProductosService.GetOpcionProductoById(id);

            OpcionProducto   opcion           = opciones[opcionElegida - 1];
            ProductoVendedor productoVendedor = producto.ProductoVendedor[0];
            Vendedor         vendedor         = await _vendedoresService.GetVendedorById(productoVendedor.VendedorId);

            UsuarioProductoVM modelo = new UsuarioProductoVM
            {
                producto = producto,
                usuario  = usuario,
                opcion   = opcion
            };
            int   precioFinal = Convert.ToInt32(opcion.PrecioFinal * 100);
            float fee         = vendedor.Fee;
            int   helduFee    = Convert.ToInt32(precioFinal * (fee / 100));

            StripeConfiguration.ApiKey = "sk_test_51GvJEQL9UURBAADxXJtmn6ZmPepnp0Bkt4Hwl3y53I7rjWCQKa4wj3FSfkm2V4ZOIV67I6LQDmfvPmZ16eMh9LcE0057FViwnl";

            var service       = new PaymentIntentService();
            var createOptions = new PaymentIntentCreateOptions
            {
                PaymentMethodTypes = new List <string>
                {
                    "card",
                },
                Amount               = precioFinal,
                Currency             = "eur",
                ApplicationFeeAmount = helduFee,
                ReceiptEmail         = "*****@*****.**",

                Metadata = new Dictionary <string, string>
                {
                    { "ProductoId", Convert.ToString(producto.Id) },
                    { "Producto", producto.Titulo },
                    { "OpcionId", opcion.Id.ToString() },
                    { "Opcion", opcion.Descripcion },
                    { "PrecioOriginal", opcion.PrecioInicial.ToString() },
                    { "UsuarioId", Convert.ToString(usuario.Id) },
                    { "Usuario", usuario.NombreUsuario },
                    { "VendedorId", vendedor.Id.ToString() },
                    { "Vendedor", vendedor.NombreDeEmpresa }
                },
                TransferData = new PaymentIntentTransferDataOptions()
                {
                    Destination = "acct_1H08zjLhTBm3kv5q"
                },
                //TransferData = new PaymentIntentTransferDataOptions
                //{
                //     Destination = "acct_1H08zjLhTBm3kv5q",
                //},
            };
            var intent = service.Create(createOptions);

            ViewData["ClientSecret"] = intent.ClientSecret;

            return(View(modelo));
        }
Ejemplo n.º 8
0
 public async Task EditOpcionProductoPost(OpcionProducto opcionProducto)
 {
     _context.Update(opcionProducto);
     await _context.SaveChangesAsync();
 }
Ejemplo n.º 9
0
 public async Task CreateOpcionProductoPost(OpcionProducto opcionProducto)
 {
     _context.Add(opcionProducto);
     await _context.SaveChangesAsync();
 }