Exemplo n.º 1
0
        public dynamic SaveSubjectNode(XkSystem.Models.DbContext db, string ids, Entity.tbSurveyGroup surveyGroup, int surveyId)
        {
            //查出整个评价Id的所有组的科目列表
            var tb = (from p in db.Table <Entity.tbSurveyCourse>()
                      .Include(d => d.tbSurveyGroup)
                      .Include(d => d.tbCourse)
                      where p.tbSurveyGroup.tbSurvey.Id == surveyId &&
                      p.tbCourse.IsDeleted == false &&
                      p.tbSurveyGroup.IsDeleted == false &&
                      p.tbSurveyGroup.tbSurvey.IsDeleted == false
                      select p).ToList();

            //-1为虚构的根节点,要去掉
            var idArr = ids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Where(d => d.ConvertToInt() != -1).Select(d => d.ConvertToInt());

            //取交集,同一SurveyId中的多个分组Subject不能重复,且判断GroupId不能是当前要修改的Id
            bool flag = tb.Where(d => d.tbSurveyGroup.Id != surveyGroup.Id).Select(d => d.tbCourse.Id).Intersect(idArr).Count() > 0;

            if (flag)
            {
                return new { Status = decimal.Zero, Message = "同一评价下不同分组课程不能重复!" }
            }
            ;

            //修改当前分组的老数据为删除状态
            foreach (var a in tb.Where(d => d.tbSurveyGroup.Id == surveyGroup.Id))
            {
                a.IsDeleted = true;
            }
            var addtbSurveyCourseList = new List <Entity.tbSurveyCourse>();

            foreach (var id in idArr)
            {
                var temp = new Entity.tbSurveyCourse();
                temp.tbSurveyGroup = surveyGroup;
                temp.tbCourse      = db.Set <Course.Entity.tbCourse>().Find(id);
                addtbSurveyCourseList.Add(temp);
            }
            db.Set <Entity.tbSurveyCourse>().AddRange(addtbSurveyCourseList);
            XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加评价课程");
            return(new { Status = decimal.One, Message = "操作成功!" });
        }
Exemplo n.º 2
0
        public ActionResult Edit(Models.Survey.Edit vm)
        {
            using (var db = new XkSystem.Models.DbContext())
            {
                int surveyId = 0;

                var error = new List <string>();
                if (error.Count == decimal.Zero)
                {
                    if (vm.SurveyEdit.Id == 0)
                    {
                        if (vm.CreateWay == "复制历史" && vm.CopySurveyId == 0)
                        {
                            error.AddError("请选择需要复制的历史评教设置!");
                        }

                        var tb = new Entity.tbSurvey();
                        tb.No = vm.SurveyEdit.No == null?db.Table <Entity.tbSurvey>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.SurveyEdit.No;

                        tb.tbYear     = db.Set <Basis.Entity.tbYear>().Find(vm.SurveyEdit.YearId);
                        tb.SurveyName = vm.SurveyEdit.SurveyName;
                        tb.FromDate   = vm.SurveyEdit.FromDate;
                        tb.ToDate     = vm.SurveyEdit.ToDate;
                        tb.IsOpen     = vm.SurveyEdit.IsOpen;
                        tb.Remark     = vm.SurveyEdit.Remark;
                        db.Set <Entity.tbSurvey>().Add(tb);
                        if (db.SaveChanges() > 0)
                        {
                            XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加教师评价");
                        }

                        surveyId = tb.Id;

                        #region  制历史
                        if (vm.CreateWay == "复制历史" && vm.CopySurveyId != 0)
                        {
                            var copySurvey = (from p in db.Table <Entity.tbSurvey>()
                                              where p.Id == vm.CopySurveyId
                                              select p).FirstOrDefault();

                            #region tbSurveyClass
                            var copySurveyClassList = (from p in db.Table <Entity.tbSurveyClass>()
                                                       .Include(p => p.tbClass)
                                                       where p.tbSurvey.Id == vm.CopySurveyId
                                                       select p).ToList();
                            foreach (var surveyClass in copySurveyClassList)
                            {
                                var sc = new Entity.tbSurveyClass();
                                sc.tbSurvey = tb;
                                sc.tbClass  = surveyClass.tbClass;
                                db.Set <Entity.tbSurveyClass>().Add(sc);
                            }
                            db.SaveChanges();
                            #endregion

                            #region tbSurveyGroup
                            var copySurveyGroupList = (from p in db.Table <Entity.tbSurveyGroup>()
                                                       where p.tbSurvey.Id == vm.CopySurveyId
                                                       select p).ToList();
                            var dbSurveyCourseList = (from p in db.Table <Entity.tbSurveyCourse>()
                                                      .Include(p => p.tbCourse)
                                                      where p.tbSurveyGroup.tbSurvey.Id == vm.CopySurveyId
                                                      select p).ToList();
                            var dbSurveyItemList = (from p in db.Table <Entity.tbSurveyItem>()
                                                    where p.tbSurveyGroup.tbSurvey.Id == vm.CopySurveyId
                                                    select p).ToList();
                            var dbSurveyOptionList = (from p in db.Table <Entity.tbSurveyOption>()
                                                      where p.tbSurveyItem.tbSurveyGroup.tbSurvey.Id == vm.CopySurveyId
                                                      select p).ToList();

                            foreach (var surveyGroup in copySurveyGroupList)
                            {
                                int copySurveyGroupId = surveyGroup.Id;

                                var sg = new Entity.tbSurveyGroup();
                                sg.No = surveyGroup.No;
                                sg.SurveyGroupName = surveyGroup.SurveyGroupName;
                                sg.IsOrg           = surveyGroup.IsOrg;
                                sg.tbSurvey        = tb;
                                db.Set <Entity.tbSurveyGroup>().Add(sg);

                                #region tbSurveyCourse
                                var copySurveyCourseList = dbSurveyCourseList.Where(p => p.tbSurveyGroup.Id == copySurveyGroupId).ToList();
                                foreach (var surveyCourse in copySurveyCourseList)
                                {
                                    var sc = new Entity.tbSurveyCourse();
                                    sc.tbCourse      = surveyCourse.tbCourse;
                                    sc.tbSurveyGroup = sg;
                                    db.Set <Entity.tbSurveyCourse>().Add(sc);
                                }
                                #endregion

                                #region tbSurveyItem
                                var copySurveyItemList = dbSurveyItemList.Where(p => p.tbSurveyGroup.Id == copySurveyGroupId).ToList();
                                foreach (var surveyItem in copySurveyItemList)
                                {
                                    int copySurveyItemId = surveyItem.Id;
                                    var si = new Entity.tbSurveyItem();
                                    si.No             = surveyItem.No;
                                    si.SurveyItemName = surveyItem.SurveyItemName;
                                    si.TextMaxLength  = surveyItem.TextMaxLength;
                                    si.SurveyItemType = surveyItem.SurveyItemType;
                                    si.IsVertical     = surveyItem.IsVertical;
                                    si.tbSurveyGroup  = sg;
                                    db.Set <Entity.tbSurveyItem>().Add(si);

                                    #region tbSurveyOption
                                    var copySurveyOptionList = dbSurveyOptionList.Where(p => p.tbSurveyItem.Id == copySurveyItemId).ToList();
                                    foreach (var surveyOption in copySurveyOptionList)
                                    {
                                        var so = new Entity.tbSurveyOption();
                                        so.No           = surveyOption.No;
                                        so.OptionName   = surveyOption.OptionName;
                                        so.OptionValue  = surveyOption.OptionValue;
                                        so.tbSurveyItem = si;
                                        db.Set <Entity.tbSurveyOption>().Add(so);
                                    }
                                    #endregion
                                }
                                #endregion
                            }
                            #endregion

                            db.SaveChanges();
                        }
                        #endregion
                    }
                    else
                    {
                        var tb = (from p in db.Table <Entity.tbSurvey>()
                                  where p.Id == vm.SurveyEdit.Id
                                  select p).FirstOrDefault();
                        if (tb != null)
                        {
                            surveyId = tb.Id;

                            tb.No = vm.SurveyEdit.No == null?db.Table <Entity.tbSurvey>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.SurveyEdit.No;

                            tb.SurveyName = vm.SurveyEdit.SurveyName;
                            tb.tbYear     = db.Set <Basis.Entity.tbYear>().Find(vm.SurveyEdit.YearId);
                            tb.FromDate   = vm.SurveyEdit.FromDate;
                            tb.ToDate     = vm.SurveyEdit.ToDate;
                            tb.IsOpen     = vm.SurveyEdit.IsOpen;
                            tb.Remark     = vm.SurveyEdit.Remark;
                            if (db.SaveChanges() > 0)
                            {
                                XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("修改教师评价");
                            }
                        }
                        else
                        {
                            error.AddError(Resources.LocalizedText.MsgNotFound);
                        }
                    }
                }

                if (Request["Step"] != null)
                {
                    return(Code.MvcHelper.Post(error, Url.Action("List", "SurveyClass", new { surveyId = surveyId })));
                }
                else
                {
                    return(Code.MvcHelper.Post(error, Url.Action("List")));
                }
            }
        }