Exemplo n.º 1
0
        /// <summary>
        /// 传入集合分页
        /// </summary>
        /// <typeparam name="S"></typeparam>
        /// <typeparam name="OrderByType"></typeparam>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="list">传入的集合</param>
        /// <param name="whereLambda"></param>
        /// <param name="orderbyLambad"></param>
        /// <returns></returns>
        public PageOfItems <S> PageOfItemBySelfModel <S, OrderByType>(int pageIndex, int pageSize, IQueryable <S> list, System.Linq.Expressions.Expression <Func <S, bool> > whereLambda, System.Linq.Expressions.Expression <Func <S, OrderByType> > orderbyLambad = null, bool isAsc = true)
        {
            var info = list.Where <S>(whereLambda);

            var list_return = new PageOfItems <S>()
            {
                PageNumber     = pageIndex,
                PageSize       = pageSize,
                TotalItemCount = info.Count()
            };
            IQueryable <S> orderList = null;

            if (orderbyLambad != null)
            {
                if (isAsc)
                {
                    orderList = info.OrderBy <S, OrderByType>(orderbyLambad).Skip <S>((pageIndex - 1) * pageSize).Take <S>(pageSize);
                }
                else
                {
                    orderList = info.OrderByDescending <S, OrderByType>(orderbyLambad).Skip <S>((pageIndex - 1) * pageSize).Take <S>(pageSize);
                }
            }
            else
            {
                orderList = info.Skip <S>((pageIndex - 1) * pageSize).Take <S>(pageSize);
            }
            list_return.AddRange(orderList.ToList());
            return(list_return);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 分页查询
        /// </summary>
        /// <typeparam name="s">排序字段</typeparam>
        /// <param name="pageIndex">页码</param>
        /// <param name="pageSize">分页尺寸</param>
        /// <param name="whereLambda">条件</param>
        /// <param name="orderbyLambad">排序条件</param>
        /// <param name="isAsc">正序:true  倒序:false </param>
        /// <returns></returns>
        public PageOfItems <T> PageOfItemsLoadPageEntites <s>(int pageIndex, int pageSize, System.Linq.Expressions.Expression <Func <T, bool> > whereLambda, System.Linq.Expressions.Expression <Func <T, s> > orderbyLambad = null, bool isAsc = true)
        {
            var info = _db.Set <T>().Where <T>(whereLambda);

            var list = new PageOfItems <T>()
            {
                PageNumber     = pageIndex,
                PageSize       = pageSize,
                TotalItemCount = info.Count()
            };

            IQueryable <T> orderList = null;

            if (isAsc)
            {
                orderList = info.OrderBy <T, s>(orderbyLambad).Skip <T>((pageIndex - 1) * pageSize).Take <T>(pageSize);
            }
            else
            {
                orderList = info.OrderByDescending <T, s>(orderbyLambad).Skip <T>((pageIndex - 1) * pageSize).Take <T>(pageSize);
            }

            list.AddRange(orderList.ToList());
            return(list);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 管理员账号 获取沙龙信息表
        /// </summary>
        /// <param name="pageIndex">当前页</param>
        /// <param name="pageSize">一页X条</param>
        /// <returns></returns>
        public PageOfItems <SalonSimple> GetSalonList(int pageIndex, int pageSize, string saleName = null, Func <IQueryable <t_salemanager> > func = null)
        {
            IQueryable <SalonSimple> salons = null;
            IQueryable <t_salon>     info   = null;
            var list = new PageOfItems <SalonSimple>()
            {
                PageNumber     = pageIndex,
                PageSize       = pageSize,
                TotalItemCount = (saleName == null || saleName == "") ? _db.t_salon.Count() : _db.t_salemanager.Where(c => c.sm_name.Contains(saleName)).Count()
            };
            var beginNum = (pageIndex - 1) * pageSize;

            info = saleName == null?_db.t_salon.OrderByDescending(a => a.s_date).Skip(beginNum).Take(pageSize) : _db.t_salon;

            if (func != null)
            {
                salons = from a in info
                         join b in func() on a.s_uid equals b.sm_s_uid
                         into pro
                         from x in pro.DefaultIfEmpty()
                         where ((saleName == null || saleName == "") ? true : x.sm_name.Contains(saleName))
                         select new SalonSimple
                {
                    Uid          = a.s_uid,
                    Cell         = a.s_cell,
                    Nickname     = a.s_nickname,
                    Logo         = a.s_logo,
                    Opendate     = a.s_opendate,
                    Status       = a.s_status,
                    Businessdate = a.s_businessdate,
                    LinkName     = a.s_linkname,
                    LastTime     = x.sm_editdate,
                    Sale_Id      = x.sm_id,
                    SaleName     = x.sm_name,
                    Recommend    = a.s_recommend
                };
            }
            else
            {
                salons = info.Select(a => new SalonSimple
                {
                    Uid          = a.s_uid,
                    Cell         = a.s_cell,
                    Nickname     = a.s_nickname,
                    Logo         = a.s_logo,
                    Opendate     = a.s_opendate,
                    Status       = a.s_status,
                    Businessdate = a.s_businessdate,
                    LinkName     = a.s_linkname
                });
            }
            list.AddRange(saleName == null ? salons.ToList() : salons.OrderByDescending(c => c.LastTime).Skip(beginNum).Take(pageSize).ToList());
            return(list);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 分页数据获取
        /// </summary>
        /// <param name="whereClause"></param>
        /// <param name="fields"></param>
        /// <param name="orderBy"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public IPageOfItems <T> GetPaged(string whereClause, string fields, string orderBy, int pageIndex, int pageSize)
        {
            whereClause = whereClause.Replace("'", "''");
            var pageOfItems = new PageOfItems <T>
            {
                PageIndex = pageIndex,
                PageSize  = pageSize
            };
            //var sqlClause =
            //    string.Format("EXEC [dbo].[up_GetPaged] '{0}','{1}' ,'{2}','{3}','{4}',{5},{6}",
            //    TableName, fields, whereClause, orderBy, PrimaryKeyName, pageIndex, pageSize);


            var parameters = new[] {
                new SqlParameter("@TableName", SqlDbType.NVarChar, 255),
                new SqlParameter("@Fields", SqlDbType.NVarChar, 255),
                new SqlParameter("@WhereClause", SqlDbType.NVarChar, 2000),
                new SqlParameter("@OrderBy", SqlDbType.NVarChar, 255),
                new SqlParameter("@PrimaryKey", SqlDbType.NVarChar, 255),
                new SqlParameter("@PageIndex", SqlDbType.Int, 4),
                new SqlParameter("@PageSize", SqlDbType.Int, 4),
            };

            parameters[0].Value = TableName;
            parameters[1].Value = string.IsNullOrEmpty(fields) ? "*" : fields;
            parameters[2].Value = whereClause ?? string.Empty;
            parameters[3].Value = orderBy ?? string.Empty;
            parameters[4].Value = PrimaryKeyName;
            parameters[5].Value = pageIndex;
            parameters[6].Value = pageSize;
            using (var reader = DbHelperSql.RunProcedure(ConnectionString, "up_GetPaged", parameters))
            {
                var list = FormatModel(reader, pageSize).ToReadOnlyCollection();
                if (reader.Tables.Count >= 2 && reader.Tables[1].Rows.Count > 0)
                {
                    var row = reader.Tables[1].Rows[0];
                    if (row["TotalRowCount"] == DBNull.Value)
                    {
                        pageOfItems.TotalItemCount = 0;
                    }
                    else
                    {
                        pageOfItems.TotalItemCount = (Int32)row["TotalRowCount"];
                    }
                }
                pageOfItems.AddRange(list);
            }
            return(pageOfItems);

            //using (var reader = ExecuteDataSet(sqlClause))
            //{
            //    var list = FormatModel(reader, pageSize).ToReadOnlyCollection();
            //    if (reader.Tables.Count >= 2 && reader.Tables[1].Rows.Count > 0)
            //    {
            //        var row = reader.Tables[1].Rows[0];
            //        if (row["TotalRowCount"] == DBNull.Value) pageOfItems.TotalItemCount = 0; else pageOfItems.TotalItemCount = (Int32)row["TotalRowCount"];
            //    }
            //    pageOfItems.AddRange(list);
            //}
            //return pageOfItems;
        }