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)); }
//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)); }
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)); }