예제 #1
0
 public ActionResult OnceEdit(Models.MoralData.OnceEdit vm)
 {
     return(Code.MvcHelper.Post(null, Url.Action("OnceEdit", new
     {
         moralId = vm.MoralId
     })));
 }
예제 #2
0
        public ActionResult Save(Models.MoralData.OnceEdit vm)
        {
            var error = new List <string>();

            using (var db = new XkSystem.Models.DbContext())
            {
                var moralId = vm.MoralId;

                var moralItemIds = db.Table <Moral.Entity.tbMoralItem>().Where(p => p.tbMoralGroup.tbMoral.Id == vm.MoralId).Select(p => p.Id).ToList();
                var itemCount    = moralItemIds.Count;

                //列数
                var arrLength = itemCount * 2 + 3;          // 4=__RequestVerificationToken+MoralId+MoralDate+StudentIds
                var list      = new List <string>();
                for (var i = 2; i < arrLength; i++)
                {
                    list.Add(Request.Form[i]);
                }
                var listData   = new List <Moral.Entity.tbMoralData>();
                var studentIds = list[0].Split(',').Select(int.Parse).ToList();

                for (var i = 0; i < studentIds.Count; i++)
                {
                    Moral.Entity.tbMoralData tb = null;
                    for (var j = 1; j < list.Count; j += 2)
                    {
                        tb           = new Moral.Entity.tbMoralData();
                        tb.tbStudent = db.Set <Student.Entity.tbStudent>().Find(studentIds[i]);

                        //偶数,MoralItem
                        var items = list[j].Split(',').Select(int.Parse).ToList();
                        tb.tbMoralItem = db.Set <Moral.Entity.tbMoralItem>().Find(items[i]);

                        //奇数,MoralOption或者MoralDataText
                        var options = list[j + 1].Split(',');
                        var option  = options[i];

                        //值包含option前缀的为MoralOption
                        if (option.Contains("option_"))      // option_i
                        {
                            var optionId = option.Split('_')[1].ConvertToInt();
                            tb.tbMoralOption = db.Set <Moral.Entity.tbMoralOption>().Find(optionId);
                        }
                        else
                        {
                            //判断dataText是否在MinScore和MaxScore之间
                            var optionValue = option.ConvertToDecimal();
                            if (optionValue < tb.tbMoralItem.MinScore || optionValue > tb.tbMoralItem.MaxScore)
                            {
                                error.Add($"第{i + 1}行{tb.tbMoralItem.MoralItemName}的分数必须在{tb.tbMoralItem.MinScore}-{tb.tbMoralItem.MaxScore}之间!");
                            }
                            tb.DataText = option.ConvertToDecimal();
                        }
                        listData.Add(tb);
                    }
                }
                if (!error.Any())
                {
                    var tbSysUser = db.Set <Sys.Entity.tbSysUser>().Find(Code.Common.UserId);
                    listData.ForEach(p =>
                    {
                        p.InputDate = DateTime.Now;
                        //p.MoralDate = vm.MoralDate;
                        p.MoralDate = DateTime.Now;
                        p.tbSysUser = tbSysUser;
                        p.Comment   = string.Empty;     //单次模式评语默认为空
                    });

                    var oldData = (from p in db.Table <Moral.Entity.tbMoralData>()
                                   where studentIds.Contains(p.tbStudent.Id) && moralItemIds.Contains(p.tbMoralItem.Id)
                                   //&& vm.MoralDate == p.MoralDate
                                   select p);
                    foreach (var item in oldData)
                    {
                        item.IsDeleted = true;
                    }

                    db.Set <Moral.Entity.tbMoralData>().AddRange(listData);

                    if (db.SaveChanges() > 0)
                    {
                        Sys.Controllers.SysUserLogController.Insert("录入了德育数据!");
                    }
                }
            }
            return(Code.MvcHelper.Post(error, message: "保存成功!"));
        }
예제 #3
0
        public ActionResult OnceEdit()
        {
            using (var db = new XkSystem.Models.DbContext())
            {
                var vm    = new Models.MoralData.OnceEdit();
                var moral = db.Set <Moral.Entity.tbMoral>().Find(vm.MoralId);

                if (moral == null)
                {
                    moral = (from p in db.Table <Moral.Entity.tbMoral>() where DateTime.Now <= p.ToDate && DateTime.Now >= p.FromDate select p).FirstOrDefault();
                }

                if (moral == null)
                {
                    vm.DataIsNull = true;
                    return(View(vm));
                    //return RedirectToAction("List", "Moral");
                }

                switch (moral.MoralType)
                {
                case Code.EnumHelper.MoralType.Many:
                    return(RedirectToAction("Edit", new { MoralId = vm.MoralId }));

                case Code.EnumHelper.MoralType.Days:
                    return(RedirectToAction("DayEdit", new { MoralId = vm.MoralId }));
                }

                vm.MoralId        = moral.Id;
                vm.MoralClassList = MoralClassController.SelectList(vm.MoralId);
                vm.MoralGroupList = MoralGroupController.GetMoralGroupInfoList(vm.MoralId);
                vm.MoralList      = MoralController.SelectList();
                vm.MoralType      = moral.MoralType;

                foreach (var group in vm.MoralGroupList)
                {
                    vm.MoralItemList.AddRange(MoralItemController.SelectList(group.Id));
                }
                foreach (var item in vm.MoralItemList)
                {
                    vm.MoralOptionList.AddRange(MoralOptionController.SelectList(item.Id));
                }
                var moralClassIds = (from p in db.Table <Moral.Entity.tbMoralClass>() where p.tbMoral.Id == vm.MoralId select p.tbClass.Id).ToList();
                vm.StudentList = Student.Controllers.StudentController.GetStudentInfoListByClassIds(moralClassIds);

                var moralItemIds = vm.MoralItemList.Select(p => p.Id);
                vm.MoralDataList = (from p in db.Table <Moral.Entity.tbMoralData>()
                                    where
                                    p.CheckStatus == Code.EnumHelper.CheckStatus.Success &&
                                    moralItemIds.Contains(p.tbMoralItem.Id)      /*&& vm.MoralDate == p.MoralDate*/
                                    orderby p.No
                                    select new Dto.MoralData.OnceList()
                {
                    Id = p.Id,
                    DataText = p.DataText,
                    MoralItemId = p.tbMoralItem.Id,
                    MoralOptionId = p.tbMoralOption != null ? p.tbMoralOption.Id : 0,
                    StudentId = p.tbStudent.Id,
                    StudentName = p.tbStudent.StudentName,
                    SysUserName = p.tbSysUser.UserName
                }).ToList();


                return(View(vm));
            }
        }