Beispiel #1
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 = "参数错误,输入了非法参数"
                }));
            }
        }
Beispiel #2
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;
            }
        }