コード例 #1
0
        public async Task <IActionResult> Index(CancellationToken token)
        {
            if (!Request.Query.ContainsKey("companyId"))
            {
                return(NotFound());
            }

            Request.Query.TryGetValue("companyId", out var companyId);
            var company = await _companyRepository.FindByIdAsync(long.Parse(companyId), token);

            var posters = new Dictionary <long, string>();

            var currentFilms = (await _filmRepository.FindByCompanyIdAsync(company.Id, token))
                               .Where(p => p.IsActive && p.ReleaseDate < DateTime.Now).ToList();

            foreach (var film in currentFilms)
            {
                posters[film.Id] = _blobRepository.Get(film.Id);
            }

            var upcomingFilms = (await _filmRepository.FindByCompanyIdAsync(company.Id, token))
                                .Where(p => p.IsActive && p.ReleaseDate > DateTime.Now).ToList();

            foreach (var film in upcomingFilms)
            {
                posters[film.Id] = _blobRepository.Get(film.Id);
            }

            var viewModel = new HomeViewModel
            {
                Company       = company,
                CurrentFilms  = currentFilms,
                UpcomingFilms = upcomingFilms,
                Posters       = posters
            };

            return(View(viewModel));
        }
コード例 #2
0
        public async Task <IActionResult> All(CancellationToken token)
        {
            AddBreadcrumb("Films", "/Film/All");

            var company = await GetCompany(token);

            var films = await _filmRepository.FindByCompanyIdAsync(company.Id, token);

            var viewModel = new FilmAllViewModel
            {
                Films = films.OrderByDescending(p => p.IsActive).ThenByDescending(p => p.ReleaseDate).ToList()
            };

            return(View(viewModel));
        }
コード例 #3
0
        public async Task <IActionResult> Index(CancellationToken token)
        {
            if (!Request.Query.ContainsKey("companyId") || !Request.Query.ContainsKey("filmId"))
            {
                return(NotFound());
            }

            Request.Query.TryGetValue("companyId", out var companyId);
            var company = await _companyRepository.FindByIdAsync(long.Parse(companyId), token);

            Request.Query.TryGetValue("filmId", out var filmId);
            var currentFilm = await _filmRepository.FindByIdAsync(long.Parse(filmId), token);

            var poster = _blobRepository.Get(currentFilm.Id);

            var posters       = new Dictionary <long, string>();
            var upcomingFilms = (await _filmRepository.FindByCompanyIdAsync(company.Id, token))
                                .Where(p => p.IsActive && p.ReleaseDate > DateTime.Now).ToList();

            foreach (var film in upcomingFilms)
            {
                posters[film.Id] = _blobRepository.Get(film.Id);
            }

            var filmSessions = (await _filmSessionRepository.FindByFilmIdAsync(currentFilm.Id, token))
                               .Where(p => p.StartTime > DateTime.Now);

            var groupedSessions = filmSessions.GroupBy(p => p.Hall.Cinema.Name);

            var viewModel = new FilmViewModel
            {
                Company         = company,
                Film            = currentFilm,
                Poster          = poster,
                GroupedSessions = groupedSessions.ToList(),
                UpcomingFilms   = upcomingFilms,
                Posters         = posters
            };

            return(View(viewModel));
        }
コード例 #4
0
        public async Task <IActionResult> Create(CancellationToken token)
        {
            AddBreadcrumb("Film session", "/FilmSession/All");
            AddBreadcrumb("Create", "/FilmSession/Create");

            var company = await GetCompany(token);

            var films = await _filmRepository.FindByCompanyIdAsync(company.Id, token);

            var halls = await _hallRepository.FindByCompanyIdAsync(company.Id, token);

            var groupedHalls = halls.GroupBy(p => p.Cinema.Name).OrderBy(p => p.Key);

            var viewModel = new FilmSessionCreateViewModel
            {
                Films        = films.Where(p => p.IsActive).ToList(),
                GroupedHalls = groupedHalls.ToList(),
                CompanyId    = company.Id
            };

            return(View(viewModel));
        }