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

            Producto producto = await _productosService.GetProductoById(id);

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

            if (User.IsInRole("cliente"))
            {
                //Genero una nueva transacción con los datos del usuario, el producto y el vendedor
                Usuario usuario = await _usuariosService.GetUsuarioByActiveIdentityUser(_userManager.GetUserId(User));

                ProductoVendedor productoVendedor = await _productosVendedoresService.ProductoVendedorByProductoId(id);

                await _VisitasService.CreateVisitaWithUsuarioAndProductoVendedor(usuario, productoVendedor);
            }

            //Modifico el producto actual agregando una unidad a la columa "CantidadVisitas" de la tabla
            await _productosService.AddCantidadVisitasProductoById(id);

            return(View(producto));
        }
        public async Task <ActionResult <Producto> > GetProductoById(int id)
        {
            Producto producto = await _productosService.GetProductoById(id);

            if (producto == null)
            {
                return(NotFound());
            }
            var productoReadDTO = _mapper.Map <ProductoReadDTO>(producto);

            return(Ok(productoReadDTO));
        }
Exemple #3
0
        // GET: Mercados/Create
        public async Task <IActionResult> Create(int?ProductoId)
        {
            List <Producto> listaProductos = new List <Producto>()
            {
                await _productosService.GetProductoById(ProductoId)
            };

            ViewData["ProductoId"] = new SelectList(listaProductos, "Id", "Titulo");
            ViewData["UsuarioId"]  = new SelectList(await _usuariosService.GetUsuariosListByActiveIdentityUser(_userManager.GetUserId(User)), "Id", "NombreUsuario");
            return(View());
        }
        public async Task <IActionResult> Create(int productoId)
        {
            ViewData["Vendedor"] = await _vendedoresService.ObtenerVendedorDesdeProducto(productoId);

            OpcionProductoCreateVM opcionProductoCreateVM = new OpcionProductoCreateVM()
            {
                Producto = await _productosService.GetProductoById(productoId)
            };
            Producto producto = opcionProductoCreateVM.Producto;

            var           json             = producto.Condiciones;
            var           parseado         = JsonDocument.Parse(json);
            var           algo             = parseado.RootElement;
            List <string> listaCondiciones = JsonConvert.DeserializeObject <List <string> >(json);

            ViewData["Condiciones"] = listaCondiciones;
            return(View(opcionProductoCreateVM));
        }
Exemple #5
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));
        }