Пример #1
0
        public ActionResult Edit(int id = 0)
        {
            using (var db = new XkSystem.Models.DbContext())
            {
                var vm = new Models.ElectiveRule.Edit();

                if (id != 0)
                {
                    var tb = (from p in db.Table <Entity.tbElectiveRule>()
                              where p.Id == id
                              select new Dto.ElectiveRule.Edit
                    {
                        CourseId = p.tbCourse.Id,
                        CourseName = p.tbCourse.CourseName,
                    }).FirstOrDefault();
                    if (tb != null)
                    {
                        vm.ElectiveRuleEdit = tb;
                    }
                }

                //已经设置为规则的课程
                var ruleCourseList = (from p in db.Table <Entity.tbElectiveRule>()
                                      where p.tbElective.Id == vm.ElectiveId && p.tbCourse.Id == vm.CourseId
                                      select new
                {
                    CourseId = p.tbCourse.Id,
                    CourseTargetId = p.tbCourseTarget.Id,
                    ElectiveRule = p.ElectiveRule
                }).ToList();

                //当前选课规则已设置的课程Id
                vm.RuleCourseIds = ruleCourseList.Where(p => p.CourseId == vm.CourseId && (int)p.ElectiveRule == vm.RuleId).Select(p => p.CourseTargetId).ToList();

                //当前课程下其他选课规则已设置的课程id
                var otherCourseIds = ruleCourseList.Where(p => p.CourseId == vm.CourseId && (int)p.ElectiveRule != vm.RuleId).Select(p => p.CourseTargetId).ToList();

                var ruleClassIds = vm.RuleCourseIds;

                //自身互斥
                otherCourseIds.Add(vm.CourseId);

                vm.CourseList = (from p in db.Table <Entity.tbElectiveOrg>()
                                 where p.tbElective.Id == vm.ElectiveId && !otherCourseIds.Contains(p.tbCourse.Id)
                                 select new Course.Dto.Course.Info()
                {
                    Id = p.tbCourse.Id,
                    Hour = p.tbCourse.Hour,
                    CourseCode = p.tbCourse.CourseCode,
                    CourseName = p.tbCourse.CourseName,
                    CourseNameEn = p.tbCourse.CourseNameEn,
                    SubjectName = p.tbCourse.tbSubject.SubjectName,
                    CourseTypeName = p.tbCourse.tbCourseType.CourseTypeName
                }).ToList();

                return(View(vm));
            }
        }
Пример #2
0
        public ActionResult Edit(Models.ElectiveRule.Edit vm)
        {
            using (var db = new XkSystem.Models.DbContext())
            {
                //课程关系规则
                var electiveRule = (Code.EnumHelper.ElectiveRule)Enum.Parse(typeof(Code.EnumHelper.ElectiveRule), vm.RuleId.ToString());

                var courseIds = Request.Form["CboxId"].ConvertToString().Split(',').Select(p => p.ConvertToInt()).ToList();
                courseIds.RemoveAll(p => p == 0);
                var tb = (from p in db.Table <Entity.tbElectiveRule>() where p.tbCourse.Id == vm.CourseId && p.ElectiveRule == electiveRule select p);
                foreach (var courseRule in tb)
                {
                    courseRule.IsDeleted = true;
                }

                if (courseIds != null && courseIds.Any())
                {
                    courseIds.Add(vm.CourseId);
                    //选择的课程列表
                    var courseTargetList = (from p in db.Table <Course.Entity.tbCourse>() where courseIds.Contains(p.Id) select p).ToList();
                    var electiveRuleList = new List <Entity.tbElectiveRule>();

                    var tbElective = db.Set <Entity.tbElective>().Find(vm.ElectiveId);
                    //var tbCourse = db.Set<Course.Entity.tbCourse>().Find(vm.ElectiveRuleEdit.CourseId);

                    var tbCourse = courseTargetList.FirstOrDefault(p => p.Id == vm.CourseId);
                    courseTargetList.Remove(tbCourse);

                    foreach (var courseTarget in courseTargetList)
                    {
                        electiveRuleList.Add(new Entity.tbElectiveRule()
                        {
                            tbElective     = tbElective,
                            tbCourse       = tbCourse,
                            tbCourseTarget = courseTarget,
                            ElectiveRule   = electiveRule
                        });
                    }
                    db.Set <Entity.tbElectiveRule>().AddRange(electiveRuleList);
                }
                if (db.SaveChanges() > 0)
                {
                    XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加了课程关系");
                }
                return(Code.MvcHelper.Post());
            }
        }