public ActionResult Filter(int id, int level, string qs, int page = 1) { ViewBag.Level = level; ViewBag.Id = id; ViewBag.Qs = qs; ReportInfo ri = new ReportInfo(); using (var db = new SAPTestContext()) { ri.MyReportNum = db.Reports.AsQueryable().Where(c => c.Executor.Trim().ToLower() == User.Identity.Name.Trim().ToLower()).Count(); ViewBag.CurrentPage = page; switch (level) { case 1: ri.TotalReportNum = db.Reports.AsQueryable().Where(c => c.Asset.Release.Pid == id).Count(); ViewBag.Message = "Project=" + db.Projects.Find(id).Name; ri.Reports = db.Reports.Include(c => c.Asset.Release.Project).Where(c => c.Asset.Release.Pid == id && c.TestName.Contains(qs)).OrderByDescending(c => c.SubmitDt).Skip(_numInPage * (page - 1)).Take(_numInPage).ToList(); break; case 2: ri.TotalReportNum = db.Reports.AsQueryable().Where(c => c.Asset.Rid == id).Count(); ViewBag.Message = "Release=" + db.Releases.Find(id).Name; ri.Reports = db.Reports.Include(c => c.Asset.Release.Project).Where(c => c.Asset.Rid == id && c.TestName.Contains(qs)).OrderByDescending(c => c.SubmitDt).Skip(_numInPage * (page - 1)).Take(_numInPage).ToList(); break; case 3: ri.TotalReportNum = db.Reports.AsQueryable().Where(c => c.AssetId == id).Count(); ViewBag.Message = "Asset=" + db.Assets.Find(id).Name; ri.Reports = db.Reports.Include(c => c.Asset.Release.Project).Where(c => c.AssetId == id && c.TestName.Contains(qs)).OrderByDescending(c => c.SubmitDt).Skip(_numInPage * (page - 1)).Take(_numInPage).ToList(); break; default: ri.TotalReportNum = -1; break; } ViewBag.PageCount = Math.Ceiling((double)ri.TotalReportNum / _numInPage); } if (qs.Trim() != "") { ViewBag.Message += " And Test Name =" + qs; } if (ri.TotalReportNum == -1) { return RedirectToAction("Index"); } return View(ri); }
public ActionResult MyReport(int page = 1) { ReportInfo ri = new ReportInfo(); using (var db = new SAPTestContext()) { ri.TotalReportNum = db.Reports.AsQueryable().Count(); ri.MyReportNum = db.Reports.AsQueryable().Where(c => c.Executor.Trim().ToLower() == User.Identity.Name.Trim().ToLower()).Count(); ViewBag.PageCount = Math.Ceiling((double)ri.MyReportNum / _numInPage); ViewBag.CurrentPage = page; ri.Reports = db.Reports.Include(c => c.Asset.Release.Project).Where(c => c.Executor.Trim().ToLower() == User.Identity.Name.Trim().ToLower()).OrderByDescending(c => c.SubmitDt).Skip(_numInPage * (page - 1)).Take(_numInPage).ToList(); } return View(ri); }
private ReportInfo getReports(MyReportFilter Filter,int page) { ReportInfo ri = new ReportInfo(); ri.Filter = Filter; var u = InternalAttribute.GetUser(); if (u != null) ri.IsVaildUser = true; string user = User.Identity.Name.Trim().ToLower(); ViewBag.Message = ""; using (var db = new SAPTestContext()) { IQueryable<Report> reportQuery = db.Reports.Include(r => r.Asset.Release.Project).Include(r => r.User); if(Filter.qs != null) { reportQuery = reportQuery.Where(r=>r.TestName.Contains(Filter.qs)); ViewBag.Message += " Test Name contains:" + Filter.qs +"\n"; } if (Filter.Pid > 0) { reportQuery = reportQuery.Where(r=>r.Asset.Release.Project.Id == Filter.Pid); ViewBag.Message += "Project:" + db.Projects.Find(Filter.Pid).Name + "\n"; } if (Filter.Rid > 0) { reportQuery = reportQuery.Where(r=>r.Asset.Release.Id == Filter.Rid); ViewBag.Message += "Release:" + db.Releases.Find(Filter.Rid).Name + "\n"; } if (Filter.Aid > 0) { reportQuery = reportQuery.Where(r=>r.Asset.Id == Filter.Aid); ViewBag.Message += "Asset:" + db.Assets.Find(Filter.Aid).Name + "\n"; } ri.TotalReportNum = reportQuery.Count(); if (Filter.isMyReport) { ViewBag.PageCount = Math.Ceiling((double)ri.MyReportNum / _numInPage); ri.IsMyReport = true; reportQuery = reportQuery.Where(r => r.Executor.Trim().ToLower() == user); ri.MyReportNum = reportQuery.Count(); //ri.Reports = reportQuery.Where(r => r.Executor.Trim().ToLower() == user).OrderByDescending(c => c.SubmitDt).Skip(_numInPage * (page - 1)).Take(_numInPage).ToList(); } else { ri.MyReportNum = reportQuery.Where(r => r.Executor.Trim().ToLower() == user).Count(); //ri.Reports = reportQuery.OrderByDescending(c => c.SubmitDt).Skip(_numInPage * (page - 1)).Take(_numInPage).ToList(); ViewBag.PageCount = Math.Ceiling((double)ri.TotalReportNum / _numInPage); } if (Filter.Sort == -1) { reportQuery = reportQuery.OrderByDescending(c => c.SubmitDt); } else if (Filter.Sort == 0) { reportQuery = reportQuery.OrderBy(c => c.CaseNum).ThenByDescending(c => c.SubmitDt); } else { reportQuery = reportQuery.OrderByDescending(c => c.CaseNum).ThenByDescending(c => c.SubmitDt); } ri.Reports = reportQuery.Skip(_numInPage * (page - 1)).Take(_numInPage).ToList(); } ViewBag.CurrentPage = page; return ri; }