public IActionResult Login(string returnUrl = null) { Random rand = new Random(); int index = rand.Next(0, 2); ViewBag.StaffName = _config.LoadSystemSetting().Staffs[index].Name; ViewBag.StaffPhone = _config.LoadSystemSetting().Staffs[index].Phone; ViewBag.StaffQQ = _config.LoadSystemSetting().Staffs[index].QQ; TempData["returnUrl"] = returnUrl; return(View()); }
public IActionResult All([Required] int iId, [Required] int type, [Required] int pId, [Required] int status, [Required] int grade, String keyName) { if (ModelState.IsValid) { if (!_analysis.GetLoginUserConfig(HttpContext).Power.StudentManager) { return(Json(new { isOk = false, title = "错误提示", message = "你并无学生管理操作权限" })); } StringBuilder builder = new StringBuilder("select * from ReExamApplicationView where ApplicationExamId > 0"); if (iId > 0) { builder.Append($" and InstituteId = {iId}"); } if (type >= 0) { builder.Append($" and StudentType = {type}"); } if (pId >= 0) { builder.Append($" and ProfessionId = {pId}"); } if (status >= 0) { builder.Append($" and ApplicationStatus = {status}"); } if (grade >= 0) { builder.Append($" and Grade = {grade}"); } List <SqlParameter> parameters = new List <SqlParameter>(); if (keyName != null && keyName.Trim() != "") { builder.Append($" and Name like '%@keyName%'"); SqlParameter parameter = new SqlParameter { SqlDbType = SqlDbType.NVarChar, ParameterName = "@keyName", Value = keyName }; parameters.Add(parameter); builder.Append($" or StudentId like '@id'"); SqlParameter parameterId = new SqlParameter { SqlDbType = SqlDbType.NVarChar, ParameterName = "@id", Value = keyName }; parameters.Add(parameterId); } // ReSharper disable once CoVariantArrayConversion List <vReExamApplicationMap> list = _context.VReExamApplicationMaps .FromSql(builder.ToString(), parameters.ToArray <SqlParameter>()).Where(app => app.ApplicationStatus == ApplicationStatus.Submit).ToList(); if (list.Count == 0) { return(Json(new { isOk = true, title = "信息提示", message = "并无未审核的考试申请" })); } SystemSetting setting = _config.LoadSystemSetting();//记载配置文件 foreach (var item in list) { LogPricipalOperation operation = _logger.GetDefaultLogPricipalOperation(PrincpalOperationCode.InspectAllReExamApplicationFail, $"查询编码:{item.ApplicationExamId}", $"审核所有学生重考申请 不通过 操作类: {nameof(ApplicationForReExamination)}"); _context.Database.ExecuteSqlCommand($"UPDATE [dbo].[ApplicationForReExaminations] SET [ApplicationStatus] = {(int)ApplicationStatus.Fail} Where [ApplicationExamId] = {item.ApplicationExamId}"); _email.SendReEmail(item.Email, item.StudentId, item.Name, item.AddTime, true, ""); _context.LogPricipalOperations.Add(operation); } _context.SaveChanges(); return(Json(new { isOk = true, title = "消息提示", message = "审核成功!" })); } else { return(Json(new { isOk = false, error = _analysis.ModelStateDictionaryError(ModelState), title = "错误提示", message = "参数错误,传递了不符合规定的参数" })); } }
public IActionResult Module([Required] int moduleId, [Required] String data) { if (ModelState.IsValid) { if (!_analysis.GetLoginUserConfig(HttpContext).Power.SystemSettingManager) { return(Json(new { isOk = false, title = "错误提示", message = "你并无系统设置操作权限" })); } Module module = _context.Modules.FirstOrDefault(m => m.ModuleId == moduleId); if (module == null) { return(Json(new { isOk = false, title = "错误提示!", message = "模块不存在或者已经被删除..." })); } else { try { ModuleExamSetting setting = JsonConvert.DeserializeObject <ModuleExamSetting>(data); setting.ModuleName = module.Name; int judgeCount = _context.JudgeChoices.Count(j => j.ModuleId == setting.ModuleId); int multiCount = _context.MultipleChoices.Count(m => m.ModuleId == setting.ModuleId); int singleCount = _context.SingleChoices.Count(s => s.ModuleId == setting.ModuleId); if (setting.Judge.Count > judgeCount) { return(Json(new { isOk = false, title = "提示!", message = "判断题出题个数大于了题库中判断题题目的个数!" })); } if (setting.Multiple.Count > multiCount) { return(Json(new { isOk = false, title = "提示!", message = "多选题出题个数大于了题库中多选题题目的个数!" })); } if (setting.Single.Count > singleCount) { return(Json(new { isOk = false, title = "提示!", message = "单选题出题个数大于了题库中单选题题目的个数!" })); } SystemSetting systemSetting = _config.LoadSystemSetting(); systemSetting.ExamModuleSettings[setting.ModuleId] = setting; _config.ReWriteSystemSetting(systemSetting); return(Json(new { isOk = true, title = "提示!", message = "更新成功!" })); } catch (Exception e) { Console.WriteLine(e); throw; } } } else { return(Json(new { isOk = false, title = "错误提示", message = "参数错误,输入了非法参数" })); } }
public async Task <IActionResult> Create([Required] String name) { try { if (ModelState.IsValid) { if (!_analysis.GetLoginUserConfig(HttpContext).Power.SystemInfoManager) { return(Json(new { isOk = false, error = "你并无信息管理操作权限" })); } LogPricipalOperation operation = _logger.GetDefaultLogPricipalOperation(PrincpalOperationCode.AddModule, $"添加模块 模块名称{name.Trim()}", $"添加新的的模块:{name.Trim()}"); if (_context.Modules.FirstOrDefault(m => m.Name.Equals(name)) == null) { operation.PrincpalOperationStatus = PrincpalOperationStatus.Success; Module module = new Module { AddTime = DateTime.Now, Name = name.Trim(), PrincipalId = _analysis.GetLoginUserModel(HttpContext).UserId }; _context.LogPricipalOperations.Add(operation); _context.Modules.Add(module); await _context.SaveChangesAsync().ContinueWith(r => { /* 考试出题配置 */ SystemSetting setting = _config.LoadSystemSetting(); ModuleExamSetting mes = SystemSetting.GetDefault(); mes.ModuleId = module.ModuleId; mes.ModuleName = module.Name; setting.ExamModuleSettings.Add(module.ModuleId, mes); _config.ReWriteSystemSetting(setting); /* 考试开放配置 */ Dictionary <int, ExamOpenSetting> es = _config.LoadModuleExamOpenSetting(); ExamOpenSetting examSetting = new ExamOpenSetting(); examSetting.ModuleId = module.ModuleId; examSetting.IsOpen = false; examSetting.ModuleName = module.Name; es.Add(module.ModuleId, examSetting); _config.ReWriteModuleExamOpenSetting(es); }); return(Json(new { isOk = true })); } else { await _logger.LoggerAsync(operation); return(Json(new { isOk = false, error = "模块名重复,此模块已经存在" })); } } else { return(RedirectToAction("ParameterError", "Error")); } } catch (Exception e) { Console.WriteLine(e); throw; } }
public IActionResult Pass([Required] int apId) { if (ModelState.IsValid) { if (!_analysis.GetLoginUserConfig(HttpContext).Power.StudentManager) { return(Json(new { isOk = false, title = "错误提示", message = "你并无学生管理操作权限" })); } LogPricipalOperation operation = _logger.GetDefaultLogPricipalOperation(PrincpalOperationCode.InspectJoinApplication, $"{apId}", $"审核学生加入考试申请 通过审核"); ApplicationJoinTheExamination applicationJoin = _context.ApplicationJoinTheExaminations.Find(apId); if (applicationJoin != null) { //是否已经存在了 if (_context.Student.Any(s => s.StudentId == applicationJoin.StudentId)) { _email.SendJoinEmail(applicationJoin.Email, applicationJoin.StudentId, applicationJoin.Name, applicationJoin.AddTime, false, "你已经在考试范围内!"); _context.SaveChanges(); return(Json(new { isOk = false, title = "错误提示", message = "审核结果: 此学生已经在考试范围内! 审核此申请失败." })); } else { Student student = (Student)applicationJoin; // //身份证后六位就是密码 student.Password = _encryption.EncodeByMd5(_encryption.EncodeByMd5(student.IDNumber.Substring(student.IDNumber.Length - 6, 6))); SystemSetting setting = _config.LoadSystemSetting(); //如果这个学院有对应的模块 然后找到这个模块的 考试设置类 var insModule = _context.InstituteToModules.FirstOrDefault(im => im.InstituteId == student.InstituteId); if (insModule != null) { //如果这个模块具有加载类 Boolean isHave = setting.ExamModuleSettings.TryGetValue(insModule.ModuleId, out var meSetting); student.MaxExamCount = isHave? meSetting.AllowExamTime:2; } else { //如果学院灭有属于哪个模块 student.MaxExamCount = 2; } operation.PrincpalOperationStatus = PrincpalOperationStatus.Success; //日志记录 成功 applicationJoin.ApplicationStatus = ApplicationStatus.Pass; _context.LogPricipalOperations.Add(operation); _context.Student.Add(student); _context.SaveChanges(); _email.SendJoinEmail(applicationJoin.Email, applicationJoin.StudentId, applicationJoin.Name, applicationJoin.AddTime, true, ""); return(Json(new { isOk = true, title = "信息提示", message = "审核完成!" })); } } else { operation.PrincpalOperationStatus = PrincpalOperationStatus.Fail; _logger.Logger(operation); return(Json(new { isOk = false, title = "错误提示", message = "申请不存在,或者已经被删除" })); } } else { return(Json(new { isOk = false, error = _analysis.ModelStateDictionaryError(ModelState), title = "错误提示", message = "参数错误,传递了不符合规定的参数" })); } }
/// <summary> /// 完成日志记录 /// </summary> /// <param name="singleId"></param> /// <returns></returns> public IActionResult Delete([Required] int singleId) { if (ModelState.IsValid) { if (!_analysis.GetLoginUserConfig(HttpContext).Power.QuestionBankManager) { return(Json(new { isOk = false, title = "错误提示", message = "你并无题库管理操作权限" })); } #region 功能实现区域 SingleChoices item = _context.SingleChoices.Find(singleId); if (item != null) { SystemSetting setting = _config.LoadSystemSetting(); if (setting.LoginSetting.StudentLogin) { return(Json(new { isOk = false, title = "信息提示", message = "无法删除,当前系统打开了学生学习通道,在实验室安全考试期间无法删除任何考题!以免引起数据不正常!" })); } LogPricipalOperation log = _logger.GetDefaultLogPricipalOperation(PrincpalOperationCode.SingleDelete, $"查询编码:{item.SingleId}", $"删除单择题:{item.Content}!"); log.PrincpalOperationStatus = PrincpalOperationStatus.Success; _context.LogPricipalOperations.Add(log); _context.SingleChoices.Remove(item); _context.SaveChanges(); return(Json(new { isOk = true, title = "信息提示", message = "删除成功!" })); } else { return(Json(new { isOk = false, title = "错误提示", message = "此题目不存在!或者已经被删除了" })); } #endregion } else { List <string> sb = new List <string>(); List <string> Keys = ModelState.Keys.ToList(); foreach (var key in Keys) { var errors = ModelState[key].Errors.ToList(); //将错误描述添加到sb中 foreach (var error in errors) { sb.Add(error.ErrorMessage); } } return(Json(new { isOk = false, error = sb, title = "错误提示", message = "参数错误,传递了不符合规定的参数" })); } }
public IActionResult Create([Bind(include: "StudentId,IDNumber,InstituteId,Name,ProfessionId,BirthDate,Sex,StudentType,Grade,Email")] Student student) { if (ModelState.IsValid) { if (!_analysis.GetLoginUserConfig(HttpContext).Power.StudentManager) { return(Json(new { isOk = false, title = "错误", message = "你并无学生管理操作权限" })); } Institute ins = _context.Institute.FirstOrDefault(i => i.InstituteId == student.InstituteId); Profession pro = _context.Professions.FirstOrDefault(p => p.ProfessionId == student.ProfessionId); if (ins == null) { return(Json(new { isOk = false, title = "错误", message = "参数错误! 学院不存在! " })); } if (pro == null) { return(Json(new { isOk = false, title = "错误", message = "参数错误! 专业不存在! " })); } if (pro.InstituteId != ins.InstituteId) { return(Json(new { isOk = false, title = "错误", message = "此专业不属于此学院 !" })); } if (_context.Student.Any(val => val.StudentId == student.StudentId)) { return(Json(new { isOk = false, title = "错误", message = "此学号的学生已经存在!" })); } else { var belong = _context.InstituteToModules.FirstOrDefault(im => im.InstituteId == student.InstituteId); if (belong != null) { SystemSetting setting = _config.LoadSystemSetting(); Boolean isConfig = setting.ExamModuleSettings.TryGetValue(belong.ModuleId, out var moduleExamSetting); student.MaxExamCount = isConfig ? moduleExamSetting.AllowExamTime : 3; } else { student.MaxExamCount = 3; //系统默认考试次数三次 } /* logger start */ LogPricipalOperation operation = _logger.GetDefaultLogPricipalOperation( PrincpalOperationCode.AddStudent, $"{student.StudentId}", $"增加学生 学号{student.InstituteId} 名称:{student.Name} "); operation.PrincpalOperationStatus = PrincpalOperationStatus.Success; /* logger end*/ student.IsPassExam = false; student.MaxExamScore = 0; student.Password = _ncryption.EncodeByMd5(_ncryption.EncodeByMd5(student.IDNumber.Substring(student.IDNumber.Length - 6, 6))); _context.LogPricipalOperations.Add(operation); _context.Student.Add(student); _context.SaveChanges(); return(Json(new { isOk = true, title = "温馨提示", message = "添加成功!" })); } } else { List <string> errorParamters = new List <string>(); List <string> Keys = ModelState.Keys.ToList(); foreach (var key in Keys) { var errors = ModelState[key].Errors.ToList(); foreach (var error in errors) { errorParamters.Add(error.ErrorMessage); } } return(Json(new { error = errorParamters, isOk = false, title = "错误", message = "参数错误!传入了错误的信息! " })); } }