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 <SET_SPECIMEN> pagedIns = null; IQueryable <SET_SPECIMEN> specs = db.SET_SPECIMEN.AsQueryable(); SpecimenSearch dcrSearch = (Session["SPECSearch"] == null) ? new SpecimenSearch() : (SpecimenSearch)Session["SPECSearch"]; if (Request.QueryString.HasKeys() && !page.HasValue) { Tuple <SpecimenSearch, IQueryable <SET_SPECIMEN> > tmp = setSearch(specs, dcrSearch, false); specs = tmp.Item2; dcrSearch = tmp.Item1; } else if (page.HasValue && dcrSearch.dirty) { dcrSearch = (SpecimenSearch)Session["SPECSearch"]; Tuple <SpecimenSearch, IQueryable <SET_SPECIMEN> > tmp = setSearch(specs, dcrSearch, true); specs = tmp.Item2; dcrSearch = tmp.Item1; } else if (page.HasValue && Session["SPECSearch"] == null) { dcrSearch = new SpecimenSearch(); } Session["SPECSearch"] = dcrSearch; pagedIns = specs.OrderByDescending(m => m.SPECIMEN_NO).ToPagedList(pageIndex, pageSize); ViewBag.insSearch = dcrSearch; return(View(pagedIns)); }
// // GET: /Specimen/ public Tuple <SpecimenSearch, IQueryable <SET_SPECIMEN> > setSearch(IQueryable <SET_SPECIMEN> dcrs, SpecimenSearch specSearch, bool search) { specSearch = (specSearch.dirty) ? specSearch : new SpecimenSearch(); if (!string.IsNullOrEmpty(Request.QueryString["sno"]) || search) { specSearch.sno = (!search) ? decimal.Parse(Request.QueryString["sno"]) : specSearch.sno; if (specSearch.sno.HasValue) { dcrs = dcrs.Where(s => s.SPECIMEN_NO == specSearch.sno); } } else { specSearch.sno = null; } if (!string.IsNullOrEmpty(Request.QueryString["sname"]) || search) { specSearch.sname = (!search) ? Request.QueryString["sname"] : specSearch.sname; if (!string.IsNullOrEmpty(specSearch.sname)) { dcrs = dcrs.Where(s => s.SPECIMEN_NAME.Contains(specSearch.sname)); } } else { specSearch.sname = ""; } if (!string.IsNullOrEmpty(Request.QueryString["scode"]) || search) { specSearch.scode = (!search) ? Request.QueryString["scode"] : specSearch.scode; if (!string.IsNullOrEmpty(specSearch.scode)) { dcrs = dcrs.Where(s => s.SPECIMEN_CODE.Contains(specSearch.scode)); } } else { specSearch.scode = ""; } if (!string.IsNullOrEmpty(Request.QueryString["activeTo"]) || search) { specSearch.activeTo = (!search) ? DateTime.Parse(Request.QueryString["activeTo"]) : specSearch.activeTo; if (specSearch.activeTo != null) { dcrs = dcrs.Where(s => s.INSERT_TIME >= specSearch.activeTo); } } else { specSearch.activeTo = null; } if (!string.IsNullOrEmpty(Request.QueryString["activeFrom"]) || search) { specSearch.activeFrom = (!search) ? DateTime.Parse(Request.QueryString["activeFrom"]) : specSearch.activeFrom; if (specSearch.activeFrom != null) { dcrs = dcrs.Where(s => s.INSERT_TIME <= specSearch.activeFrom); } } else { specSearch.activeFrom = null; } specSearch.dirty = true; return(new Tuple <SpecimenSearch, IQueryable <SET_SPECIMEN> >(specSearch, dcrs)); }