public IActionResult Create(TvProgramEpisode tvProgramEpisode)
 {
     if (ModelState.IsValid) {
         _context.TvEpisodes.Add(tvProgramEpisode);
         _context.SaveChanges();
         return RedirectToAction("Index");
     }
     ViewData["TvProgramId"] = new SelectList(_context.TvPrograms, "TvProgramId", "TvProgram", tvProgramEpisode.TvProgramId);
     return View(tvProgramEpisode);
 }
Exemplo n.º 2
0
        protected TvProgramEpisode GetOrCreateTvProgramEpisodeFromListingInfo(TvProgram program, IAddTvBroadCastListingInfo info)
        {
            TvProgramEpisode episode;

            // first check if our new info has both series and episode number
            if (info.SeriesNumber.HasValue && info.EpisodeNumber.HasValue) {

                // check in the database for matching ProgramId, SeriesNumber, EpisodeNumber - that's a definitive link
                episode = FindExistingEpisodeByNumber(program, info.SeriesNumber, info.EpisodeNumber);
                if (
                    episode == null // nothing found at all
                    || episode.EpisodeTitle != info.EpisodeTitle // an in-exact match which we'll duplicate
                    || episode.EpisodeDescription != info.EpisodeDescription
                ) {

                    // create one with this info and save it
                    episode = new TvProgramEpisode {
                        TvProgram = program,
                        EpisodeTitle = info.EpisodeTitle,
                        EpisodeDescription = info.EpisodeDescription,
                        SeriesNumber = info.SeriesNumber,
                        EpisodeNumber = info.EpisodeNumber
                    };
                    TvEpisodes.Add(episode);

                }

            }
            // If the series and episode aren't both set check if the episodetitle is set
            else {

                // if it is, check for an exact match on episodetitle and episodedescription
                episode = FindExistingEpisodeByDescription(program, info.EpisodeTitle, info.EpisodeDescription);
                if (
                    episode == null // nothing found at all
                    || episode.SeriesNumber != info.SeriesNumber // an in-exact match which we'll duplicate
                    || episode.EpisodeNumber != info.EpisodeNumber // an in-exact match which we'll duplicate
                ) {

                    // create a new one and save it
                    episode = new TvProgramEpisode {
                        TvProgram = program,
                        EpisodeTitle = info.EpisodeTitle,
                        EpisodeDescription = info.EpisodeDescription,
                        SeriesNumber = info.SeriesNumber,
                        EpisodeNumber = info.EpisodeNumber
                    };
                    TvEpisodes.Add(episode);

                }

            }

            return episode;
        }