Esempio n. 1
0
 public ActionResult DayEdit(Models.MoralData.DayEdit vm)
 {
     return(Code.MvcHelper.Post(null, Url.Action("DayEdit", new
     {
         moralId = vm.MoralId,
         moralDate = vm.MoralDate
     })));
 }
Esempio n. 2
0
        public ActionResult SaveForDay(Models.MoralData.DayEdit 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 + 4;          // 4=__RequestVerificationToken+MoralId+MoralDate+StudentIds
                var list      = new List <string>();
                for (var i = 3; 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.tbSysUser = tbSysUser;
                    });

                    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: "保存成功!"));
        }
Esempio n. 3
0
        public ActionResult DayEdit()
        {
            using (var db = new XkSystem.Models.DbContext())
            {
                var vm    = new Models.MoralData.DayEdit();
                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.Once:
                    return(RedirectToAction("OnceEdit", new { MoralId = vm.MoralId }));
                }

                if (vm.MoralDate == Code.DateHelper.MinDate)
                {
                    vm.MoralDate = moral.FromDate;
                }

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

                vm.MoralType = moral.MoralType;

                vm.FromDate = moral.FromDate.ToString(Code.Common.StringToDate);
                vm.ToDate   = moral.ToDate.ToString(Code.Common.StringToDate);

                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));
            }
        }