public ActionResult Edit(int id = 0) { using (var db = new XkSystem.Models.DbContext()) { var vm = new Models.SurveyItem.Edit(); vm.SurveyItemTypeList = typeof(Code.EnumHelper.SurveyItemType).ToItemList(); vm.SurveyGroupList = Controllers.SurveyGroupController.SelectList(vm.SurveyId); if (id != 0) { var tb = (from p in db.Table <Entity.tbSurveyItem>() where p.Id == id select new Dto.SurveyItem.Edit { Id = p.Id, No = p.No, IsVertical = p.IsVertical, SurveyGroupId = p.tbSurveyGroup.Id, SurveyItemType = p.SurveyItemType, SurveyItemName = p.SurveyItemName, TextMaxLength = p.TextMaxLength }).FirstOrDefault(); if (tb != null) { vm.SurveyItemEdit = tb; vm.SurveyOptionList = (from s in db.Table <Entity.tbSurveyOption>() where s.tbSurveyItem.Id == id select new Dto.SurveyOption.List { Id = s.Id, No = s.No, OptionName = s.OptionName, OptionValue = s.OptionValue, }).ToList(); } } return(View(vm)); } }
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)); } }