public ActionResult Index(string sortOrder, string CurrentSort, int?page) { int pageSize = 10; int pageIndex = 1; pageIndex = page.HasValue ? Convert.ToInt32(page) : 1; ViewBag.CurrentSort = sortOrder; //sortOrder = String.IsNullOrEmpty(sortOrder) ? "USER_NO" : sortOrder; IPagedList <TRN_EXPENSE> pagedIns = null; IQueryable <TRN_EXPENSE> expenses = db.TRN_EXPENSE.AsQueryable(); SearchExpense dcrSearch = (Session["EXPENSESearch"] == null) ? new SearchExpense() : (SearchExpense)Session["EXPENSESearch"]; if (Request.QueryString.HasKeys() && !page.HasValue) { Tuple <SearchExpense, IQueryable <TRN_EXPENSE> > tmp = setSearch(expenses, dcrSearch, false); expenses = tmp.Item2; dcrSearch = tmp.Item1; } else if (page.HasValue && dcrSearch.dirty) { dcrSearch = (SearchExpense)Session["EXPENSESearch"]; Tuple <SearchExpense, IQueryable <TRN_EXPENSE> > tmp = setSearch(expenses, dcrSearch, true); expenses = tmp.Item2; dcrSearch = tmp.Item1; } else if (page.HasValue && Session["EXPENSESearch"] == null) { dcrSearch = new SearchExpense(); } Session["EXPENSESearch"] = dcrSearch; pagedIns = expenses.OrderByDescending(m => m.INSERT_TIME).ToPagedList(pageIndex, pageSize); ViewBag.expSearch = dcrSearch; ViewBag.USER_NO = new SelectList(db.SEC_USERS.Where(a => a.USER_TYPE_NO == (decimal)EUserTypes.ZonalManager) .ToList(), "USER_NO", "USER_FULL_NAME"); return(View(pagedIns)); }
// // GET: /Expense/ public Tuple <SearchExpense, IQueryable <TRN_EXPENSE> > setSearch(IQueryable <TRN_EXPENSE> dcrs, SearchExpense dcrSearch, bool search) { dcrSearch = (dcrSearch.dirty) ? dcrSearch : new SearchExpense(); if (!string.IsNullOrEmpty(Request.QueryString["USER_NO"]) || search) { dcrSearch.userNo = (!search) ? decimal.Parse(Request.QueryString["USER_NO"].ToString()) : dcrSearch.userNo; if (!string.IsNullOrEmpty(dcrSearch.userNo.ToString())) { dcrs = dcrs.Where(s => s.SEC_USERS.USER_NO == dcrSearch.userNo); } } else { dcrSearch.userNo = null; } if (!string.IsNullOrEmpty(Request.QueryString["userName"]) || search) { dcrSearch.userName = (!search) ? Request.QueryString["userName"] : dcrSearch.userName; if (!string.IsNullOrEmpty(dcrSearch.userName)) { dcrs = dcrs.Where(s => s.SEC_USERS.USER_NAME.Contains(dcrSearch.userName)); } } else { dcrSearch.userName = ""; } if (!string.IsNullOrEmpty(Request.QueryString["userContact"]) || search) { dcrSearch.userContact = (!search) ? Request.QueryString["userContact"] : dcrSearch.userContact; if (!string.IsNullOrEmpty(dcrSearch.userContact)) { dcrs = dcrs.Where(s => s.SEC_USERS.USER_CONTACT.Contains(dcrSearch.userContact)); } } else { dcrSearch.userContact = ""; } if (!string.IsNullOrEmpty(Request.QueryString["dateExpFrom"]) || search) { dcrSearch.dateExpFrom = (!search) ? DateTime.Parse(Request.QueryString["dateExpFrom"]) : dcrSearch.dateExpFrom; dcrs = dcrs.Where(s => s.INSERT_TIME >= dcrSearch.dateExpFrom); } else { dcrSearch.dateExpFrom = null; } if (!string.IsNullOrEmpty(Request.QueryString["dateExpTo"]) || search) { dcrSearch.dateExpTo = (!search) ? DateTime.Parse(Request.QueryString["dateExpTo"]) : dcrSearch.dateExpTo; dcrs = dcrs.Where(s => s.INSERT_TIME <= dcrSearch.dateExpTo); } else { dcrSearch.dateExpTo = null; } dcrSearch.dirty = true; return(new Tuple <SearchExpense, IQueryable <TRN_EXPENSE> >(dcrSearch, dcrs)); }