Esempio n. 1
0
        public TvSeriesModel Get(int season)
        {
            try
            {
                Logger.Trace("Begin => Get");
                Logger.DebugFormat("Parameters [season={0}]", season);

                TvSeries result = _tvSeriesRepository.Get(season);

                if (result == null)
                {
                    Logger.DebugFormat("Season season={0} not found", season);
                    throw new HttpResponseException(HttpStatusCode.NotFound);
                }

                return TvSeriesModel.CopyFrom(result);
            }
            catch (Exception err)
            {
                Logger.Error("Error in Get", err);
                throw;
            }
            finally
            {
                Logger.Trace("End => Get");
            }
        }
        public IEnumerable <TvSeriesModel> List()
        {
            try
            {
                Logger.Trace("Begin => List");
                IEnumerable <TvSeries> results = _tvSeriesRepository.List();

                if (results == null)
                {
                    Logger.Debug("No Television Seasons found");
                    throw new HttpResponseException(HttpStatusCode.NoContent);
                }

                return(results.Select(t => TvSeriesModel.CopyFrom(t)));
            }
            catch (Exception err)
            {
                Logger.Error("Error in List", err);
                throw;
            }
            finally
            {
                Logger.Trace("End => List");
            }
        }
        public IEnumerable <SeasonModel> GetItemsAsync(TvSeriesModel series, CancellationToken ct)
        {
            // curate seasons
            var list = new ModelList <SeasonModel>();

            GenerateItem <SeasonModel>(list, 43);
            GenerateItem <SeasonModel>(list, 44);
            GenerateItem <SeasonModel>(list, 45);
            return(list);
        }
        public static T GenerateItem <T>(int number) where T : class
        {
            var numberString = number.ToString();
            var imageNumber  = number.ToString("00");

            if (typeof(T) == typeof(MovieModel))
            {
                var item = new MovieModel()
                {
                    ID                       = "movie" + imageNumber,
                    ContentRating            = "G",
                    ItemType                 = ItemTypes.Movie,
                    Title                    = "Movie " + numberString,
                    UserRating               = 3.0 + _random.NextDouble() * 2.0,
                    Genre                    = ((Genres)_random.Next(6)).ToString(),
                    ImageFeatured            = SAMPLE_IMAGE_PATH_ROOT + string.Format("Featured_Image{0}.jpg", imageNumber),
                    ImageCustom              = SAMPLE_IMAGE_PATH_ROOT + string.Format("Custom_Movie_Image{0}.jpg", imageNumber),
                    ImageThumbLandscapeSmall = SAMPLE_IMAGE_PATH_ROOT + string.Format("Thumb_Landscape_Small_Image{0}.jpg", imageNumber),
                    ImageThumbLandscapeLarge = SAMPLE_IMAGE_PATH_ROOT + string.Format("Thumb_Landscape_Large_Image{0}.jpg", imageNumber),
                    MediaUrl                 = SAMPLE_MEDIA_FILE,
                    Description              = SAMPLE_DESCRIPTION,
                    Length                   = _random.Next(50, 200),
                    ReleaseDate              = GenerateRandomDate(),
                    Cast                     = new ModelList <PersonModel>(GenerateCast("movie" + imageNumber)),
                    Creators                 = new ModelList <PersonModel>(GenerateCrew("movie" + imageNumber)),
                    CriticReviews            = new ModelList <ReviewModel>(GetReviews("movie" + imageNumber)),
                    ContentRatings           = new ModelList <RatingModel>(GetRatings("movie" + imageNumber)),
                    //Flag = "Just Added",
                };
                //if (number == 1) item.Flag = "Featured";
                return(item as T);
            }
            else if (typeof(T) == typeof(TrailerModel))
            {
                var item = new TrailerModel()
                {
                    ID                       = "movie" + imageNumber,
                    ContentRating            = "G",
                    ItemType                 = ItemTypes.Movie,
                    Title                    = "Movie " + numberString,
                    UserRating               = 3.0 + _random.NextDouble() * 2.0,
                    Genre                    = ((Genres)_random.Next(6)).ToString(),
                    ImageFeatured            = SAMPLE_IMAGE_PATH_ROOT + string.Format("Featured_Image{0}.jpg", imageNumber),
                    ImageCustom              = SAMPLE_IMAGE_PATH_ROOT + string.Format("Custom_Movie_Image{0}.jpg", imageNumber),
                    ImageThumbLandscapeSmall = SAMPLE_IMAGE_PATH_ROOT + string.Format("Thumb_Landscape_Small_Image{0}.jpg", imageNumber),
                    ImageThumbLandscapeLarge = SAMPLE_IMAGE_PATH_ROOT + string.Format("Thumb_Landscape_Large_Image{0}.jpg", imageNumber),
                    MediaUrl                 = SAMPLE_MEDIA_FILE,
                    Description              = SAMPLE_DESCRIPTION,
                    Length                   = _random.Next(1, 5),
                    ReleaseDate              = new DateTime(2015, 1, 15),
                    Cast                     = new ModelList <PersonModel>(GenerateCast("movie" + imageNumber)),
                    Creators                 = new ModelList <PersonModel>(GenerateCrew("movie" + imageNumber)),
                    CriticReviews            = new ModelList <ReviewModel>(GetReviews("movie" + imageNumber)),
                    ContentRatings           = new ModelList <RatingModel>(GetRatings("movie" + imageNumber)),
                };
                return(item as T);
            }
            else if (typeof(T) == typeof(TvSeriesModel))
            {
                var item = new TvSeriesModel()
                {
                    ID                       = "series" + imageNumber,
                    ItemType                 = ItemTypes.TvSeries,
                    Title                    = "TV Series " + number.ToString(),
                    UserRating               = 3.0 + _random.NextDouble() * 2.0,
                    Genre                    = ((Genres)_random.Next(6)).ToString(),
                    ImageFeatured            = SAMPLE_IMAGE_PATH_ROOT + string.Format("Featured_Image{0}.jpg", imageNumber),
                    ImageCustom              = SAMPLE_IMAGE_PATH_ROOT + string.Format("Custom_TV_Image{0}.jpg", imageNumber),
                    ImageThumbLandscapeSmall = SAMPLE_IMAGE_PATH_ROOT + string.Format("Thumb_Landscape_Small_Image{0}.jpg", imageNumber),
                    ImageThumbLandscapeLarge = SAMPLE_IMAGE_PATH_ROOT + string.Format("Thumb_Landscape_Large_Image{0}.jpg", imageNumber),
                    MediaUrl                 = SAMPLE_MEDIA_FILE,
                    Description              = SAMPLE_DESCRIPTION,
                    ContentRating            = "TV-13",
                    Length                   = _random.Next(22, 60),
                    Cast                     = new ModelList <PersonModel>(GenerateCast("series" + imageNumber)),
                    Creators                 = new ModelList <PersonModel>(GenerateCrew("series" + imageNumber)),
                    CriticReviews            = new ModelList <ReviewModel>(GetReviews("series" + imageNumber)),
                    ContentRatings           = new ModelList <RatingModel>(GetRatings("series" + imageNumber)),
                };
                item.Seasons = new ModelList <SeasonModel>();
                item.Seasons.Add(GenerateItem <SeasonModel>(1));
                item.Seasons.Add(GenerateItem <SeasonModel>(2));
                item.Seasons.Add(GenerateItem <SeasonModel>(3));
                return(item as T);
            }
            else if (typeof(T) == typeof(TvEpisodeModel))
            {
                var item = new TvEpisodeModel()
                {
                    ID                       = "episode" + imageNumber,
                    ContentRating            = "TV-G",
                    ItemType                 = ItemTypes.TvEpisode,
                    Title                    = "Episode " + number.ToString(),
                    UserRating               = 3.0 + _random.NextDouble() * 2.0,
                    Genre                    = "Drama",
                    ImageFeatured            = SAMPLE_IMAGE_PATH_ROOT + string.Format("Featured_Image{0}.jpg", imageNumber),
                    ImageCustom              = SAMPLE_IMAGE_PATH_ROOT + string.Format("Custom_TV_Image{0}.jpg", imageNumber),
                    ImageThumbLandscapeSmall = SAMPLE_IMAGE_PATH_ROOT + string.Format("Thumb_Landscape_Small_Image{0}.jpg", imageNumber),
                    ImageThumbLandscapeLarge = SAMPLE_IMAGE_PATH_ROOT + string.Format("Thumb_Landscape_Large_Image{0}.jpg", imageNumber),
                    MediaUrl                 = SAMPLE_MEDIA_FILE,
                    Description              = SAMPLE_DESCRIPTION,
                    Length                   = _random.Next(22, 60),
                    SeasonNumber             = (number % 3) + 1,
                    EpisodeNumber            = number,
                    ReleaseDate              = GenerateRandomDate(),
                    Cast                     = new ModelList <PersonModel>(GenerateCast("series" + imageNumber)),
                    Creators                 = new ModelList <PersonModel>(GenerateCrew("series" + imageNumber)),
                    CriticReviews            = new ModelList <ReviewModel>(GetReviews("series" + imageNumber)),
                    ContentRatings           = new ModelList <RatingModel>(GetRatings("series" + imageNumber)),
                };
                return(item as T);
            }
            else if (typeof(T) == typeof(SeasonModel))
            {
                var item = new SeasonModel()
                {
                    ID            = "season" + imageNumber,
                    ContentRating = "TV-G",
                    ItemType      = ItemTypes.TvSeries,
                    SeasonNumber  = number,
                    UserRating    = 3.0 + _random.NextDouble() * 2.0,
                    Genre         = ((Genres)_random.Next(6)).ToString(),
                    Description   = SAMPLE_DESCRIPTION
                };

                switch (item.SeasonNumber)
                {
                case 1:
                    GenerateItem <TvEpisodeModel>(item.Episodes, 41);
                    GenerateItem <TvEpisodeModel>(item.Episodes, 42);
                    GenerateItem <TvEpisodeModel>(item.Episodes, 43);
                    break;

                case 2:
                    GenerateItem <TvEpisodeModel>(item.Episodes, 44);
                    GenerateItem <TvEpisodeModel>(item.Episodes, 45);
                    GenerateItem <TvEpisodeModel>(item.Episodes, 46);
                    break;

                default:
                    GenerateItem <TvEpisodeModel>(item.Episodes, 47);
                    GenerateItem <TvEpisodeModel>(item.Episodes, 48);
                    GenerateItem <TvEpisodeModel>(item.Episodes, 49);
                    break;
                }

                return(item as T);
            }

            throw new NotImplementedException();
        }