Commit 59fb2487 authored by 黄奎's avatar 黄奎

新增验证

parent 9a7fb9ab
......@@ -48,7 +48,6 @@ namespace Edu.WebApi.Controllers.Course
public ApiResult GetQuestionPageList()
{
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var query = new RB_Question_ViewModel()
{
CourseId = base.ParmJObj.GetInt("CourseId"),
......@@ -150,7 +149,194 @@ namespace Edu.WebApi.Controllers.Course
[HttpPost]
public ApiResult SetQuestion()
{
var extModel = Common.Plugin.JsonHelper.DeserializeObject<RB_Question_ViewModel>(RequestParm.Msg.ToString());
var extModel = new RB_Question_ViewModel()
{
Answer = base.ParmJObj.GetStringValue("Answer"),
AnswerParse = base.ParmJObj.GetStringValue("AnswerParse"),
CourseId = base.ParmJObj.GetInt("CourseId"),
DifficultyType = (DifficultyTypeEnum)base.ParmJObj.GetInt("DifficultyType"),
IsMutex = base.ParmJObj.GetInt("IsMutex"),
IsUpdateJobExam = base.ParmJObj.GetInt("IsUpdateJobExam"),
Knowledge = base.ParmJObj.GetStringValue("Knowledge"),
QuestionContent = base.ParmJObj.GetStringValue("QuestionContent"),
QuestionId = base.ParmJObj.GetInt("QuestionId"),
QuestionTypeId = base.ParmJObj.GetInt("QuestionTypeId"),
QuestionTypeKey = base.ParmJObj.GetStringValue("QuestionTypeKey"),
SortNum = base.ParmJObj.GetInt("SortNum"),
Title = base.ParmJObj.GetStringValue("Title"),
Category=(QuestionCategoryEnum)base.ParmJObj.GetInt("Category")
};
if (string.IsNullOrEmpty(extModel.Title))
{
return ApiResult.Failed(message: "请填写问题题干!");
}
if (extModel.QuestionTypeKey == "single" || extModel.QuestionTypeKey == "multiple")
{
var optionItems = Common.Plugin.JsonHelper.DeserializeObject<List<optionItem>>(extModel.QuestionContent);
if (optionItems != null && optionItems.Count > 0)
{
if (optionItems.Where(qitem => string.IsNullOrEmpty(qitem.Content)).Count() > 0)
{
return ApiResult.Failed(message: "选项不能为空!");
}
//判断选项是否重复
if (optionItems.GroupBy(qitem => new { qitem.Content }).Where(qitem => qitem.Count() > 1).Count() > 0)
{
return ApiResult.Failed(message: "选项不能相同!");
}
if (string.IsNullOrEmpty(extModel.Answer))
{
return ApiResult.Failed(message: "请设置正确的选项!");
}
}
else
{
return ApiResult.Failed(message: "请添加选择题选项!");
}
}
var obj = new object();
switch (extModel.QuestionTypeKey)
{
//单选题
case "single":
break;
//多选题
case "multiple":
obj = Common.Plugin.JsonHelper.DeserializeObject<List<optionItem>>(extModel.QuestionContent);
break;
//填空题
case "fill-in":
obj = Common.Plugin.JsonHelper.DeserializeObject<List<fillInItem>>(extModel.QuestionContent);
break;
//判断题
case "judge":
obj = Common.Plugin.JsonHelper.DeserializeObject<List<optionItem>>(extModel.QuestionContent);
break;
//简答题
case "short-answer":
obj = extModel.QuestionContent;
break;
//名词解释
case "noun-explanation":
obj = extModel.QuestionContent;
break;
//论述题
case "essay-question":
obj = extModel.QuestionContent;
break;
//计算题
case "calculation":
obj = extModel.QuestionContent;
break;
//分录题
case "entry-problem":
obj = Common.Plugin.JsonHelper.DeserializeObject<List<fillInItem>>(extModel.QuestionContent);
break;
//资料题
case "data-question":
obj = Common.Plugin.JsonHelper.DeserializeObject<List<fillInItem>>(extModel.QuestionContent);
break;
//连线题
case "matching":
obj = Common.Plugin.JsonHelper.DeserializeObject<List<List<matchingItem>>>(extModel.QuestionContent);
break;
//排序题
case "sorting-problem":
obj = Common.Plugin.JsonHelper.DeserializeObject<List<List<matchingItem>>>(extModel.QuestionContent);
break;
//完型填空
case "cloze":
obj = Common.Plugin.JsonHelper.DeserializeObject<List<List<optionItem>>>(extModel.QuestionContent);
break;
//阅读理解
case "reading-comprehensio":
var readingList = Common.Plugin.JsonHelper.DeserializeObject<List<readingComprehensioItem>>(extModel.QuestionContent);
if (readingList != null && readingList.Count > 0)
{
foreach (var item in readingList)
{
switch (item.QuestionKey)
{
//单选题
case "single":
item.SubAnwser = Common.Plugin.JsonHelper.DeserializeObject<List<optionItem>>(item.SubAnwser.ToString());
break;
//多选题
case "multiple":
item.SubAnwser = Common.Plugin.JsonHelper.DeserializeObject<List<optionItem>>(item.SubAnwser.ToString());
break;
//填空题
case "fill-in":
item.SubAnwser = Common.Plugin.JsonHelper.DeserializeObject<List<fillInItem>>(item.SubAnwser.ToString());
break;
//判断题
case "judge":
item.SubAnwser = Common.Plugin.JsonHelper.DeserializeObject<List<optionItem>>(item.SubAnwser.ToString());
break;
//简答题
case "short-answer":
item.SubAnwser = Common.Plugin.JsonHelper.DeserializeObject<List<fillInItem>>(item.SubAnwser.ToString());
break;
}
}
}
obj = readingList;
break;
//口语题
case "spoken":
obj = extModel.QuestionContent;
break;
//听力题
case "listening":
var listenList = Common.Plugin.JsonHelper.DeserializeObject<List<readingComprehensioItem>>(extModel.QuestionContent);
if (listenList != null && listenList.Count > 0)
{
foreach (var item in listenList)
{
switch (item.QuestionKey)
{
//单选题
case "single":
item.SubAnwser = Common.Plugin.JsonHelper.DeserializeObject<List<optionItem>>(item.SubAnwser.ToString());
break;
//多选题
case "multiple":
item.SubAnwser = Common.Plugin.JsonHelper.DeserializeObject<List<optionItem>>(item.SubAnwser.ToString());
break;
//填空题
case "fill-in":
item.SubAnwser = Common.Plugin.JsonHelper.DeserializeObject<List<fillInItem>>(item.SubAnwser.ToString());
break;
//判断题
case "judge":
item.SubAnwser = Common.Plugin.JsonHelper.DeserializeObject<List<optionItem>>(item.SubAnwser.ToString());
break;
//简答题
case "short-answer":
item.SubAnwser = Common.Plugin.JsonHelper.DeserializeObject<List<fillInItem>>(item.SubAnwser.ToString());
break;
}
}
}
obj = listenList;
break;
//共用选择题
case "sharing-choose":
obj = Common.Plugin.JsonHelper.DeserializeObject<List<List<matchingItem>>>(extModel.QuestionContent);
break;
//其它题
case "other":
obj = extModel.QuestionContent;
break;
//单选题(数字)
case "single-number":
obj = Common.Plugin.JsonHelper.DeserializeObject<List<optionItem>>(extModel.QuestionContent);
break;
}
extModel.CreateTime = DateTime.Now;
extModel.CreateBy = base.UserInfo.Id;
extModel.UpdateBy = base.UserInfo.Id;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment