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