public static async Task<ListModel<Employee>> GetAll(int pagenum = 1, int pagesize = Pager.DEFAULT_PAGE_SIZE, Sort sort = null) { ListModel<Employee> l = new ListModel<Employee>(); if (sort == null) sort = new Sort(DEFAULT_SORT_COLUMN, DEFAULT_SORT_DIR); ISession se = NHibernateHelper.CurrentSession; int total = await Task.Run(() => { return se.QueryOver<Employee>().Future().Count(); }); Pager pager = new Pager(total, pagenum, pagesize); int has_next = pager.HasNext ? 1 : 0; int has_prev = pager.HasPrev ? 1 : 0; ICriteria cr = se.CreateCriteria<Employee>("employee"); if (sort.Column == "d.Title" || sort.Column == "es.Name" || sort.Column == "dept.Name") SetJoinCriteria(cr, sort); GetOrder(sort, cr); cr.SetFirstResult(pager.LowerBound); cr.SetMaxResults(pager.PageSize); IList<Employee> list = await Task.Run(() => { return cr.List<Employee>(); }); l.ItemMsg = pager.GetItemMessage(); l.HasNext = has_next; l.HasPrev = has_prev; l.NextPage = pager.PageNum + 1; l.PrevPage = pager.PageNum - 1; l.List = list; l.SortColumn = sort.Column; l.SortDir = sort.Direction; l.Page = pager.PageNum; l.TotalPage = pager.TotalPages; return l; }
public static async Task<ListModel<Attendance>> GetFilterBy(Dictionary<string, object> filters, int pagenum = 1, int pagesize = Pager.DEFAULT_PAGE_SIZE, Sort sort = null) { ListModel<Attendance> l = new ListModel<Attendance>(); if (sort == null) sort = new Sort(DEFAULT_SORT_COLUMN, DEFAULT_SORT_DIR); ISession se = NHibernateHelper.CurrentSession; ICriteria cr = se.CreateCriteria<Attendance>("attendance"); GetFilterCriteria(cr, filters, sort); ICriteria crCount = se.CreateCriteria<Attendance>("attendance"); GetFilterCriteria(crCount, filters, sort); int total = crCount.SetProjection(Projections.Count(Projections.Id())).UniqueResult<int>(); Pager pager = new Pager(total, pagenum, pagesize); int has_next = pager.HasNext ? 1 : 0; int has_prev = pager.HasPrev ? 1 : 0; GetOrder(sort, cr); cr.SetFirstResult(pager.LowerBound); cr.SetMaxResults(pager.PageSize); IList<Attendance> list = await Task.Run(() => { return cr.List<Attendance>(); }); l.ItemMsg = pager.GetItemMessage(); l.HasNext = has_next; l.HasPrev = has_prev; l.NextPage = pager.PageNum + 1; l.PrevPage = pager.PageNum - 1; l.List = list; l.SortColumn = sort.Column; l.SortDir = sort.Direction; l.Page = pager.PageNum; l.TotalPage = pager.TotalPages; return l; }
public static async Task<string> GetItemMessage(string keyword, int pagenum, int pagesize) { int total = 0; Pager pager = null; string m = null; ISession se = NHibernateHelper.CurrentSession; if (string.IsNullOrEmpty(keyword)) { total = await Task.Run(() => { return se.QueryOver<Department>().Future().Count(); }); pager = new Pager(total, pagenum, pagesize); m = pager.GetItemMessage(); } else { ICriteria cr = se.CreateCriteria<Department>("dept"); GetFilterCriteria(cr, keyword); total = await Task.Run(() => { return cr.SetProjection(Projections.Count(Projections.Id())).UniqueResult<int>(); }); pager = new Pager(total, pagenum, pagesize); m = pager.GetItemMessage(); } return m; }
public static async Task<string> GetItemMessage(Dictionary<string, object> filters, int pagenum, int pagesize) { int total = 0; Pager pager = null; string m = null; ISession se = NHibernateHelper.CurrentSession; if (filters == null) { total = await Task.Run(() => { return se.QueryOver<User>().Future().Count(); }); pager = new Pager(total, pagenum, pagesize); m = pager.GetItemMessage(); } else { ICriteria cr = se.CreateCriteria<User>("user"); GetFilterCriteria(cr, filters); total = await Task.Run(() => { return cr.SetProjection(Projections.Count(Projections.Id())).UniqueResult<int>(); }); pager = new Pager(total, pagenum, pagesize); m = pager.GetItemMessage(); } return m; }