/// <summary></summary>
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            IPageParams pageParams = filterContext.ActionParameters.Values.OfType <IPageParams>().FirstOrDefault();

            if (pageParams == null)
            {
                base.OnActionExecuting(filterContext); return;
            }


            var request  = filterContext.HttpContext.Request;
            var response = filterContext.HttpContext.Response;

            if (pageParams.PageSize > 0)
            {
                response.Cookies.Add(new HttpCookie(_sizeParam)
                {
                    Value   = pageParams.PageSize.ToString(),
                    Expires = DateTime.Now.AddYears(1),
                });
            }
            else
            {
                pageParams.PageSize = _defaultSize;
                try { pageParams.PageSize = int.Parse(request.Cookies[_sizeParam].Value); } catch { }
            }

            filterContext.Controller.ViewData[_sizeParam] = pageParams.PageSize;
            base.OnActionExecuting(filterContext);
        }
示例#2
0
 public FindStoresByChainIdQuery(Guid chainId, IPageParams pageParams)
 {
     ChainId    = chainId;
     PageParams = pageParams;
 }
示例#3
0
 public static int GetCurrentPage(this IPageParams @this)
 => @this.StartIndex / @this.Length;
 public FindProductListPagedQuery(IPageParams pageParams)
 {
     PageParams = pageParams;
 }
示例#5
0
 public FindProductListQuoteQuery(Guid productListId, decimal latitude, decimal longitude, IPageParams pageParams)
 {
     ProductListId = productListId;
     Latitude      = latitude;
     Longitude     = longitude;
     PageParams    = pageParams ?? throw new ArgumentNullException(nameof(pageParams));
 }
示例#6
0
        public static async Task <PagedCollection <T> > ToPagedCollectionAsync <T>(this IQueryable <T> query, IPageParams pageParams)
        {
            var data = await query
                       .Skip(pageParams.StartIndex)
                       .Take(pageParams.Length)
                       .ToListAsync();

            var count = data.Any() ? await query.CountAsync() : 0;

            return(new PagedCollection <T>(data, count, pageParams.GetCurrentPage()));
        }
 public async Task <IList <PasswordSite> > GetAllPasswords(string userId, string search, ISortParams sortParams, IPageParams pageParams)
 => await dataContext.PasswordSites
 .Where(x => x.UserId == userId)
 .Where(string.IsNullOrEmpty(search), x => x.NameSite.Contains(search) || x.UserNameSite.Contains(search))
 .OrderBy(sortParams, "nameSite", x => x.NameSite)
 .ThenBy(sortParams, "userNameSite", x => x.UserNameSite)
 .ThenBy(sortParams, "password", x => x.Password)
 .Skip(pageParams.Skip)
 .Take(pageParams.Take)
 .ToListAsync();
示例#8
0
 public FindStoreChainPagedQuery(IPageParams pageParams)
 {
     PageParams = pageParams;
 }