示例#1
0
        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();
            }
        }
示例#3
0
        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());
        }
示例#4
0
        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;
        }