public ActionResult List(Models.StudentBest.List vm) { return(Code.MvcHelper.Post(null, Url.Action("List", new { searchText = vm.SearchText, GradeId = vm.GradeId, pageIndex = vm.Page.PageIndex, pageSize = vm.Page.PageSize }))); }
public ActionResult List() { using (var db = new XkSystem.Models.DbContext()) { var vm = new Models.StudentBest.List(); vm.GradeList = Basis.Controllers.GradeController.SelectList(); var classStudentList = db.Table <Basis.Entity.tbClassStudent>() .Include(d => d.tbStudent) .Include(d => d.tbClass).ToList(); var studentBestList = db.Table <Student.Entity.tbStudentBest>() .Include(d => d.tbStudent).ToList(); var tb = db.Table <Basis.Entity.tbClass>(); if (!string.IsNullOrEmpty(vm.SearchText)) { tb = tb.Where(d => d.ClassName.Contains(vm.SearchText)); } if (vm.GradeId > 0) { tb = tb.Where(d => d.tbGrade.Id == vm.GradeId); } vm.DataList = (from p in tb orderby p.No select new Dto.StudentBest.List() { Id = p.Id, No = p.No, ClassName = p.ClassName, ClassTypeName = p.tbClassType.ClassTypeName, }).ToPageList(vm.Page); foreach (var v in vm.DataList) { v.BestStudentCount = studentBestList.Where(d => classStudentList.Where(e => e.tbClass.Id == v.Id).Select(e => e.tbStudent.Id).ToList().Contains(d.tbStudent.Id)).Count(); v.StudentCount = classStudentList.Where(d => d.tbClass.Id == v.Id).Count(); if (v.BestStudentCount > 0 && v.StudentCount > 0) { v.PercentAge = Math.Round((decimal)v.BestStudentCount / v.StudentCount * 100, 2) + "%"; } } return(View(vm)); } }