public async Task <ActionResult <PeliculaVisualizarDTO> > Get(int id) { var pelicula = await _context.Peliculas.Where(x => x.Id == id) .Include(x => x.GenerosPelicula).ThenInclude(x => x.Genero) .Include(x => x.PeliculasActor).ThenInclude(x => x.Persona) .FirstOrDefaultAsync(); if (pelicula == null) { return(NotFound()); } var promedioVotos = 4; var votoUsuario = 5; pelicula.PeliculasActor = pelicula.PeliculasActor.OrderBy(x => x.Orden).ToList(); var model = new PeliculaVisualizarDTO(); model.Pelicula = pelicula; model.Generos = pelicula.GenerosPelicula.Select(x => x.Genero).ToList(); model.Actores = pelicula.PeliculasActor.Select(x => new Persona { Nombre = x.Persona.Nombre, Foto = x.Persona.Foto, Personaje = x.Personaje, Id = x.PersonaId }).ToList(); model.PromedioVotos = promedioVotos; model.VotoUsuario = votoUsuario; return(model); }
public async Task <PeliculaVisualizarDTO> Get(int id) { var pelicula = await context.Peliculas .Where(x => x.Id == id) .AsNoTracking() .Include(x => x.GenerosPelicula).ThenInclude(x => x.Genero) .Include(x => x.PeliculasActor).ThenInclude(x => x.Persona) .FirstOrDefaultAsync(); if (pelicula == null) { return(null); } //todo: vote var promedioVotos = 0.0; var votoUsuario = 0; if (await context.VotosPeliculas.AnyAsync(x => x.PeliculaId == id)) { promedioVotos = await context.VotosPeliculas .Where(x => x.PeliculaId == id) .AverageAsync(x => x.Voto); if (httpContextAccessor.HttpContext.User.Identity.IsAuthenticated) { var user = await userManager.FindByEmailAsync(httpContextAccessor.HttpContext.User.Identity.Name); var userId = user.Id; var votoUsuarioDB = await context.VotosPeliculas .FirstOrDefaultAsync(x => x.PeliculaId == id && x.UserId == userId); if (votoUsuarioDB != null) { votoUsuario = votoUsuarioDB.Voto; } } } pelicula.PeliculasActor = pelicula.PeliculasActor.OrderBy(x => x.Orden).ToList(); var model = new PeliculaVisualizarDTO { Pelicula = pelicula, Generos = pelicula.GenerosPelicula.Select(x => x.Genero).ToList(), Actores = pelicula.PeliculasActor.Select(x => new Persona { Nombre = x.Persona.Nombre, Foto = x.Persona.Foto, Personaje = x.Personaje, Id = x.Persona.Id }).ToList(), PromedioVotos = promedioVotos, VotoUsuario = votoUsuario }; return(model); }
public async Task <ActionResult <PeliculaVisualizarDTO> > Get(int id) { var pelicula = await context.Peliculas.Where(x => x.Id == id) .Include(x => x.GenerosPelicula).ThenInclude(x => x.Genero) .Include(x => x.PeliculasActor).ThenInclude(x => x.Persona) .FirstOrDefaultAsync(); if (pelicula == null) { return(NotFound()); } // todo: sistema de votacion var promedioVotos = 0.0; var votoUsuario = 0; if (await context.VotosPeliculas.AnyAsync(x => x.PeliculaId == id)) { promedioVotos = await context.VotosPeliculas.Where(x => x.PeliculaId == id) .AverageAsync(x => x.Voto); if (HttpContext.User.Identity.IsAuthenticated) { var user = await userManager.FindByEmailAsync(HttpContext.User.Identity.Name); var userId = user.Id; var votoUsuarioDB = await context.VotosPeliculas .FirstOrDefaultAsync(x => x.PeliculaId == id && x.UserId == userId); if (votoUsuarioDB != null) { votoUsuario = votoUsuarioDB.Voto; } } } pelicula.PeliculasActor = pelicula.PeliculasActor.OrderBy(x => x.Orden).ToList(); var model = new PeliculaVisualizarDTO(); model.Pelicula = pelicula; model.Generos = pelicula.GenerosPelicula.Select(x => x.Genero).ToList(); model.Actores = pelicula.PeliculasActor.Select(x => new Persona { Nombre = x.Persona.Nombre, Foto = x.Persona.Foto, Personaje = x.Personaje, Id = x.PersonaId }).ToList(); model.PromedioVotos = promedioVotos; model.VotoUsuario = votoUsuario; return(model); }
public async Task <PeliculaVisualizarDTO> Get(int id) { var pelicula = await context.Peliculas.Where(x => x.Id == id) .AsNoTracking() .Include(x => x.GenerosPelicula).ThenInclude(x => x.Genero) .Include(x => x.PeliculasActor).ThenInclude(x => x.Persona) .FirstOrDefaultAsync(); if (pelicula == null) { return(null); } // todo: sistema de votacion var promedioVotos = 0.0; var votoUsuario = 0; if (await context.VotosPeliculas.AnyAsync(x => x.PeliculaId == id)) { promedioVotos = await context.VotosPeliculas.Where(x => x.PeliculaId == id) .AverageAsync(x => x.Voto); var userId = await authenticationStateService.GetCurrentUserId(); if (userId != null) { var votoUsuarioDB = await context.VotosPeliculas .FirstOrDefaultAsync(x => x.PeliculaId == id && x.UserId == userId); if (votoUsuarioDB != null) { votoUsuario = votoUsuarioDB.Voto; } } } pelicula.PeliculasActor = pelicula.PeliculasActor.OrderBy(x => x.Orden).ToList(); var model = new PeliculaVisualizarDTO(); model.Pelicula = pelicula; model.Generos = pelicula.GenerosPelicula.Select(x => x.Genero).ToList(); model.Actores = pelicula.PeliculasActor.Select(x => new Persona { Nombre = x.Persona.Nombre, Foto = x.Persona.Foto, Personaje = x.Personaje, Id = x.PersonaId }).ToList(); model.PromedioVotos = promedioVotos; model.VotoUsuario = votoUsuario; return(model); }
public async Task <ActionResult <PeliculaActualizacionDTO> > PutGet(int id) { ActionResult <PeliculaVisualizarDTO> peliculaActionResult = await Get(id); if (peliculaActionResult.Result is NotFoundResult) { return(NotFound()); } PeliculaVisualizarDTO peliculaVisualizarDTO = peliculaActionResult.Value; List <int> generosSeleccionadosIds = peliculaVisualizarDTO.Generos.Select(p => p.Id).ToList(); List <Genero> generosNoSeleccionados = await _context.Generos.Where(g => !generosSeleccionadosIds.Contains(g.Id)).ToListAsync(); return(new PeliculaActualizacionDTO { Pelicula = peliculaVisualizarDTO.Pelicula, GenerosNoSeleccionados = generosNoSeleccionados, GenerosSeleccionados = peliculaVisualizarDTO.Generos, Actores = peliculaVisualizarDTO.Actores, }); }
public async Task <ActionResult <PeliculaVisualizarDTO> > Get(int id) { Pelicula pelicula = await _context.Peliculas.Where(x => x.Id == id) .Include(x => x.GeneroPeliculas) .ThenInclude(x => x.Genero) .Include(x => x.PeliculaActors) .ThenInclude(x => x.Persona).FirstOrDefaultAsync(); if (pelicula == null) { return(NotFound()); } // todo: sistema de votacion double promedioVotos = 0.0; int votoUsuario = 0; if (await _context.VotoPeliculas.AnyAsync(x => x.PeliculaId == id)) { promedioVotos = await _context.VotoPeliculas.Where(x => x.PeliculaId == id) .AverageAsync(x => x.Voto); if (HttpContext.User.Identity.IsAuthenticated) { IdentityUser user = await _userManager.FindByEmailAsync(HttpContext.User.Identity.Name); //string userId = user.Id; VotoPelicula votoUsuarioDB = await _context.VotoPeliculas .FirstOrDefaultAsync(x => x.PeliculaId == id && x.UserId == user.Id); if (votoUsuarioDB != null) { votoUsuario = votoUsuarioDB.Voto; } } } pelicula.PeliculaActors = pelicula.PeliculaActors.OrderBy(x => x.Orden).ToList(); var model = new PeliculaVisualizarDTO(); model.Pelicula = pelicula; model.Generos = pelicula.GeneroPeliculas.Select(x => x.Genero).ToList(); model.Actores = pelicula.PeliculaActors.Select(x => new Persona { Nombre = x.Persona.Nombre, Foto = x.Persona.Foto, Personaje = x.Personaje, Id = x.PersonaId }).ToList(); model.PromedioVotos = promedioVotos; model.VotoUsuario = votoUsuario; return(model); // pelicula.PeliculaActors = pelicula.PeliculaActors.OrderBy(x => x.Orden).ToList(); //PeliculaVisualizarDTO model = new PeliculaVisualizarDTO //{ // Pelicula = pelicula, // Generos = pelicula.GeneroPeliculas.Select(x => x.Genero).ToList(), // Actores = pelicula.PeliculaActors.Select(x => new Persona // { // Nombre = x.Persona.Nombre, // Foto = x.Persona.Foto, // Personaje = x.Personaje, // Id = x.PersonaId, // }).ToList(), // PromedioVotos = promedioVotos, // VotoUsuario = votoUsuario //}; //return model; }