public static Pagelist <T> PageBy <T, TKey>(this IQueryable <T> query, PageInputDto page, Expression <Func <T, TKey> > orderBy) { var pagelist = new Pagelist <T>(); var result = new List <T>(); if (page.PageSize <= 0) { if (page.Isdesc) { result = query.OrderByDescending(orderBy).ToList(); } else { result = query.ToList(); } } else { if (page.Isdesc) { result = query.OrderByDescending(orderBy).Skip(page.PageSize * (page.Page - 1)).Take(page.PageSize).ToList(); } else { result = query.Skip(page.PageSize * (page.Page - 1)).Take(page.PageSize).ToList(); } } pagelist.Data.AddRange(result); pagelist.TotalCount = query.Count(); pagelist.PageSize = page.PageSize; return(pagelist); }
public List <object> NextItemsInPage(int start, int count) { try { List <object> o; if (start + count > Pagelist.Count) { o = Pagelist.GetRange(start, Pagelist.Count - start); return(o); } o = Pagelist.GetRange(start, count); return(o); } catch (Exception ex) { WebErrorLog.ErrorInstence.StartErrorLog(ex); return(null); } }
public virtual async Task <Pagelist <TEntity> > GetAsync(FilterDefinition <TEntity> filter, PageInputDto pageInput) { if (filter == null) { filter = new BsonDocument(); //mongodb过滤不允许为空 } var pagedList = new Pagelist <TEntity>(); var result = new List <TEntity>(); var entitys = Collection.Find(filter); var count = await entitys.CountDocumentsAsync(); if (pageInput.PageSize == 0) { //排序 if (pageInput.Isdesc) { result = await entitys.SortByDescending(d => d.Id).ToListAsync(); } else { result = await entitys.ToListAsync(); } } else { //排序 if (pageInput.Isdesc) { result = await entitys.SortByDescending(d => d.Id).Skip((pageInput.Page - 1) * pageInput.PageSize).Limit(pageInput.PageSize).ToListAsync(); } else { result = await entitys.Skip((pageInput.Page - 1) *pageInput.PageSize).Limit(pageInput.PageSize).ToListAsync(); } } pagedList.Data.AddRange(result); pagedList.TotalCount = count; pagedList.PageSize = pageInput.PageSize; return(pagedList); }
/// <summary> /// 获得视频详情及播放列表 /// </summary> /// <param name="bvid"></param> /// <returns></returns> public static VideoViewData GetVideoInfo(string bvid, long aid, string referer, bool isBackup = false) { string url; if (bvid != null) { url = $"https://api.bilibili.com/x/web-interface/view?bvid={bvid}"; } else if (aid >= 0) { url = $"https://api.bilibili.com/x/web-interface/view?aid={aid}"; } else { return(null); } // 采用备用的api,只能获取cid if (isBackup) { string backupUrl = $"https://api.bilibili.com/x/player/pagelist?bvid={bvid}&jsonp=jsonp"; url = backupUrl; } string response = Utils.RequestWeb(url, referer); try { VideoView videoView; if (isBackup) { Pagelist pagelist = JsonConvert.DeserializeObject <Pagelist>(response); videoView = new VideoView { code = pagelist.code, message = pagelist.message, ttl = pagelist.ttl }; videoView.data.pages = pagelist.data; } else { videoView = JsonConvert.DeserializeObject <VideoView>(response); } if (videoView != null) { if (videoView.data != null) { return(videoView.data); } else { return(null); // 进入备选的url中 //return GetVideoInfo(bvid, referer, true); } } else { return(null); } } catch (JsonReaderException e) { Console.WriteLine("GetVideoInfo()发生JsonReader异常: {0}", e); return(null); } catch (Exception e) { Console.WriteLine("GetVideoInfo()发生异常: {0}", e); return(null); } }