public ActionResult SetBest(int id)
        {
            using (var db = new XkSystem.Models.DbContext())
            {
                var tb = db.Table <Student.Entity.tbStudentBest>().Where(d => d.tbStudent.Id == id).FirstOrDefault();
                if (tb != null)
                {
                    tb.IsDeleted = true;
                }
                else
                {
                    tb = new Student.Entity.tbStudentBest()
                    {
                        tbStudent = db.Set <Student.Entity.tbStudent>().Find(id),
                        tbSysUser = db.Set <Sys.Entity.tbSysUser>().Find(Code.Common.UserId),
                        InputDate = DateTime.Now
                    };
                    db.Set <Student.Entity.tbStudentBest>().Add(tb);
                }

                if (db.SaveChanges() > 0)
                {
                    XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("设置了优秀学生");
                }

                return(Code.MvcHelper.Post());
            }
        }
        public ActionResult Import(Models.StudentBest.Import vm)
        {
            if (ModelState.IsValid)
            {
                using (var db = new XkSystem.Models.DbContext())
                {
                    #region   文件
                    var file     = Request.Files[nameof(vm.UploadFile)];
                    var fileSave = System.IO.Path.GetTempFileName();
                    file.SaveAs(fileSave);

                    if (Code.Common.GetFileType(file.FileName) != Code.FileType.Excel)
                    {
                        ModelState.AddModelError("", "上传的文件不是正确的EXCLE文件!");
                        return(View(vm));
                    }
                    var dt = Code.NpoiHelper.ExcelToDataTable(fileSave, System.IO.Path.GetExtension(file.FileName), string.Empty);
                    if (dt == null)
                    {
                        ModelState.AddModelError("", "无法读取上传的文件,请检查文件格式是否正确!");
                        return(View(vm));
                    }
                    var tbList = new List <string>()
                    {
                        "学生学号", "学生姓名"
                    };

                    var Text = string.Empty;
                    foreach (var a in tbList)
                    {
                        if (!dt.Columns.Contains(a.ToString()))
                        {
                            Text += a + ",";
                        }
                    }

                    if (!string.IsNullOrEmpty(Text))
                    {
                        ModelState.AddModelError("", "上传的EXCEL内容与预期不一致,缺少对应的字段:" + Text);
                        return(View(vm));
                    }

                    foreach (System.Data.DataRow dr in dt.Rows)
                    {
                        var dtoTemp = new Dto.StudentBest.Import()
                        {
                            StudentCode = dr["学生学号"].ConvertToString(),
                            StudentName = dr["学生姓名"].ConvertToString()
                        };
                        if (vm.ImportList.Where(d => d.StudentCode == dtoTemp.StudentCode &&
                                                d.StudentName == dtoTemp.StudentName).Any() == false)
                        {
                            vm.ImportList.Add(dtoTemp);
                        }
                    }

                    vm.ImportList.RemoveAll(d =>
                                            string.IsNullOrEmpty(d.StudentCode) &&
                                            string.IsNullOrEmpty(d.StudentName));

                    if (vm.ImportList.Count == 0)
                    {
                        ModelState.AddModelError("", "未读取到任何有效数据!");
                        return(View(vm));
                    }
                    #endregion

                    #region 验证数据
                    var studentList = db.Table <Student.Entity.tbStudent>().ToList();

                    foreach (var item in vm.ImportList)
                    {
                        if (string.IsNullOrEmpty(item.StudentName))
                        {
                            item.Error += "学生姓名不能为空;";
                        }
                        if (string.IsNullOrEmpty(item.StudentCode))
                        {
                            item.Error += "学生学号不能为空;";
                        }
                        if (studentList.Where(d => d.StudentCode == item.StudentCode && d.StudentName == item.StudentName).Any() == false)
                        {
                            item.Error += "系统中不存在该学生;";
                        }
                    }

                    if (vm.ImportList.Where(d => string.IsNullOrEmpty(d.Error) == false).Count() > 0)
                    {
                        vm.ImportList.RemoveAll(d => string.IsNullOrEmpty(d.Error));
                        return(View(vm));
                    }
                    #endregion

                    #region 保存数据
                    var studentBestList = db.Table <Student.Entity.tbStudentBest>()
                                          .Include(d => d.tbStudent).ToList();
                    var tbStudentBestList = new List <Student.Entity.tbStudentBest>();
                    foreach (var v in vm.ImportList)
                    {
                        if (tbStudentBestList.Where(d => d.tbStudent.StudentCode == v.StudentCode && d.tbStudent.StudentName == v.StudentName).Any() == false &&
                            studentBestList.Where(d => d.tbStudent.StudentCode == v.StudentCode && d.tbStudent.StudentName == v.StudentName).Any() == false)
                        {
                            var studentBest = new Student.Entity.tbStudentBest()
                            {
                                tbStudent = studentList.Where(d => d.StudentName == v.StudentName && d.StudentCode == v.StudentCode).FirstOrDefault(),
                                tbSysUser = db.Set <Sys.Entity.tbSysUser>().Find(Code.Common.UserId),
                                InputDate = DateTime.Now
                            };
                            tbStudentBestList.Add(studentBest);
                        }
                    }

                    db.Set <Student.Entity.tbStudentBest>().AddRange(tbStudentBestList);

                    if (db.SaveChanges() > 0)
                    {
                        vm.Status = true;
                        XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("批量添加优秀学生");
                    }
                    #endregion
                }
            }
            vm.ImportList.RemoveAll(d => string.IsNullOrEmpty(d.Error));
            return(View(vm));
        }