public ActionResult Approve()
        {
            var vm = new Models.ElectiveApply.List();

            using (var db = new XkSystem.Models.DbContext())
            {
                var tb = (from p in db.Table <Entity.tbElectiveApply>() select p);
                if (!string.IsNullOrWhiteSpace(vm.SearchText))
                {
                    tb = tb.Where(p => p.tbCourse.CourseName.Contains(vm.SearchText) || p.tbElective.ElectiveName.Contains(vm.SearchText));
                }

                if (vm.ElectiveId > 0)
                {
                    tb = tb.Where(p => p.tbElective.Id == vm.ElectiveId);
                }

                vm.ElectiveApplyList = (from p in tb
                                        orderby p.No
                                        select new Dto.ElectiveApply.List()
                {
                    Id = p.Id,
                    ElectiveName = p.tbElective.ElectiveName,
                    CourseName = p.tbCourse.CourseName,
                    InputTime = p.InputTime,
                    Hour = p.Hour,
                    Point = p.tbCourse.Point,
                    CheckStatus = p.CheckStatus,
                    CheckOpinion = p.CheckOpinion,
                    MaxStudent = p.MaxStudent,
                    RoomName = p.tbRoom.RoomName,
                    UserName = p.tbSysUser.UserName,
                    IsMultiClass = p.IsMultiClass
                                   //ElectiveApplyFileList = db.Set<Entity.tbElectiveApplyFile>().Where(c => c.tbElectiveApply.Id == p.Id).Select(c => new Dto.ElectiveApplyFile.List()
                                   //{
                                   //    FileName = c.FileName,
                                   //    FileTitle = c.FileTitle
                                   //}).ToList(),
                                   //ElectiveApplyScheduleList = db.Set<Entity.tbElectiveApplySchedule>().Where(c => c.tbElectiveApply.Id == p.Id).Select(c => new Dto.ElectiveApplySchedule.List()
                                   //{
                                   //    WeekId = c.tbWeek.Id,
                                   //    WeekName = c.tbWeek.WeekName,
                                   //    PeriodId = c.tbPeriod.Id,
                                   //    PeriodName = c.tbPeriod.PeriodName
                                   //}).ToList(),
                }).ToPageList(vm.Page);

                vm.ElectiveList = ElectiveController.SelectList();
                vm.ElectiveList.Insert(0, new SelectListItem()
                {
                    Text = "全部", Value = "0"
                });
            }
            return(View(vm));
        }
        public ActionResult EditFirstStep(int id = 0)
        {
            var vm = new Models.ElectiveApply.FirstStepEdit();

            using (var db = new XkSystem.Models.DbContext())
            {
                vm.ElectiveList = ElectiveController.SelectList();
                if (vm.ElectiveId == 0 && vm.ElectiveList != null && vm.ElectiveList.Count > 0)
                {
                    vm.ElectiveId = vm.ElectiveList[0].Value.ConvertToInt();
                }

                if (!string.IsNullOrWhiteSpace(vm.SearchText))
                {
                    var tb = (from p in db.Table <Course.Entity.tbCourse>() where p.CourseName.Contains(vm.SearchText) || p.CourseNameEn.Contains(vm.SearchText) select p);

                    vm.CourseList = (from p in tb
                                     join e in db.Table <Entity.tbElectiveSubject>() on p.tbSubject.Id equals e.tbSubject.Id
                                     where e.tbElective.Id == vm.ElectiveId
                                     select new Course.Dto.Course.List()
                    {
                        Id = p.Id,
                        CourseCode = p.CourseCode,
                        CourseName = p.CourseName,
                        CourseDomainName = p.tbCourseDomain.CourseDomainName,
                        CourseNameEn = p.CourseNameEn,
                        Hour = p.Hour,
                        Point = p.Point,
                        CourseTypeName = p.tbCourseType.CourseTypeName,
                        SubjectName = p.tbSubject.SubjectName,
                        CourseGroupName = p.tbCourseGroup.CourseGroupName
                    }).ToList();
                }
            }
            return(View(vm));
        }
Beispiel #3
0
        public ActionResult List()
        {
            if (Code.Common.UserType != Code.EnumHelper.SysUserType.Administrator && Code.Common.UserType != Code.EnumHelper.SysUserType.Teacher)
            {
                return(Content(Code.Common.Redirect(Url.Action("Index", "SysIndex", new { area = "Sys" }), "当前身份类别无法访问该功能!")));
            }

            using (var db = new XkSystem.Models.DbContext())
            {
                var vm = new Models.ElectiveChange.List();
                vm.ElectiveList = ElectiveController.SelectList();
                if (vm.ElectiveId == 0 && vm.ElectiveList.Count() > 0)
                {
                    vm.ElectiveId = vm.ElectiveList.FirstOrDefault().Value.ConvertToInt();
                }

                vm.IsWeekPeriod = (from p in db.Table <Entity.tbElective>()
                                   where p.Id == vm.ElectiveId
                                   select p.tbElectiveType.ElectiveTypeCode).FirstOrDefault() == Code.EnumHelper.ElectiveType.WeekPeriod;

                //var classList = (from p in db.Table<Basis.Entity.tbClassStudent>()
                //                 where p.tbClass.tbYear.IsDefault
                //                    && p.tbClass.IsDeleted == false
                //                    && p.tbClass.tbYear.IsDeleted == false
                //                 select new
                //                 {
                //                     StudentId = p.tbStudent.Id,
                //                     p.tbClass.ClassName
                //                 }).ToList();

                var tb = from p in db.Table <Entity.tbElectiveData>()
                         join c in db.Table <Basis.Entity.tbClassStudent>() on p.tbStudent.Id equals c.tbStudent.Id
                         where p.tbElectiveOrg.tbElective.Id == vm.ElectiveId &&
                         c.tbClass.tbYear.IsDefault &&
                         p.tbElectiveOrg.IsDeleted == false &&
                         p.tbElectiveOrg.tbCourse.IsDeleted == false &&
                         p.tbElectiveOrg.tbElectiveGroup.IsDeleted == false &&
                         p.tbElectiveOrg.tbElectiveSection.IsDeleted == false &&
                         p.tbStudent.IsDeleted == false
                         select new { tbElectiveData = p, tbClass = c.tbClass };

                if (string.IsNullOrEmpty(vm.SearchText) == false)
                {
                    tb = tb.Where(d => d.tbElectiveData.tbElectiveOrg.OrgName.Contains(vm.SearchText) || d.tbElectiveData.tbStudent.StudentCode.Contains(vm.SearchText) || d.tbElectiveData.tbStudent.StudentName.Contains(vm.SearchText));
                }

                vm.ElectiveChangeList = (from p in tb
                                         orderby p.tbElectiveData.InputDate descending
                                         select new Dto.ElectiveChange.List()
                {
                    ElectiveDataId = p.tbElectiveData.Id,
                    ElectiveOrgId = p.tbElectiveData.tbElectiveOrg.Id,
                    OrgName = p.tbElectiveData.tbElectiveOrg.OrgName,
                    TeacherName = p.tbElectiveData.tbElectiveOrg.tbTeacher.TeacherName,
                    RoomName = p.tbElectiveData.tbElectiveOrg.tbRoom.RoomName,
                    RemainCount = p.tbElectiveData.tbElectiveOrg.RemainCount,
                    ElectiveSectionName = p.tbElectiveData.tbElectiveOrg.tbElectiveSection.ElectiveSectionName,
                    ElectiveGroupName = p.tbElectiveData.tbElectiveOrg.tbElectiveGroup.ElectiveGroupName,
                    InputDate = p.tbElectiveData.InputDate,
                    StudentId = p.tbElectiveData.tbStudent.Id,
                    StudentUserId = p.tbElectiveData.tbStudent.tbSysUser.Id,
                    StudentCode = p.tbElectiveData.tbStudent.StudentCode,
                    StudentName = p.tbElectiveData.tbStudent.StudentName,
                    IsPreElective = p.tbElectiveData.IsPreElective,
                    MaxCount = p.tbElectiveData.tbElectiveOrg.MaxCount,
                    ClassName = p.tbClass.ClassName
                }).ToPageList(vm.Page);

                //foreach (var a in vm.ElectiveChangeList)
                //{
                //    a.ClassName = classList.Where(c => c.StudentId == a.StudentId).Select(c => c.ClassName).FirstOrDefault();
                //}

                if (vm.IsWeekPeriod)
                {
                    vm.IsHiddenSection = true;
                    vm.IsHiddenGroup   = true;

                    if (vm.IsWeekPeriod)
                    {
                        var orgIds = vm.ElectiveChangeList.Select(p => p.ElectiveOrgId);
                        var electiveOrgSchedule = (from p in db.Table <Entity.tbElectiveOrgSchedule>().Include(p => p.tbElectiveOrg).Include(p => p.tbWeek).Include(p => p.tbPeriod) where orgIds.Contains(p.tbElectiveOrg.Id) select p).ToList();

                        vm.ElectiveChangeList.ForEach(p =>
                        {
                            var weekPeriodName = new List <string>();
                            electiveOrgSchedule.ForEach(c =>
                            {
                                if (p.ElectiveOrgId == c.tbElectiveOrg.Id)
                                {
                                    weekPeriodName.Add($"{c.tbWeek?.WeekName}{c.tbPeriod?.PeriodName}");
                                }
                            });
                            p.WeekPeriod = string.Join(",", weekPeriodName);
                        });
                    }
                }
                else
                {
                    vm.IsHiddenSection = vm.ElectiveChangeList.Select(d => d.ElectiveSectionName).Distinct().Count() <= 1;
                    vm.IsHiddenGroup   = vm.ElectiveChangeList.Select(d => d.ElectiveGroupName).Distinct().Count() <= 1;
                }

                return(View(vm));
            }
        }
        public ActionResult Edit(int id = 0, int courseId = 0, int electiveId = 0)
        {
            var vm = new Models.ElectiveApply.Edit();


            using (var db = new XkSystem.Models.DbContext())
            {
                if (id == 0)
                {
                    //vm.CourseList = Course.Controllers.CourseController.SelectList();
                }
                else
                {
                    var tb = (from p in db.Table <Entity.tbElectiveApply>()
                              where p.Id == id
                              select new Dto.ElectiveApply.Edit()
                    {
                        Id = p.Id,
                        ElectiveId = p.tbElective.Id,
                        CourseId = p.tbCourse.Id,
                        Hour = p.Hour,
                        Point = p.tbCourse.Point,
                        TeachPlan = p.TeachPlan,
                        StudyTarger = p.StudyTarger,
                        MaxStudent = p.MaxStudent,
                        RoomId = p.tbRoom.Id,
                        SubjectId = p.tbCourse.tbSubject.Id,
                        TeacherId = p.tbSysUser.Id,
                        CheckOpinion = p.CheckOpinion,
                        CheckStatus = p.CheckStatus,
                        tbElectiveApplySchedule = db.Set <Entity.tbElectiveApplySchedule>().Where(c => c.tbElectiveApply.Id == p.Id).Select(c => new Dto.ElectiveApplySchedule.List()
                        {
                            WeekId = c.tbWeek.Id,
                            WeekName = c.tbWeek.WeekName,
                            PeriodId = c.tbPeriod.Id,
                            PeriodName = c.tbPeriod.PeriodName
                        }).ToList(),
                        tbElectiveApplyFile = db.Set <Entity.tbElectiveApplyFile>().Where(c => c.tbElectiveApply.Id == p.Id).Select(c => new Dto.ElectiveApplyFile.List()
                        {
                            FileName = c.FileName,
                            FileTitle = c.FileTitle
                        }).ToList()
                    }).FirstOrDefault();
                    vm.ElectiveApplyEdit = tb;

                    courseId   = courseId == 0 ? tb.CourseId : courseId;
                    electiveId = electiveId == 0 ? tb.ElectiveId : electiveId;
                }

                vm.ElectiveApplyEdit.CourseId   = courseId;
                vm.ElectiveApplyEdit.ElectiveId = electiveId;

                if (courseId > 0 && electiveId > 0)
                {
                    var tbCourse = (from p in db.Table <Course.Entity.tbCourse>()
                                    where p.Id == courseId
                                    select new
                    {
                        SubjectId = p.tbSubject.Id,
                        SubjectName = p.tbSubject.SubjectName,
                        CourseId = p.Id,
                        CourseName = p.CourseName,
                        Hour = p.Hour,
                        Point = p.Point
                    }).FirstOrDefault();
                    vm.ElectiveApplyEdit.SubjectId = tbCourse.SubjectId;
                    //vm.CourseList = new List<SelectListItem>() {
                    //    new SelectListItem() { Text=tbCourse.CourseName,Value=tbCourse.CourseId.ConvertToString() }
                    //};
                    //vm.CourseSubject = new List<SelectListItem>() {
                    //    new SelectListItem() { Text=tbCourse.SubjectName,Value=tbCourse.SubjectId.ToString() }
                    //};
                    vm.ElectiveApplyEdit.Hour  = tbCourse.Hour;
                    vm.ElectiveApplyEdit.Point = tbCourse.Point;

                    var tbElective = (from p in db.Table <Entity.tbElective>()
                                      where p.Id == vm.ElectiveApplyEdit.ElectiveId
                                      select new
                    {
                        Id = p.Id,
                        Name = p.ElectiveName,
                        ElectiveType = p.tbElectiveType.ElectiveTypeCode
                    }).FirstOrDefault();
                    if (tbElective == null)
                    {
                        return(Code.MvcHelper.Post(new List <string>()
                        {
                            Resources.LocalizedText.MsgNotFound
                        }));
                    }
                    //vm.ElectiveList = new List<SelectListItem>() { new SelectListItem() { Value = tbElective.Id.ToString(), Text = tbElective.Name } };
                    vm.IsWeekPeriod = tbElective.ElectiveType == Code.EnumHelper.ElectiveType.WeekPeriod;
                }
                else
                {
                    //electiveId = vm.ElectiveList[0].Value.ConvertToInt();
                }

                vm.ElectiveList  = ElectiveController.SelectList();
                vm.RoomList      = Basis.Controllers.RoomController.SelectList();
                vm.CourseSubject = ElectiveSubjectController.SelectSubjectList(electiveId);
                vm.CourseList    = Course.Controllers.CourseController.SelectList(vm.ElectiveApplyEdit.SubjectId > 0 ? vm.ElectiveApplyEdit.SubjectId : vm.CourseSubject[0].Value.ConvertToInt());

                //if (vm.IsWeekPeriod)
                //{
                vm.PeriodList = Basis.Controllers.PeriodController.SelectList();
                vm.WeekList   = Basis.Controllers.WeekController.SelectList();
                //}
            }
            return(View(vm));
        }