Example #1
0
        public async Task <MovieRes> GetDetailsAsync(MovieGetDetailsReq req)
        {
            ProjectionGetDetailsByMovieIdReq projectionReq = new ProjectionGetDetailsByMovieIdReq
            {
                MovieId = req.Id
            };
            IList <ProjectionRes> projections = await _projectionsRepository.GetProjectionsForMovieAsync(projectionReq);

            MovieRes res = await _dbContext.Movies
                           .Where(m => m.Id == req.Id)
                           .Select(m => new MovieRes
            {
                Id          = m.Id,
                Name        = m.Name,
                TrailerURL  = m.TrailerUrl,
                PosterURL   = m.PosterUrl,
                Duration    = m.Duration,
                Synopsis    = m.Synopsis,
                Director    = m.Director,
                Projections = projections,

                GenreNames = m.GenreLinks
                             .Select(mgl => mgl.MovieGenre.Name)
                             .ToList(),

                ActorNames = m.ActorMovieLinks
                             .Select(aml => aml.Actor.Name)
                             .ToList()
            }).FirstOrDefaultAsync();

            return(res);
        }
        public async Task <IList <ProjectionRes> > GetProjectionsForMovieAsync(ProjectionGetDetailsByMovieIdReq req)
        {
            IList <ProjectionRes> res = await _dbContext.Projections
                                        .Where(p => p.MovieId == req.MovieId)
                                        .Select(p => new ProjectionRes
            {
                Id             = p.Id,
                ProjectionTime = p.ProjectionTime,
                MovieId        = p.MovieId,
                MovieName      = p.Movie.Name
                                 //CinemaHall =  _dbContext.CinemaHalls
                                 //    .Where(c => c.Id == p.CinemaHallId)
                                 //    .Select(c => new CinemaHall
                                 //    {

                                 //    }).FirstOrDefault(),
            }).ToListAsync();

            return(res);
        }