/// <summary>
        /// 查看课程申报详情
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult Detail(int id = 0)
        {
            var vm = new Models.ElectiveApply.Detail();

            using (var db = new XkSystem.Models.DbContext())
            {
                if (id > 0)
                {
                    var tb = (from p in db.Table <Entity.tbElectiveApply>()
                              .Include(p => p.tbCourse)
                              .Include(p => p.tbElective)
                              .Include(p => p.tbRoom)
                              where p.Id == id
                              select new Dto.ElectiveApply.Detail()
                    {
                        Id = p.Id,
                        ElectiveName = p.tbElective.ElectiveName,
                        CourseName = p.tbCourse.CourseName,
                        Hour = p.Hour,
                        Point = p.tbCourse.Point,
                        RoomName = p.tbRoom.RoomName,
                        MaxStudent = p.MaxStudent,
                        TeachPlan = p.TeachPlan,
                        StudyTarger = p.StudyTarger,
                        SubjectName = p.tbCourse.tbSubject.SubjectName,
                        UserName = p.tbSysUser.UserName,
                        ElectiveApplyFileList = db.Set <Entity.tbElectiveApplyFile>().Where(c => c.tbElectiveApply.Id == id).Select(c => new Dto.ElectiveApplyFile.List()
                        {
                            FileTitle = c.FileTitle, FileName = c.FileName
                        }).ToList(),
                        ElectiveApplyScheduleList = db.Set <Entity.tbElectiveApplySchedule>().Where(c => c.tbElectiveApply.Id == id).Select(c => new Dto.ElectiveApplySchedule.List()
                        {
                            PeriodId = c.tbPeriod.Id, PeriodName = c.tbPeriod.PeriodName, WeekId = c.tbWeek.Id, WeekName = c.tbWeek.WeekName
                        }).ToList()
                    }).FirstOrDefault();
                    if (tb == null)
                    {
                        return(Code.MvcHelper.Post(new List <string>()
                        {
                            Resources.LocalizedText.MsgNotFound
                        }));
                    }
                    vm.ElectiveApplyDetail = tb;
                    vm.IsWeekPeriod        = tb.ElectiveApplyScheduleList != null && tb.ElectiveApplyScheduleList.Count > 0;
                }
                else
                {
                    return(View(vm));
                }
            }
            vm.PeriodList = Basis.Controllers.PeriodController.SelectList();
            vm.WeekList   = Basis.Controllers.WeekController.SelectList();
            return(View(vm));
        }
        public ActionResult Detail(Models.ElectiveApply.Detail vm)
        {
            if (vm.IsWeekPeriod)
            {
                using (var db = new XkSystem.Models.DbContext())
                {
                    var weekPeriod = Request["cBox"];
                    if (string.IsNullOrWhiteSpace(weekPeriod))
                    {
                        return(Code.MvcHelper.Post(new List <string>()
                        {
                            "请至少选择一项星期节次."
                        }));
                    }

                    //删除原有 (可以做判断只删除不在本次选择范围内的,待优化。)
                    var tbWeekPeriod = (from p in db.Table <Entity.tbElectiveApplySchedule>() /*.Include(p=>p.tbWeek).Include(p=>p.tbPeriod)*/ where p.tbElectiveApply.Id == vm.ElectiveApplyDetail.Id select p);
                    foreach (var item in tbWeekPeriod)
                    {
                        item.IsDeleted  = true;
                        item.UpdateTime = DateTime.Now;
                    }

                    var weekPeriodList = weekPeriod.Split(',').ToList();

                    var tbElectiveApply = db.Set <Entity.tbElectiveApply>().Find(vm.ElectiveApplyDetail.Id);
                    db.Set <Entity.tbElectiveApplySchedule>().AddRange(weekPeriodList.Select(p => new Entity.tbElectiveApplySchedule()
                    {
                        tbElectiveApply = tbElectiveApply,
                        tbWeek          = db.Set <Basis.Entity.tbWeek>().Find(p.Split('_')[0].ConvertToInt()),
                        tbPeriod        = db.Set <Basis.Entity.tbPeriod>().Find(p.Split('_')[1].ConvertToInt())
                    }));

                    db.SaveChanges();
                }
            }

            return(Code.MvcHelper.Post());
        }