public async Task Votar(VotoPelicula votoPelicula) { var userId = await authenticationStateService.GetCurrentUserId(); var votoActual = await context.VotosPeliculas .FirstOrDefaultAsync(x => x.PeliculaId == votoPelicula.PeliculaId && x.UserId == userId); if (votoActual == null) { votoPelicula.UserId = userId; votoPelicula.FechaVoto = DateTime.Today; context.Add(votoPelicula); await context.SaveChangesAsync(); } else { votoActual.Voto = votoPelicula.Voto; await context.SaveChangesAsync(); } }
public async Task Votar(VotoPelicula votoPelicula) { var user = await userManager.FindByEmailAsync(httpContextAccessor.HttpContext.User.Identity.Name); var userId = user.Id; var votoActual = await context.VotosPeliculas .FirstOrDefaultAsync(x => x.PeliculaId == votoPelicula.PeliculaId && x.UserId == userId); if (votoActual == null) { votoPelicula.UserId = userId; votoPelicula.FechaVoto = DateTime.Today; context.Add(votoPelicula); await context.SaveChangesAsync(); } else { votoActual.Voto = votoPelicula.Voto; await context.SaveChangesAsync(); } }
public async Task <ActionResult> Votar(VotoPelicula votoPelicula) { IdentityUser user = await userManager.FindByEmailAsync(HttpContext.User.Identity.Name); string userId = user.Id; VotoPelicula votoActual = await context.VotoPeliculas .FirstOrDefaultAsync(x => x.PeliculaId == votoPelicula.PeliculaId && x.UserId == userId); if (votoActual == null) { votoPelicula.UserId = userId; votoPelicula.FechaVoto = DateTime.Today; context.Add(votoPelicula); await context.SaveChangesAsync(); } else { votoActual.Voto = votoPelicula.Voto; await context.SaveChangesAsync(); } return(NoContent()); }
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; }