public ActionResult Edit(Models.ExamLevel.Edit vm)
        {
            using (var db = new XkSystem.Models.DbContext())
            {
                var error = new List <string>();
                if (error.Count == decimal.Zero)
                {
                    if (vm.ExamLevelEdit.Id == 0)
                    {
                        var tb = new Exam.Entity.tbExamLevel();
                        tb.No = vm.ExamLevelEdit.No == null?db.Table <Exam.Entity.tbExamLevel>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.ExamLevelEdit.No;

                        tb.ExamLevelName    = vm.ExamLevelEdit.ExamLevelName;
                        tb.tbExamLevelGroup = db.Set <Exam.Entity.tbExamLevelGroup>().Find(vm.LevelGroupId);
                        tb.Rate             = vm.ExamLevelEdit.Rate;
                        tb.ExamLevelValue   = vm.ExamLevelEdit.ExamLevelValue;
                        tb.MaxScore         = vm.ExamLevelEdit.MaxScore;
                        tb.MinScore         = vm.ExamLevelEdit.MinScore;
                        db.Set <Exam.Entity.tbExamLevel>().Add(tb);
                        if (db.SaveChanges() > 0)
                        {
                            XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加考试等级");
                        }
                    }
                    else
                    {
                        var tb = (from p in db.Table <Exam.Entity.tbExamLevel>()
                                  where p.Id == vm.ExamLevelEdit.Id
                                  select p).FirstOrDefault();
                        if (tb != null)
                        {
                            tb.No = vm.ExamLevelEdit.No == null?db.Table <Exam.Entity.tbExamLevel>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.ExamLevelEdit.No;

                            tb.ExamLevelName    = vm.ExamLevelEdit.ExamLevelName;
                            tb.tbExamLevelGroup = db.Set <Exam.Entity.tbExamLevelGroup>().Find(vm.LevelGroupId);
                            tb.Rate             = vm.ExamLevelEdit.Rate;
                            tb.ExamLevelValue   = vm.ExamLevelEdit.ExamLevelValue;
                            tb.MaxScore         = vm.ExamLevelEdit.MaxScore;
                            tb.MinScore         = vm.ExamLevelEdit.MinScore;
                            if (db.SaveChanges() > 0)
                            {
                                XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("修改考试等级");
                            }
                        }
                        else
                        {
                            error.AddError(Resources.LocalizedText.MsgNotFound);
                        }
                    }
                }

                return(Code.MvcHelper.Post(error));
            }
        }
Example #2
0
        public ActionResult Edit(Models.ExamLevelGroup.Edit vm)
        {
            using (var db = new XkSystem.Models.DbContext())
            {
                var error = new List <string>();
                //等级组下的等级
                var arrystr  = new string[] { };
                var txtId    = Request["txtId"] != null? Request["txtId"].Split(','): arrystr;
                var txtNo    = Request["txtNo"] != null? Request["txtNo"].Split(','): arrystr;
                var txtName  = Request["txtName"] != null?Request["txtName"].Split(','): arrystr;
                var txtValue = Request["txtValue"] != null? Request["txtValue"].Split(','): arrystr;
                var txtRate  = Request["txtRate"] != null? Request["txtRate"].Split(','): arrystr;
                var txtMax   = Request["txtMax"] != null? Request["txtMax"].Split(','): arrystr;
                var txtMin   = Request["txtMin"] != null? Request["txtMin"].Split(','): arrystr;
                if (error.Count == decimal.Zero)
                {
                    if (vm.ExamLevelGroupEdit.Id == 0)
                    {
                        var tb = new Exam.Entity.tbExamLevelGroup();
                        tb.No = vm.ExamLevelGroupEdit.No == null?db.Table <Exam.Entity.tbExamLevelGroup>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.ExamLevelGroupEdit.No;

                        tb.ExamLevelGroupName = vm.ExamLevelGroupEdit.ExamLevelGroupName;
                        tb.IsGenerate         = vm.ExamLevelGroupEdit.IsGenerate;
                        tb.IsTotal            = vm.ExamLevelGroupEdit.IsTotal;
                        db.Set <Exam.Entity.tbExamLevelGroup>().Add(tb);
                        if (db.SaveChanges() > 0)
                        {
                            XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加考试等级分组");
                        }

                        #region 等级处理
                        var list = (from p in db.Table <Exam.Entity.tbExamLevel>()
                                    where p.tbExamLevelGroup.Id == tb.Id
                                    select p).ToList();
                        foreach (var a in list.Where(d => txtId.Contains(d.Id.ToString()) == false))
                        {
                            a.IsDeleted = true;
                        }
                        for (var i = 0; i < txtId.Count(); i++)
                        {
                            if (string.IsNullOrEmpty(txtName[i]))
                            {
                                //输入内容为空,判断是否存在Id
                                if (string.IsNullOrEmpty(txtId[i]) == false)
                                {
                                    //如果是有id的,那就是数据库中记录的,应该做删除
                                    var tf = list.Where(d => d.Id == txtId[i].ConvertToInt()).FirstOrDefault();
                                    XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("删除考试等级");
                                    tb.IsDeleted = true;
                                }
                            }
                            else
                            {
                                //输入内容不为空,判断是否存在id并执行对应的操作
                                if (string.IsNullOrEmpty(txtId[i]) == false)
                                {
                                    //如果有id的,执行更新操作
                                    var tf = list.Where(d => d.Id == txtId[i].ConvertToInt()).FirstOrDefault();
                                    XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("修改考试等级");
                                    tf.No             = txtNo[i].ConvertToInt();
                                    tf.ExamLevelName  = txtName[i];
                                    tf.ExamLevelValue = txtValue[i].ConvertToDecimal();
                                    tf.Rate           = txtRate[i].ConvertToDecimal();
                                    tf.MaxScore       = txtMax[i].ConvertToDecimal();
                                    tf.MinScore       = txtMin[i].ConvertToDecimal();
                                }
                                else
                                {
                                    //没有id的,执行插入操作
                                    var tf = new Exam.Entity.tbExamLevel();
                                    tf.tbExamLevelGroup = db.Set <Exam.Entity.tbExamLevelGroup>().Find(tb.Id);
                                    tf.No             = txtNo[i].ConvertToInt();
                                    tf.ExamLevelName  = txtName[i];
                                    tf.ExamLevelValue = txtValue[i].ConvertToDecimal();
                                    tf.Rate           = txtRate[i].ConvertToDecimal();
                                    tf.MaxScore       = txtMax[i].ConvertToDecimal();
                                    tf.MinScore       = txtMin[i].ConvertToDecimal();
                                    db.Set <Exam.Entity.tbExamLevel>().Add(tf);
                                    XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加考试等级");
                                }
                            }
                        }
                        db.SaveChanges();
                        #endregion
                    }
                    else
                    {
                        var tb = (from p in db.Table <Exam.Entity.tbExamLevelGroup>()
                                  where p.Id == vm.ExamLevelGroupEdit.Id
                                  select p).FirstOrDefault();
                        if (tb != null)
                        {
                            tb.No = vm.ExamLevelGroupEdit.No == null?db.Table <Exam.Entity.tbExamLevelGroup>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.ExamLevelGroupEdit.No;

                            tb.ExamLevelGroupName = vm.ExamLevelGroupEdit.ExamLevelGroupName;
                            tb.IsGenerate         = vm.ExamLevelGroupEdit.IsGenerate;
                            tb.IsTotal            = vm.ExamLevelGroupEdit.IsTotal;
                            if (db.SaveChanges() > 0)
                            {
                                XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("修改考试等级分组");
                            }

                            #region 等级处理
                            var list = (from p in db.Table <Exam.Entity.tbExamLevel>()
                                        where p.tbExamLevelGroup.Id == vm.ExamLevelGroupEdit.Id
                                        select p).ToList();
                            foreach (var a in list.Where(d => txtId.Contains(d.Id.ToString()) == false))
                            {
                                a.IsDeleted = true;
                            }

                            for (var i = 0; i < txtId.Count(); i++)
                            {
                                if (string.IsNullOrEmpty(txtName[i]))
                                {
                                    //输入内容为空,判断是否存在Id
                                    if (string.IsNullOrEmpty(txtId[i]) == false)
                                    {
                                        //如果是有id的,那就是数据库中记录的,应该做删除
                                        var tf = list.Where(d => d.Id == txtId[i].ConvertToInt()).FirstOrDefault();
                                        tb.IsDeleted = true;
                                    }
                                }
                                else
                                {
                                    //输入内容不为空,判断是否存在id并执行对应的操作
                                    if (string.IsNullOrEmpty(txtId[i]) == false)
                                    {
                                        //如果有id的,执行更新操作
                                        var tf = list.Where(d => d.Id == txtId[i].ConvertToInt()).FirstOrDefault();
                                        tf.No             = txtNo[i].ConvertToInt();
                                        tf.ExamLevelName  = txtName[i];
                                        tf.ExamLevelValue = txtValue[i].ConvertToDecimal();
                                        tf.Rate           = txtRate[i].ConvertToDecimal();
                                        tf.MaxScore       = txtMax[i].ConvertToDecimal();
                                        tf.MinScore       = txtMin[i].ConvertToDecimal();
                                        XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("修改考试等级");
                                    }
                                    else
                                    {
                                        //没有id的,执行插入操作
                                        var tf = new Exam.Entity.tbExamLevel();
                                        tf.tbExamLevelGroup = db.Set <Exam.Entity.tbExamLevelGroup>().Find(vm.ExamLevelGroupEdit.Id);
                                        tf.No             = txtNo[i].ConvertToInt();
                                        tf.ExamLevelName  = txtName[i];
                                        tf.ExamLevelValue = txtValue[i].ConvertToDecimal();
                                        tf.Rate           = txtRate[i].ConvertToDecimal();
                                        tf.MaxScore       = txtMax[i].ConvertToDecimal();
                                        tf.MinScore       = txtMin[i].ConvertToDecimal();
                                        db.Set <Exam.Entity.tbExamLevel>().Add(tf);
                                        XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加考试等级");
                                    }
                                }
                            }
                            db.SaveChanges();
                            #endregion
                        }
                        else
                        {
                            error.AddError(Resources.LocalizedText.MsgNotFound);
                        }
                    }
                }

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