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)); }
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); }
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)); }
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)); }
public async Task EditOpcionProductoPost(OpcionProducto opcionProducto) { _context.Update(opcionProducto); await _context.SaveChangesAsync(); }
public async Task CreateOpcionProductoPost(OpcionProducto opcionProducto) { _context.Add(opcionProducto); await _context.SaveChangesAsync(); }