コード例 #1
0
        public bool SaveSurveyOption(XkSystem.Models.DbContext db, List <Entity.tbSurveyItem> surveyItems, HttpRequestBase request)
        {
            var txtOptionId    = request["txtOptionId"].Split(',');
            var txtOptionName  = request["txtOptionName"].Split(',');
            var txtOptionValue = request["txtOptionValue"].Split(',');

            //没数据直接跳过
            if (txtOptionId.Length <= 0 && txtOptionName.Length <= 0)
            {
                return(true);
            }

            for (var i = 0; i < surveyItems.Count(); i++)
            {
                int id = surveyItems[i].Id;

                var list = (from p in db.Table <Entity.tbSurveyOption>()
                            where p.tbSurveyItem.Id == id
                            select p).ToList();

                var optionIds = txtOptionId[i].Split(new char[] { ';' });

                //默认Item下全部Delete状态,方便Id传的数量和Name不相等情况处理
                foreach (var a in list)
                {
                    a.IsDeleted = true;
                }

                //Item控制器可能删除了该数据,所以要判断状态
                if (surveyItems[i].IsDeleted == false)
                {
                    var optionNames = txtOptionName[i].Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);

                    for (int j = 0; j < optionNames.Length; j++)
                    {
                        //如果有id的,执行更新操作,可能填了X个Name,但是Id的总数是小于X个的
                        if (optionIds.Length >= (j + 1) && string.IsNullOrEmpty(optionIds[j]) == false)
                        {
                            var tb = list.Where(d => d.Id == optionIds[j].ConvertToInt()).FirstOrDefault();
                            tb.tbSurveyItem = surveyItems[i];
                            tb.OptionName   = optionNames[j];
                        }
                        else
                        {
                            //没有id的,执行插入操作
                            var tb = new Entity.tbSurveyOption();
                            tb.tbSurveyItem = surveyItems[i];
                            tb.OptionName   = optionNames[j];
                            tb.OptionValue  = txtOptionValue[j].ConvertToDecimal();
                            db.Set <Entity.tbSurveyOption>().Add(tb);
                        }
                    }
                }
            }

            return(true);
        }
コード例 #2
0
        public ActionResult Edit(Models.SurveyOption.Edit vm)
        {
            using (var db = new XkSystem.Models.DbContext())
            {
                var error = new List <string>();
                if (error.Count == decimal.Zero)
                {
                    if (vm.OptionEdit.Id == 0)
                    {
                        var tb = new Entity.tbSurveyOption();
                        tb.No = vm.OptionEdit.No == null?db.Table <Entity.tbSurveyOption>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.OptionEdit.No;

                        tb.tbSurveyItem = db.Set <Entity.tbSurveyItem>().Find(vm.SurveyItemId);
                        tb.OptionName   = vm.OptionEdit.OptionName;
                        tb.OptionValue  = vm.OptionEdit.OptionValue;
                        db.Set <Entity.tbSurveyOption>().Add(tb);

                        if (db.SaveChanges() > 0)
                        {
                            XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加评价选项");
                        }
                    }
                    else
                    {
                        var tb = (from p in db.Table <Entity.tbSurveyOption>()
                                  where p.Id == vm.OptionEdit.Id
                                  select p).FirstOrDefault();
                        if (tb != null)
                        {
                            tb.No = vm.OptionEdit.No == null?db.Table <Entity.tbSurveyOption>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.OptionEdit.No;

                            tb.tbSurveyItem = db.Set <Entity.tbSurveyItem>().Find(vm.SurveyItemId);
                            tb.OptionName   = vm.OptionEdit.OptionName;
                            tb.OptionValue  = vm.OptionEdit.OptionValue;

                            if (db.SaveChanges() > 0)
                            {
                                XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("修改评价选项");
                            }
                        }
                        else
                        {
                            error.AddError(Resources.LocalizedText.MsgNotFound);
                        }
                    }
                }

                return(Code.MvcHelper.Post(error));
            }
        }
コード例 #3
0
        public ActionResult Import(Models.SurveyItem.Import vm)
        {
            if (ModelState.IsValid)
            {
                var file     = Request.Files[nameof(vm.UploadFile)];
                var fileSave = System.IO.Path.GetTempFileName();
                file.SaveAs(fileSave);
                using (var db = new XkSystem.Models.DbContext())
                {
                    #region 1、Excel模版校验
                    if (Code.Common.GetFileType(file.FileName) != Code.FileType.Excel)
                    {
                        ModelState.AddModelError("", "上传的文件不是正确的EXCLE文件!");
                        return(View(vm));
                    }

                    var dt = Code.NpoiHelper.ExcelToDataTable(fileSave, System.IO.Path.GetExtension(file.FileName), string.Empty);
                    if (dt == null)
                    {
                        ModelState.AddModelError("", "无法读取上传的文件,请检查文件格式是否正确!");
                        return(View(vm));
                    }
                    var tbList = new List <string>()
                    {
                        "排序", "评价内容", "评价分组", "试题类型", "是否纵向"
                    };
                    var dtOptionColumns = new List <string>();
                    foreach (var columns in dt.Columns)
                    {
                        if (!dtOptionColumns.Contains(columns.ToString()) && !tbList.Contains(columns.ToString()))
                        {
                            dtOptionColumns.Add(columns.ToString());
                        }
                    }
                    var Text = string.Empty;
                    foreach (var a in tbList)
                    {
                        if (!dt.Columns.Contains(a.ToString()))
                        {
                            Text += a + ",";
                        }
                    }
                    if (!string.IsNullOrEmpty(Text))
                    {
                        ModelState.AddModelError("", "上传的EXCEL晚自习内容与预期不一致,缺少对应的字段:" + Text);
                        return(View(vm));
                    }
                    #endregion

                    #region 2、Excel数据读取
                    foreach (System.Data.DataRow dr in dt.Rows)
                    {
                        var dtoTest = new Dto.SurveyItem.Import()
                        {
                            No               = Convert.ToString(dr["排序"]),
                            SurveyItemName   = Convert.ToString(dr["评价内容"]),
                            SurveyGroupName  = Convert.ToString(dr["评价分组"]),
                            SurveyItemType   = Convert.ToString(dr["试题类型"]),
                            IsVertical       = Convert.ToString(dr["是否纵向"]),
                            ImportOptionList = GetImportOptionList(dr, dtOptionColumns)
                        };
                        if (vm.ImportList.Where(d => d.No == dtoTest.No &&
                                                d.SurveyItemName == dtoTest.SurveyItemName &&
                                                d.SurveyGroupName == dtoTest.SurveyGroupName &&
                                                d.SurveyItemType == dtoTest.SurveyItemType &&
                                                d.IsVertical == dtoTest.IsVertical).Count() == 0)
                        {
                            vm.ImportList.Add(dtoTest);
                        }
                    }
                    vm.ImportList.RemoveAll(d =>
                                            string.IsNullOrEmpty(d.No) &&
                                            string.IsNullOrEmpty(d.SurveyItemName) &&
                                            string.IsNullOrEmpty(d.SurveyGroupName) &&
                                            string.IsNullOrEmpty(d.SurveyItemType) &&
                                            string.IsNullOrEmpty(d.IsVertical)
                                            );
                    if (vm.ImportList.Count == 0)
                    {
                        ModelState.AddModelError("", "Excel未读取到任何有效数据!");
                        return(View(vm));
                    }
                    #endregion

                    #region 3、Excel格式校验
                    //评价分组
                    var SurveyGroup = (from p in db.Table <Entity.tbSurveyGroup>()
                                       .Include(d => d.tbSurvey)
                                       where p.tbSurvey.Id == vm.SurveyId &&
                                       p.tbSurvey.IsDeleted == false
                                       select p).ToList();
                    //评价内容
                    var SurveyItemList = (from p in db.Table <Entity.tbSurveyItem>()
                                          .Include(d => d.tbSurveyGroup)
                                          where p.tbSurveyGroup.tbSurvey.Id == vm.SurveyId &&
                                          p.tbSurveyGroup.IsDeleted == false &&
                                          p.tbSurveyGroup.tbSurvey.IsDeleted == false
                                          select p).ToList();
                    //评价选项
                    var SurveyOptionList = (from p in db.Table <Entity.tbSurveyOption>()
                                            .Include(d => d.tbSurveyItem)
                                            .Include(d => d.tbSurveyItem.tbSurveyGroup)
                                            where p.tbSurveyItem.tbSurveyGroup.tbSurvey.Id == vm.SurveyId &&
                                            p.tbSurveyItem.IsDeleted == false &&
                                            p.tbSurveyItem.tbSurveyGroup.IsDeleted == false &&
                                            p.tbSurveyItem.tbSurveyGroup.tbSurvey.IsDeleted == false
                                            select p).ToList();
                    //试题类型
                    var SurveyItemTypeList = typeof(Code.EnumHelper.SurveyItemType).ToItemList();

                    //是否纵向
                    var IsVerticalList = new List <string>()
                    {
                        "是", "否"
                    };

                    foreach (var item in vm.ImportList)
                    {
                        int No = 0;
                        if (int.TryParse(item.No, out No) == false || No <= 0)
                        {
                            item.Error = item.Error + "【排序】必须是正整数!";
                            continue;
                        }
                        if (string.IsNullOrEmpty(item.SurveyItemName))
                        {
                            item.Error = item.Error + "【评价内容】不能为空!";
                            continue;
                        }
                        if (string.IsNullOrEmpty(item.SurveyGroupName))
                        {
                            item.Error = item.Error + "【评价分组】不能为空!";
                            continue;
                        }
                        else
                        {
                            if (SurveyGroup.Where(d => d.SurveyGroupName == item.SurveyGroupName).Count() == decimal.Zero)
                            {
                                item.Error = item.Error + "【评价分组】不存在数据库!";
                                continue;
                            }
                        }
                        if (string.IsNullOrEmpty(item.SurveyItemType))
                        {
                            item.SurveyItemType = "单选题";
                        }
                        else
                        {
                            if (SurveyItemTypeList.Where(d => d.Text == item.SurveyItemType).Count() == decimal.Zero)
                            {
                                item.Error += "试题类型必须是:单选题、多选题、问答题!";
                                continue;
                            }
                        }
                        if (string.IsNullOrEmpty(item.IsVertical))
                        {
                            item.IsVertical = "否";
                        }
                        else
                        {
                            if (IsVerticalList.Where(d => d == item.IsVertical).Count() == decimal.Zero)
                            {
                                item.Error += "是否纵向必须是:【是】或者【否】!";
                                continue;
                            }
                        }
                        if (item.ImportOptionList.Count > decimal.Zero)
                        {
                            var errorStr = "";
                            foreach (var a in item.ImportOptionList)
                            {
                                if (string.IsNullOrEmpty(a.SurveyOptionValue))
                                {
                                    a.SurveyOptionValue = "0";
                                }
                                else
                                {
                                    try
                                    {
                                        var value = Convert.ToDecimal(a.SurveyOptionValue);
                                    }
                                    catch
                                    {
                                        errorStr = errorStr + "【" + a.SurveyColumnName + "】的分数必须是正确的数字格式!";
                                        continue;
                                    }
                                }
                            }
                            if (string.IsNullOrEmpty(errorStr) == false)
                            {
                                item.Error += errorStr;
                                continue;
                            }
                        }
                        if (vm.IsUpdate)
                        {
                            if (SurveyItemList.Where(d => d.tbSurveyGroup.SurveyGroupName == item.SurveyGroupName && d.SurveyItemName == item.SurveyItemName).Count() > 1)
                            {
                                item.Error += "系统中该评价内容数据存在重复,无法确认需要更新的记录!";
                                continue;
                            }
                        }
                        else
                        {
                            if (SurveyItemList.Where(d => d.tbSurveyGroup.SurveyGroupName == item.SurveyGroupName && d.SurveyItemName == item.SurveyItemName).Count() > 0)
                            {
                                item.Error += "系统中已存在该记录!";
                                continue;
                            }
                        }
                    }
                    if (vm.ImportList.Where(d => string.IsNullOrEmpty(d.Error) == false).Count() > 0)
                    {
                        vm.ImportList.RemoveAll(d => string.IsNullOrEmpty(d.Error));
                        return(View(vm));
                    }
                    #endregion

                    #region 5、Excel执行导入
                    var addSurveyItemList   = new List <Entity.tbSurveyItem>();
                    var addSurveyOptionList = new List <Entity.tbSurveyOption>();
                    foreach (var item in vm.ImportList)
                    {
                        Entity.tbSurveyItem tb = null;
                        if (SurveyItemList.Where(d => d.tbSurveyGroup.SurveyGroupName == item.SurveyGroupName && d.SurveyItemName == item.SurveyItemName).Count() > 0)
                        {
                            if (vm.IsUpdate)
                            {
                                tb                = SurveyItemList.Where(d => d.tbSurveyGroup.SurveyGroupName == item.SurveyGroupName && d.SurveyItemName == item.SurveyItemName).FirstOrDefault();
                                tb.No             = item.No.ConvertToInt();
                                tb.SurveyItemName = item.SurveyItemName;
                                #region 添加外键
                                if (!string.IsNullOrEmpty(item.SurveyGroupName))
                                {
                                    tb.tbSurveyGroup = SurveyGroup.Where(d => d.SurveyGroupName == item.SurveyGroupName).FirstOrDefault();
                                }
                                #endregion
                                tb.IsVertical = item.IsVertical == "是" ? true : false;
                                if (item.SurveyItemType == "单选题")
                                {
                                    tb.SurveyItemType = Code.EnumHelper.SurveyItemType.Radio;
                                }
                                else if (item.SurveyItemType == "多选题")
                                {
                                    tb.SurveyItemType = Code.EnumHelper.SurveyItemType.CheckBox;
                                }
                                else if (item.SurveyItemType == "问答题")
                                {
                                    tb.SurveyItemType = Code.EnumHelper.SurveyItemType.TextBox;
                                }
                                else
                                {
                                    tb.SurveyItemType = Code.EnumHelper.SurveyItemType.Radio;
                                }
                            }
                        }
                        else
                        {
                            tb                = new Entity.tbSurveyItem();
                            tb.No             = item.No.ConvertToInt();
                            tb.SurveyItemName = item.SurveyItemName;
                            if (!string.IsNullOrEmpty(item.SurveyGroupName))
                            {
                                tb.tbSurveyGroup = SurveyGroup.Where(d => d.SurveyGroupName == item.SurveyGroupName).FirstOrDefault();
                            }
                            tb.IsVertical = item.IsVertical == "是" ? true : false;
                            if (item.SurveyItemType == "单选题")
                            {
                                tb.SurveyItemType = Code.EnumHelper.SurveyItemType.Radio;
                            }
                            else if (item.SurveyItemType == "多选题")
                            {
                                tb.SurveyItemType = Code.EnumHelper.SurveyItemType.CheckBox;
                            }
                            else if (item.SurveyItemType == "问答题")
                            {
                                tb.SurveyItemType = Code.EnumHelper.SurveyItemType.TextBox;
                            }
                            else
                            {
                                tb.SurveyItemType = Code.EnumHelper.SurveyItemType.Radio;
                            }
                            addSurveyItemList.Add(tb);
                        }
                        var index = 0;
                        foreach (var option in item.ImportOptionList)
                        {
                            if (item.SurveyItemType == "问答" && index == 1)
                            {
                                break;
                            }
                            if (string.IsNullOrEmpty(option.SurveyOptionName) == false)
                            {
                                if (SurveyOptionList.Where(d => d.tbSurveyItem.tbSurveyGroup.SurveyGroupName == item.SurveyGroupName && d.tbSurveyItem.SurveyItemName == item.SurveyItemName && d.OptionName == option.SurveyOptionName).Count() == decimal.Zero)
                                {
                                    index++;
                                    var tbOption = new Entity.tbSurveyOption();
                                    tbOption.OptionName   = option.SurveyOptionName;
                                    tbOption.tbSurveyItem = tb;
                                    tbOption.OptionValue  = option.SurveyOptionValue.ConvertToDecimal();
                                    tbOption.No           = index;
                                    addSurveyOptionList.Add(tbOption);
                                }
                            }
                        }
                    }
                    db.Set <Entity.tbSurveyItem>().AddRange(addSurveyItemList);
                    db.Set <Entity.tbSurveyOption>().AddRange(addSurveyOptionList);
                    if (db.SaveChanges() > 0)
                    {
                        XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("批量导入了评价内容");
                        vm.Status = true;
                    }
                    #endregion
                }
            }

            vm.ImportList.RemoveAll(d => string.IsNullOrEmpty(d.Error));
            return(View(vm));
        }
コード例 #4
0
        public ActionResult Edit(Models.SurveyItem.Edit vm)
        {
            using (var db = new XkSystem.Models.DbContext())
            {
                var error = new List <string>();
                if (error.Count == decimal.Zero)
                {
                    if (vm.SurveyItemEdit.SurveyItemType == Code.EnumHelper.SurveyItemType.TextBox)
                    {
                        var arrystr        = new string[] { };
                        var txtOptionId    = Request["txtOptionId"] != null ? Request["txtOptionId"].Split(',') : arrystr;
                        var txtOptionNo    = Request["txtOptionNo"] != null ? Request["txtOptionNo"].Split(',') : arrystr;
                        var txtOptionName  = Request["txtOptionName"] != null ? Request["txtOptionName"].Split(',') : arrystr;
                        var txtOptionValue = Request["txtOptionValue"] != null ? Request["txtOptionValue"].Split(',') : arrystr;

                        if (txtOptionId.Count() > decimal.One || txtOptionNo.Count() > decimal.One || txtOptionName.Count() > decimal.One)
                        {
                            var errorMsg = new { Status = decimal.Zero, Message = "问答题,只允许保留一个选择项目,请删除多余项目" };
                            return(Json(errorMsg));
                        }
                    }
                    #region 保存项目
                    if (vm.SurveyItemEdit.Id == 0)//新增项目
                    {
                        var tb = new Entity.tbSurveyItem();
                        tb.No = vm.SurveyItemEdit.No == null?db.Table <Entity.tbSurveyItem>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.SurveyItemEdit.No;

                        tb.SurveyItemName = vm.SurveyItemEdit.SurveyItemName;
                        tb.tbSurveyGroup  = db.Set <Entity.tbSurveyGroup>().Find(vm.SurveyItemEdit.SurveyGroupId);
                        tb.IsVertical     = vm.SurveyItemEdit.IsVertical;
                        tb.SurveyItemType = vm.SurveyItemEdit.SurveyItemType;
                        tb.TextMaxLength  = vm.SurveyItemEdit.TextMaxLength;
                        db.Set <Entity.tbSurveyItem>().Add(tb);
                        if (db.SaveChanges() > 0)
                        {
                            XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加评价项目");
                        }
                        vm.SurveyItemEdit.Id = tb.Id;
                    }
                    else//修改
                    {
                        var tb = (from p in db.Table <Entity.tbSurveyItem>()
                                  where p.Id == vm.SurveyItemEdit.Id
                                  select p).FirstOrDefault();
                        if (tb != null)
                        {
                            tb.No = vm.SurveyItemEdit.No == null?db.Table <Entity.tbSurveyItem>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.SurveyItemEdit.No;

                            tb.SurveyItemName = vm.SurveyItemEdit.SurveyItemName;
                            tb.tbSurveyGroup  = db.Set <Entity.tbSurveyGroup>().Find(vm.SurveyItemEdit.SurveyGroupId);
                            tb.IsVertical     = vm.SurveyItemEdit.IsVertical;
                            tb.SurveyItemType = vm.SurveyItemEdit.SurveyItemType;
                            tb.TextMaxLength  = vm.SurveyItemEdit.TextMaxLength;
                            if (db.SaveChanges() > 0)
                            {
                                XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("修改评价项目");
                            }
                        }
                        else
                        {
                            error.AddError(Resources.LocalizedText.MsgNotFound);
                        }
                    }
                    #endregion
                    if (vm.SurveyItemEdit.Id != 0)
                    {
                        var arrystr        = new string[] { };
                        var txtOptionId    = Request["txtOptionId"] != null ? Request["txtOptionId"].Split(',') : arrystr;
                        var txtOptionNo    = Request["txtOptionNo"] != null ? Request["txtOptionNo"].Split(',') : arrystr;
                        var txtOptionName  = Request["txtOptionName"] != null ? Request["txtOptionName"].Split(',') : arrystr;
                        var txtOptionValue = Request["txtOptionValue"] != null ? Request["txtOptionValue"].Split(',') : arrystr;

                        if (txtOptionId.Count() == decimal.Zero || txtOptionNo.Count() == decimal.Zero || txtOptionName.Count() == decimal.Zero)
                        {
                            return(Code.MvcHelper.Post(error));
                        }

                        var list = (from p in db.Table <Entity.tbSurveyOption>()
                                    where p.tbSurveyItem.Id == vm.SurveyItemEdit.Id
                                    select p).ToList();
                        //删除无效
                        foreach (var a in list.Where(d => txtOptionId.Contains(d.Id.ToString()) == false))
                        {
                            a.IsDeleted = true;
                        }
                        for (var i = 0; i < txtOptionId.Count(); i++)
                        {
                            if (string.IsNullOrEmpty(txtOptionName[i]))
                            {
                                //输入内容为空,判断是否存在Id
                                if (string.IsNullOrEmpty(txtOptionId[i]) == false)
                                {
                                    //如果是有id的,那就是数据库中记录的,应该做删除
                                    var tb = list.Where(d => d.Id == txtOptionId[i].ConvertToInt()).FirstOrDefault();
                                    XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("删除评价内容");
                                    tb.IsDeleted = true;
                                }
                            }
                            else
                            {
                                //输入内容不为空,判断是否存在id并执行对应的操作
                                if (string.IsNullOrEmpty(txtOptionId[i]) == false)
                                {
                                    //如果有id的,执行更新操作
                                    var tb = list.Where(d => d.Id == txtOptionId[i].ConvertToInt()).FirstOrDefault();
                                    tb.No          = txtOptionNo[i].ConvertToInt();
                                    tb.OptionName  = txtOptionName[i];
                                    tb.OptionValue = txtOptionValue[i].ConvertToDecimal();
                                    XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("修改评价内容");
                                }
                                else
                                {
                                    //没有id的,执行插入操作
                                    var tb = new Entity.tbSurveyOption();
                                    tb.No           = txtOptionNo[i].ConvertToInt();
                                    tb.OptionName   = txtOptionName[i];
                                    tb.OptionValue  = txtOptionValue[i].ConvertToDecimal();
                                    tb.tbSurveyItem = db.Set <Entity.tbSurveyItem>().Find(vm.SurveyItemEdit.Id);
                                    db.Set <Entity.tbSurveyOption>().Add(tb);
                                    XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加评价内容");
                                }
                            }
                        }
                        db.SaveChanges();
                    }
                }
                return(Code.MvcHelper.Post(error));
            }
        }
コード例 #5
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")));
                }
            }
        }