Beispiel #1
0
        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);
        }
Beispiel #2
0
 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);
     }
 }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        /// <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);
            }
        }