public bool SaveQualityOption(XkSystem.Models.DbContext db, Quality.Entity.tbQualityItem qualityItem, HttpRequestBase request) { var txtId = request["txtId"].Split(','); var txtNo = request["txtNo"].Split(','); var txtName = request["txtName"].Split(','); var txtValue = request["txtValue"].Split(','); var list = (from p in db.Table <Quality.Entity.tbQualityOption>() where p.tbQualityItem.Id == qualityItem.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++) { //输入内容不为空,判断是否存在id并执行对应的操作 if (string.IsNullOrEmpty(txtId[i]) == false) { //如果有id的,执行更新操作 var tb = list.Where(d => d.Id == txtId[i].ConvertToInt()).FirstOrDefault(); XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("修改评价选项"); tb.No = txtNo[i].ConvertToInt(); tb.OptionName = txtName[i]; tb.tbQualityItem = qualityItem; tb.OptionValue = txtValue[i].ConvertToDecimal(); } else { //没有id的,执行插入操作 var tb = new Quality.Entity.tbQualityOption(); tb.No = txtNo[i].ConvertToInt(); tb.OptionName = txtName[i]; tb.tbQualityItem = qualityItem; tb.OptionValue = txtValue[i].ConvertToDecimal(); db.Set <Quality.Entity.tbQualityOption>().Add(tb); XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加评价内容"); } } return(true); }
public ActionResult Edit(Models.Quality.Edit vm) { using (var db = new XkSystem.Models.DbContext()) { var error = new List <string>(); if (vm.QualityEdit.ToDate < vm.QualityEdit.FromDate) { error.AddError("开始时间不能大于结束时间!"); } int qualityId = 0; if (error.Count == decimal.Zero) { if (vm.QualityEdit.Id == 0) { if (vm.CreateWay == "复制历史" && vm.CopyQualityId == 0) { error.AddError("请选择需要复制的历史评教设置!"); } else { var tb = new Quality.Entity.tbQuality(); tb.No = vm.QualityEdit.No == null?db.Table <Quality.Entity.tbQuality>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.QualityEdit.No; tb.tbYear = db.Set <Basis.Entity.tbYear>().Find(vm.QualityEdit.YearId); tb.QualityName = vm.QualityEdit.QualityName; tb.FromDate = vm.QualityEdit.FromDate; tb.ToDate = vm.QualityEdit.ToDate; tb.IsOpen = vm.QualityEdit.IsOpen; tb.IsActive = vm.QualityEdit.IsActive; db.Set <Quality.Entity.tbQuality>().Add(tb); if (db.SaveChanges() > 0) { XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加评价"); } qualityId = tb.Id; if (tb.IsActive == true) { var list = (from p in db.Table <Quality.Entity.tbQuality>() where p.Id != tb.Id && p.IsDeleted == false select p).ToList(); foreach (var model in list) { model.IsActive = false; model.UpdateTime = DateTime.Now; } } #region 制历史 if (vm.CreateWay == "复制历史" && vm.CopyQualityId != 0) { var copyQuality = (from p in db.Table <Quality.Entity.tbQuality>() where p.Id == vm.CopyQualityId && p.IsDeleted == false select p).FirstOrDefault(); #region tbQualityItemGroup //获取需要复制的评价分组 var copyQualityItemGroupList = (from p in db.Table <Quality.Entity.tbQualityItemGroup>() where p.tbQuality.Id == vm.CopyQualityId && p.IsDeleted == false && p.tbQuality.IsDeleted == false select p).ToList(); foreach (var copyQualityItemGroup in copyQualityItemGroupList) { var group = new Quality.Entity.tbQualityItemGroup(); group.QualityItemGroupName = copyQualityItemGroup.QualityItemGroupName; group.No = copyQualityItemGroup.No; group.tbQuality = tb; db.Set <Quality.Entity.tbQualityItemGroup>().Add(group); //获取需要复制的评价内容 var copyQualityItemList = (from p in db.Table <Quality.Entity.tbQualityItem>() .Include(d => d.tbQualityItemGroup) where p.tbQualityItemGroup.Id == copyQualityItemGroup.Id && p.IsDeleted == false && p.tbQualityItemGroup.IsDeleted == false && p.tbQualityItemGroup.tbQuality.IsDeleted == false select p).ToList(); foreach (var copyQualityItem in copyQualityItemList) { var item = new Quality.Entity.tbQualityItem(); item.QualityItemName = copyQualityItem.QualityItemName; item.No = copyQualityItem.No; item.QualityItemType = copyQualityItem.QualityItemType; item.tbQualityItemGroup = group; db.Set <Quality.Entity.tbQualityItem>().Add(item); //获取需要复制的评价选项 var copyQualityOptionList = (from p in db.Table <Quality.Entity.tbQualityOption>() .Include(d => d.tbQualityItem) where p.tbQualityItem.Id == copyQualityItem.Id && p.IsDeleted == false && p.tbQualityItem.IsDeleted == false && p.tbQualityItem.tbQualityItemGroup.IsDeleted == false && p.tbQualityItem.tbQualityItemGroup.tbQuality.IsDeleted == false select p).ToList(); foreach (var copyQualityOption in copyQualityOptionList) { var option = new Quality.Entity.tbQualityOption(); option.OptionName = copyQualityOption.OptionName; option.No = copyQualityOption.No; option.OptionValue = copyQualityOption.OptionValue; option.tbQualityItem = item; db.Set <Quality.Entity.tbQualityOption>().Add(option); } } } db.SaveChanges(); #endregion } } #endregion } else { var tb = (from p in db.Table <Quality.Entity.tbQuality>() where p.Id == vm.QualityEdit.Id select p).FirstOrDefault(); if (tb != null) { qualityId = tb.Id; tb.No = vm.QualityEdit.No == null?db.Table <Quality.Entity.tbQuality>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.QualityEdit.No; tb.QualityName = vm.QualityEdit.QualityName; tb.tbYear = db.Set <Basis.Entity.tbYear>().Find(vm.QualityEdit.YearId); tb.FromDate = vm.QualityEdit.FromDate; tb.ToDate = vm.QualityEdit.ToDate; tb.IsOpen = vm.QualityEdit.IsOpen; tb.IsActive = vm.QualityEdit.IsActive; if (tb.IsActive == true) { var list = (from p in db.Table <Quality.Entity.tbQuality>() where p.Id != tb.Id && p.IsDeleted == false select p).ToList(); foreach (var model in list) { model.IsActive = false; model.UpdateTime = DateTime.Now; } } 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", "QualityItemGroup", new { qualityId = qualityId }))); } else { return(Code.MvcHelper.Post(error, Url.Action("List"))); } } }