示例#1
0
        public async Task <ActionResult> GetProductoDetallesById(int id)
        {
            ProductoDetallesVM productoDetalles = new ProductoDetallesVM();

            productoDetalles.producto = await _productosService.GetProductoById(id);

            if (productoDetalles.producto == null)
            {
                return(NotFound(new string[] { "No hay producto", "Consultar la documentación" }));
            }

            productoDetalles.vendedor = await _vendedoresService.ObtenerVendedorDesdeProducto(id);

            productoDetalles.opcionesProducto = await _opcionesProductosService.GetOpcionProductoById(id);

            productoDetalles.reviews = await _reviewsService.ObtenerReviewsByProductoId(id);

            productoDetalles.valoracionMedia = await _reviewsService.ObtenerValoracionMediaByProductoId(id);

            productoDetalles.totalComentarios = _reviewsService.CantidadComentariosByReviewList(productoDetalles.reviews);
            var categoria = await _categoriaService.GetCategoriaByProductoId(id);

            //var productoDetallesVMReadDTO = _mapper.Map<ProductoDetallesVMReadDTO>(productoDetalles);

            var productoDTO = new {
                id                = productoDetalles.producto.Id,
                titulo            = productoDetalles.producto.Titulo,
                descripcion       = productoDetalles.producto.Descripcion,
                fechaValidez      = productoDetalles.producto.FechaValidez,
                fechaAltaProducto = productoDetalles.producto.FechaAltaProducto,
                estado            = productoDetalles.producto.Estado,
                cantidadVisitas   = productoDetalles.producto.CantidadVisitas,
                condiciones       = productoDetalles.producto.Condiciones,
                categoria         = new { id = categoria.Id, nombre = categoria.Nombre },
                opcionProducto    = _mapper.Map <IEnumerable <OpcionProductoReadDTO> >(productoDetalles.opcionesProducto),
                vendedor          = new {
                    id                 = productoDetalles.vendedor.Id,
                    nombreEmpresa      = productoDetalles.vendedor.NombreDeEmpresa,
                    telefono           = productoDetalles.vendedor.Telefono,
                    paginaWeb          = productoDetalles.vendedor.Paginaweb,
                    cif                = productoDetalles.vendedor.CIF,
                    descripcionEmpresa = productoDetalles.vendedor.DescripcionEmpresa
                }
            };

            return(Ok(productoDTO));
        }
示例#2
0
        //Cuando el checkout es exitoso (se procesa el pago), se guarda la transacción en la tabla Visita con Cantidad=1
        public async Task <IActionResult> Comprado(int?productoId, int opcionId, int usuarioId)
        {
            Vendedor vendedor = await _vendedoresService.ObtenerVendedorDesdeProducto(productoId);

            Visita compra = new Visita()
            {
                FechaVisita      = DateTime.Now,
                OpcionProductoId = opcionId,
                ProductoId       = Convert.ToInt32(productoId),
                UsuarioId        = usuarioId,
                VendedorId       = vendedor.Id,
                Unidades         = 1
            };
            await _visitasService.CreateVisita(compra);

            return(RedirectToAction("MiCuenta", "Usuarios"));
        }
        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));
        }
示例#4
0
        public async Task <IActionResult> Detalles(int?id)
        {
            ProductoDetallesVM productoDetalles = new ProductoDetallesVM();

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

            productoDetalles.producto = await _productosService.GetProductoById(id);

            if (productoDetalles.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);

                ViewData["Usuario"] = usuario;
            }

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

            //ViewModel a pasar a la vista
            productoDetalles.vendedor = await _vendedoresService.ObtenerVendedorDesdeProducto(id);

            productoDetalles.opcionesProducto = await _opcionesProductosService.GetOpcionProductoById(id);

            productoDetalles.reviews = await _reviewsService.ObtenerReviewsByProductoId(id);

            productoDetalles.valoracionMedia = await _reviewsService.ObtenerValoracionMediaByProductoId(id);

            productoDetalles.totalComentarios = _reviewsService.CantidadComentariosByReviewList(productoDetalles.reviews);

            return(View(productoDetalles));
        }