예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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;
        }