예제 #1
0
        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));
            }
        }
예제 #2
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));
            }
        }