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)); }
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)); }
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)); }
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)); }