コード例 #1
0
 public ActionResult GetTeacherVerticalResult(string teacherName, DateTime startTime, DateTime endTime)
 {
     var business = new DormExamBusiness(Db);
     var condition = new DormExamSearchCondition { DepartmentId = 0, MajorId = 0, Grade = "全部", ClassInfoId = 0, TeacherName = teacherName };
     var list = business.SearchDormExam(condition);
     var result = list.Where(u => u.Time <= endTime && u.Time >= startTime).ToList();
     return Content(JsonConvert.SerializeObject(business.CalculateTeacherVertical(result)));
 }
コード例 #2
0
 public ActionResult GetStudentVerticalResult(int departmentId, int majorId, string grade, int classId, DateTime startTime, DateTime endTime)
 {
     var business = new DormExamBusiness(Db);
     var condition = new DormExamSearchCondition { DepartmentId = departmentId, MajorId = majorId, Grade = grade, ClassInfoId = classId };
     var list = business.SearchDormExam(condition);
     var result = list.Where(u => u.Time <= endTime && u.Time >= startTime).ToList();
     return Content(JsonConvert.SerializeObject(business.CalculateTeacherVertical(result)));
 }
コード例 #3
0
 public ActionResult GetTeacherHorizontalResult(int departmentId)
 {
     var business = new DormExamBusiness(Db);
     var condition = new DormExamSearchCondition { DepartmentId = departmentId, MajorId = 0, Grade = "全部", ClassInfoId = 0 };
     var json = JsonConvert.SerializeObject(business.CalculateTeacherHorizontal(business.SearchDormExam(condition)),
         DateTimeConverter);
     return Content(json);
 }
コード例 #4
0
        public List<DormExam> SearchDormExam(DormExamSearchCondition condition)
        {
            var where = PredicateExtensionses.True<DormExam>();
            if (!String.IsNullOrEmpty(condition.SchoolYear))
            {
                where = where.And(u => u.SchoolYear == condition.SchoolYear);
            }
            if (!String.IsNullOrEmpty(condition.Week) && condition.Week != "全部")
            {
                where = where.And(u => u.Week == condition.Week);
            }
            if (condition.ExamTypeId != 0)
            {
                @where = where.And(u => u.DormExamType.Id == condition.ExamTypeId);
            }
            if (!String.IsNullOrEmpty(condition.Irregularity) && condition.Irregularity != "全部")
            {
                @where = condition.Irregularity == "是" ? @where.And(u => u.Irregularity.Name != "无") : @where.And(u => u.Irregularity.Name == "无");
            }
            if (!String.IsNullOrEmpty(condition.Review) && condition.Review != "全部")
            {
                @where = condition.Review == "是" ? @where.And(u => u.Review == 1) : @where.And(u => u.Review == 0);
            }
            if (!String.IsNullOrEmpty(condition.DormNum))
            {
                where = where.And(u => u.DormInfo.Num == condition.DormNum);
                if (String.IsNullOrEmpty(condition.StudentName))
                {
                    return Db.DormExams.Where(where).ToList();
                }
            }

            if (!String.IsNullOrEmpty(condition.StudentName))
            {
                var dormSimpleList = Db.DormInfoSimples.Where(u => u.StudentName == condition.StudentName).ToList();
                if (dormSimpleList.Count > 0)
                {
                    var dormNum = dormSimpleList[0].Dorm.Num;
                    where = where.And(u => u.DormInfo.Num == dormNum);
                    return Db.DormExams.Where(where).ToList();
                }
                @where = @where.And(u => false);
                return Db.DormExams.Where(@where).ToList();
            }

            if (!String.IsNullOrEmpty(condition.TeacherName))
            {
                var dormSimpleList = Db.DormInfoSimples.Where(u => u.TeacherName == condition.TeacherName).ToList();
                if (dormSimpleList.Count > 0)
                {
                    //
                    var dormNumList = dormSimpleList.Select(u => u.Dorm.Num).ToList();
                    where = where.And(u => false);
                    foreach (var i in dormNumList)
                    {
                        //var dormNum = dormSimpleList[0].Dorm.Num;
                        where = where.Or(u => u.DormInfo.Num == i);
                    }

                    return Db.DormExams.Where(where).ToList();
                }
                @where = @where.And(u => false);
                return Db.DormExams.Where(@where).ToList();
            }

            var list = Db.DormExams.Where(where).ToList();
            if (condition.DepartmentId != 0 && condition.MajorId == 0 && condition.Grade == "全部" && condition.ClassInfoId == 0)
            {
                var dormSimpleList = Db.DormInfoSimples.Where(u => u.ClassInfo.Major.Department.Id == condition.DepartmentId).Select(u => u.Dorm.Num).ToList();
                for (var i = list.Count - 1; i >= 0; i--)
                {
                    if (!dormSimpleList.Contains(list[i].DormInfo.Num))
                    {
                        list.Remove(list[i]);
                    }
                }
            }
            if (condition.DepartmentId != 0 && condition.MajorId != 0 && condition.Grade == "全部" && condition.ClassInfoId == 0)
            {
                var dormSimpleList = Db.DormInfoSimples.Where(u => u.ClassInfo.Major.Id == condition.MajorId).Select(u => u.Dorm.Num).ToList();
                for (var i = list.Count - 1; i >= 0; i--)
                {
                    if (!dormSimpleList.Contains(list[i].DormInfo.Num))
                    {
                        list.Remove(list[i]);
                    }
                }
            }
            if (condition.DepartmentId != 0 && condition.MajorId != 0 && condition.Grade != "全部" && condition.ClassInfoId == 0)
            {
                var dormSimpleList = Db.DormInfoSimples.Where(u => u.ClassInfo.Grade == condition.Grade).Select(u => u.Dorm.Num).ToList();
                for (var i = list.Count - 1; i >= 0; i--)
                {
                    if (!dormSimpleList.Contains(list[i].DormInfo.Num))
                    {
                        list.Remove(list[i]);
                    }
                }
            }

            if (condition.DepartmentId != 0 && condition.MajorId != 0 && condition.ClassInfoId != 0)
            {
                var dormSimpleList = Db.DormInfoSimples.Where(u => u.ClassInfo.Id == condition.ClassInfoId).Select(u => u.Dorm.Num);
                for (var i = list.Count - 1; i >= 0; i--)
                {
                    if (!dormSimpleList.Contains(list[i].DormInfo.Num))
                    {
                        list.Remove(list[i]);
                    }
                }
            }
            return list;
        }
コード例 #5
0
 public ActionResult Search(DormExamSearchCondition condition)
 {
     var business = new DormExamBusiness(Db);
     var json = JsonConvert.SerializeObject(business.SearchDormExam(condition));
     return Content(json);
 }