// GET: Series/Details/5 public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } var seasons = await _context.Seasons.Include(s => s.Episodes) .FirstOrDefaultAsync(m => m.ID == id); List <EpisodesViewModel> episodes = new List <EpisodesViewModel>(); foreach (var episode in seasons.Episodes) { episodes.Add(new EpisodesViewModel() { ID = episode.Season.ID, Titel = episode.Season.Titel, Nr = episode.Season.Nr }); } if (seasons == null) { return(NotFound()); } var model = new SeasonDetailViewModel() { ID = seasons.ID, Titel = seasons.Titel, Episodes = episodes, Rating = seasons.Rating }; return(View(model)); }
public IActionResult View(SeasonDetailViewModel episodeVM, int seriesId, int seasonId) { int index = episodeVM.Episodes.Count - 1; EpisodeViewModel newEpisode = episodeVM.Episodes[index]; Episode episode = new Episode { Title = newEpisode.Title, Description = newEpisode.Description, PlayTime = new TimeSpan(newEpisode.PlayTimeHours, newEpisode.PlayTimeMinutes, 0), ReleaseDate = newEpisode.ReleaseDate, SeasonId = seasonId }; _database.Episodes.Add(episode); _database.SaveChanges(); return(RedirectToAction("View", new { SeriesId = seriesId, SeasonId = seasonId })); }
public IActionResult View(int seriesId, int seasonId) { Season season = _database.Seasons.FirstOrDefault(a => a.SeriesId == seriesId && a.Id == seasonId); Series series = _database.Series.FirstOrDefault(a => a.Id == seriesId); List <Season> otherSeasons = _database.Seasons.Where(a => a.SeriesId == seriesId).ToList(); List <Episode> episodes = _database.Episodes.Where(a => a.SeasonId == seasonId).ToList(); SeasonDetailViewModel seasonDetail = new SeasonDetailViewModel() { SeriesTitle = series.Title, SeasonId = seasonId, SeriesId = seriesId, SeasonNumber = season.SeasonNumber, Photo = series.Photo }; int episodenumber = 1; episodes.OrderBy(a => a.ReleaseDate); seasonDetail.Episodes = new List <EpisodeViewModel>(); foreach (var episode in episodes) { EpisodeViewModel episodeVM = new EpisodeViewModel { EpisodeNumber = episodenumber, Description = episode.Description, PlayTime = episode.PlayTime, ReleaseDate = episode.ReleaseDate, Title = episode.Title }; seasonDetail.Episodes.Add(episodeVM); episodenumber++; } seasonDetail.Episodes.Add(new EpisodeViewModel { ReleaseDate = DateTime.Now }); foreach (var seasonItem in otherSeasons) { List <Episode> episodeItems = _database.Episodes.Where(a => a.SeasonId == seasonItem.Id).ToList(); DateTime startDate = episodeItems[0].ReleaseDate; DateTime endDate = episodeItems[episodeItems.Count - 1].ReleaseDate; SeasonViewModel seasonVM = new SeasonViewModel { Id = seasonItem.Id, SeasonNumber = seasonItem.SeasonNumber, Episodes = seasonItem.Episodes.Count(), StartDate = startDate, EndDate = endDate }; seasonDetail.Seasons.Add(seasonVM); } return(View(seasonDetail)); }
// GET: Seasons/Details/5 public async Task <IActionResult> Details(long?id) { if (id == null) { return(NotFound()); } string userId = User.FindFirstValue(ClaimTypes.NameIdentifier); var season = await _context.Seasons .Include(s => s.Series) .Include(s => s.Episodes) .FirstOrDefaultAsync(m => m.Id == id); var viewModel = new SeasonDetailViewModel { Id = season.Id, SeriesId = season.SeriesId, Name = season.Name, Overview = season.Overview, SeasonNumber = season.SeasonNumber, }; if (season.AiredFrom != null) { viewModel.AiredFrom = season.AiredFrom.Value.ToString("dd MMMM yyyy"); } viewModel.Episodes = new List <EpisodeOnSeasonViewModel>(); List <DataPointLine> LineChartDataPoints = new List <DataPointLine>(); foreach (var episode in season.Episodes) { var episodeViewModel = new EpisodeOnSeasonViewModel { Id = episode.Id, Name = episode.Name, Overview = episode.Overview, EpisodeNumber = episode.SeasonEpisodeNumber, EpisodeSiteRating = episode.UserRating }; if (episode.Aired != null) { episodeViewModel.Aired = episode.Aired.Value.ToString("dd MMMM yyyy"); } var userEpisode = await _context.UserEpisodes .Where(x => x.EpisodeId == episode.Id && x.UserId == userId) .FirstOrDefaultAsync(); if (userEpisode != null) { episodeViewModel.Rating = (EpisodeRating)userEpisode.Rating; } viewModel.Episodes.Add(episodeViewModel); var dataPoint = new DataPointLine(Convert.ToDouble(episode.UserRating), "E" + episode.SeasonEpisodeNumber.ToString()); LineChartDataPoints.Add(dataPoint); } ViewBag.DataPointsLine = JsonConvert.SerializeObject(LineChartDataPoints); viewModel.Episodes = viewModel.Episodes.OrderBy(x => x.EpisodeNumber).ToList(); if (season == null) { return(NotFound()); } return(View(viewModel)); }