Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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 = "参数错误,传递了不符合规定的参数"
                }));
            }
        }
Ejemplo n.º 3
0
        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 = "参数错误,输入了非法参数"
                }));
            }
        }
Ejemplo n.º 4
0
        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;
            }
        }
Ejemplo n.º 5
0
        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 = "参数错误,传递了不符合规定的参数"
                }));
            }
        }
Ejemplo n.º 6
0
        /// <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 = "参数错误,传递了不符合规定的参数"
                }));
            }
        }
Ejemplo n.º 7
0
        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 = "参数错误!传入了错误的信息! "
                }));
            }
        }