示例#1
0
        private async Task <bool> GetSeasons()
        {
            try
            {
                var query = new SeasonQuery
                {
                    UserId   = AuthenticationService.Current.LoggedInUserId,
                    SeriesId = SelectedTvSeries.Id,
                    Fields   = new[]
                    {
                        ItemFields.ParentId,
                        ItemFields.MediaSources,
                        ItemFields.SyncInfo
                    },
                    IsMissing        = App.SpecificSettings.ShowMissingEpisodes,
                    IsVirtualUnaired = App.SpecificSettings.ShowUnairedEpisodes
                };

                Log.Info("Getting seasons for TV Show [{0}] ({1})", SelectedTvSeries.Name, SelectedTvSeries.Id);

                var seasons = await ApiClient.GetSeasonsAsync(query);

                Seasons = seasons.Items.OrderBy(x => x.IndexNumber).ToList();
                return(true);
            }
            catch (HttpException ex)
            {
                Utils.HandleHttpException("GetSeasons()", ex, NavigationService, Log);

                App.ShowMessage(AppResources.ErrorSeasons);
                return(false);
            }
        }
        public async Task <IActionResult> GetSeasons([FromQuery] SeasonQuery seasonQuery)
        {
            var seasons = await _seasonService.GetAsync(seasonQuery);

            var returnSeasons = _mapper.Map <PaginatedList <SeasonListDto> >(seasons);

            return(Ok(returnSeasons));
        }
示例#3
0
        public async Task <PaginatedList <Season> > GetAsync(SeasonQuery seasonQuery)
        {
            var query = Context.Seasons.AsQueryable();

            var columnsMap = new Dictionary <string, Expression <Func <Season, object> > >()
            {
                ["id"]   = s => s.Id,
                ["name"] = s => s.Name
            };

            query = query.Sort(seasonQuery, columnsMap);

            return(await PaginatedList <Season> .CreateAsync(query, seasonQuery.PageNumber, seasonQuery.PageSize));
        }
示例#4
0
        public async Task GetSeasons_WhenCalled_ReturnSeasonsFromDb()
        {
            var seasonQuery = new SeasonQuery
            {
                PageNumber      = 1,
                PageSize        = 10,
                SortBy          = "name",
                IsSortAscending = true
            };

            var expectedSeasons = new PaginatedList <Season>
            {
                Pagination = new Pagination
                {
                    PageNumber = 1,
                    PageSize   = 10
                },
                Items = new List <Season>()
                {
                    new Season {
                        Id = 1
                    },
                    new Season {
                        Id = 2
                    },
                    new Season {
                        Id = 3
                    },
                }
            };

            _seasonService.Setup(s => s.GetAsync(seasonQuery)).ReturnsAsync(expectedSeasons);

            var result = await _seasonsController.GetSeasons(seasonQuery);

            var okObjectResult      = result as OkObjectResult;
            var okObjectResultValue = okObjectResult.Value as PaginatedList <SeasonListDto>;

            Assert.That(result, Is.TypeOf <OkObjectResult>());

            Assert.That(okObjectResultValue, Is.Not.Null);
            Assert.That(okObjectResultValue.Pagination.PageNumber, Is.EqualTo(1));
            Assert.That(okObjectResultValue.Pagination.PageSize, Is.EqualTo(10));
            Assert.That(okObjectResultValue.Items.Count(), Is.EqualTo(3));
        }
示例#5
0
        private Task <ItemsResult> GetSeasons(ItemListViewModel viewModel)
        {
            var item = ItemViewModel.Item;

            var query = new SeasonQuery
            {
                UserId = _sessionManager.CurrentUser.Id,
                Fields = new[]
                {
                    ItemFields.PrimaryImageAspectRatio,
                    ItemFields.DateCreated,
                    ItemFields.Overview
                },
                SeriesId = item.Id
            };

            return(_apiClient.GetSeasonsAsync(query, CancellationToken.None));
        }
示例#6
0
        public async Task GetAsync_WhenCalled_GetSeasonsFromDb()
        {
            var seasonQuery = new SeasonQuery
            {
                PageNumber      = 1,
                PageSize        = 10,
                SortBy          = "name",
                IsSortAscending = true
            };

            var expectedSeasons = new PaginatedList <Season>
            {
                Pagination = new Pagination
                {
                    PageNumber = 1,
                    PageSize   = 10
                },
                Items = new List <Season>()
                {
                    new Season {
                        Id = 1
                    },
                    new Season {
                        Id = 2
                    },
                    new Season {
                        Id = 3
                    },
                }
            };

            _seasonRepository.Setup(s => s.GetAsync(seasonQuery)).ReturnsAsync(expectedSeasons);

            var result = await _seasonService.GetAsync(seasonQuery);

            Assert.That(result, Is.Not.Null);
            Assert.That(result, Is.EqualTo(expectedSeasons));
        }
 public async Task<PaginatedList<Season>> GetAsync(SeasonQuery seasonQuery)
 {
     return await _seasonRepository.GetAsync(seasonQuery);
 }