Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #5
0
        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,
            });
        }
Example #6
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;
        }