Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
Education
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄奎
Education
Commits
59fb2487
Commit
59fb2487
authored
Jan 19, 2021
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增验证
parent
9a7fb9ab
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
188 additions
and
2 deletions
+188
-2
QuestionController.cs
Edu.WebApi/Controllers/Course/QuestionController.cs
+188
-2
No files found.
Edu.WebApi/Controllers/Course/QuestionController.cs
View file @
59fb2487
...
...
@@ -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
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment