示例#1
0
        public override Result <IEnumerable <ArdCategoryInfoDto> > GetCategories(string targetUrl, ContinuationToken continuationToken = null)
        {
            continuationToken ??= new ContinuationToken()
            {
                { _categoryLevel, 0 }
            };

            var currentLevel = continuationToken.GetValueOrDefault(_categoryLevel) as int? ?? 0;

            Log.Debug($"GetCategories current Level: {currentLevel}");

            var json          = WebClient.GetWebData <JObject>(targetUrl, proxy: WebRequest.GetSystemWebProxy());
            var categoryInfos = currentLevel switch
            {
                0 => CategoryDeserializer.ParseWidgets(json, hasSubCategories: true), // load A - Z
                1 => LoadCategoriesWithDetails(json),                                 // load e.g. Abendschau - skip level, (load infos from nextlevel) for each category load url and read synopsis
                //2 => categoryDeserializer.ParseTeasers(json), // videos...
                _ => throw new ArgumentOutOfRangeException(),
            };

            var newToken = new ContinuationToken(continuationToken);

            newToken[_categoryLevel] = currentLevel + 1;
            return(new Result <IEnumerable <ArdCategoryInfoDto> >
            {
                ContinuationToken = newToken,
                Value = categoryInfos
            });
        }
示例#2
0
        /// <inheritdoc />
        public override Result <IEnumerable <ArdCategoryInfoDto> > GetCategories(string targetUrl, ContinuationToken continuationToken = null)
        {
            continuationToken ??= new ContinuationToken()
            {
                { _categoryLevel, 0 }
            };
            var currentLevel = continuationToken.GetValueOrDefault(_categoryLevel) as int? ?? 0;

            var categoryInfos = currentLevel switch
            {
                0 => LastSevenDays(),
                1 => PartnerNames(targetUrl),
                _ => throw new ArgumentOutOfRangeException(),
            };

            var newToken = new ContinuationToken(continuationToken);

            newToken[_categoryLevel] = currentLevel + 1;
            return(new Result <IEnumerable <ArdCategoryInfoDto> >
            {
                ContinuationToken = newToken,
                Value = categoryInfos
            });
        }