public async Task <IList <Movie> > GetMoviesByCriteria(SearchCriteria criteria) { //Prepare action DiscoverMovieAction action = await CreateDiscoveryAction(criteria); //Execute discovery action /* OUT for NOW, only get 1 page of results * List<MovieSearchResultItem> results = new List<MovieSearchResultItem>(); * PagedResultList<MovieSearchResultItem> discoveryResult; * do * { * discoveryResult = await action.Execute(_Client); * results.AddRange(discoveryResult.results); * } * while (discoveryResult.page < discoveryResult.total_pages); * //Get movie details * IList<MovieDetailsResultItem> movieDetails = await GetMovieDetails(results);*/ PagedResultList <MovieSearchResultItem> discoveryResult = await action.Execute(_Client); //Get movie details IList <MovieDetailsResultItem> movieDetails = await GetMovieDetails(discoveryResult.results); //Process results List <Movie> result = new List <Movie>(); foreach (var item in movieDetails) { result.Add(TransformToDomain(item)); } return(result); }
protected ListViewModel <TTarget> CreateListViewModel <TTarget, TSource>(PagedResultList <TSource> data, int start, int pageSize, string search) { return(new ListViewModel <TTarget> { TotalCount = data.TotalCount, List = Mapper.Map <List <TTarget> >(data.List), PageSize = pageSize, Start = start, SearchQuery = search }); }
public virtual ActionResult GetSyndicationItems(int start, int count) { var client = GetNewsClient(); var feeds = client.GetNewsSyndicationItems(start, count, NewsTypeEnumContract.Web, PortalTypeValue); var result = new PagedResultList <NewsSyndicationItemExtendedContract> { TotalCount = feeds.TotalCount, List = Mapper.Map <List <NewsSyndicationItemExtendedContract> >(feeds.List), }; return(Json(result)); }
/// <summary> /// Gets all of T from the data store by pagging. /// </summary> /// <param name="paging">paging criteria to determine which page of T to return.</param> /// <param name="includes">a params expression array of property names to return in each item of the entity object graph.</param> /// <returns>RepositoryResultList of T.</returns> public PagedResultList <T> Listado(PagingCriteria paging, params Expression <Func <T, object> >[] includes) { PagedResultList <T> result = new PagedResultList <T>(); var data = DbSet.Where(x => true); int totalRecords = data.Count(); foreach (var include in includes) { data = data.Include(include); } result.Entities = data.AsQueryable() .OrderBy(paging.SortBy + " " + paging.SortDirection) .Skip((paging.PageNumber - 1) * paging.PageSize) .Take(paging.PageSize); result.PagedMetadata = new PagedMetadata(totalRecords, paging.PageSize, paging.PageNumber); return(result); }
/// <summary> /// Finds all of T from the data store with a pagging. /// </summary> /// <param name="paging">paging criteria to determine which page of T to return.</param> /// <param name="whereClause">where clause to filter entities.</param> /// <param name="includes">a params expression array of property names to return in each item of the entity object graph.</param> /// <returns>RepositoryResultList of T.</returns> public override PagedResultList <TEntity> GetAll(PagingCriteria paging, Expression <Func <TEntity, bool> > whereClause, params Expression <Func <TEntity, object> >[] includes) { PagedResultList <TEntity> result = new PagedResultList <TEntity>(); var data = GetAll(); int totalRecords = data.Count(whereClause); foreach (var include in includes) { data = data.Include(include); } result.Entities = data.AsQueryable() .Where(whereClause) .OrderBy(paging.SortBy + " " + paging.SortDirection) .Skip((paging.PageNumber - 1) * paging.PageSize) .Take(paging.PageSize); result.PagedMetadata = new PagedMetadata(totalRecords, paging.PageSize, paging.PageNumber); return(result); }