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
e3bdfe27
Commit
e3bdfe27
authored
Aug 25, 2021
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
页面修改
parent
226f8109
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
215 additions
and
138 deletions
+215
-138
AnalysisQuestionTypeModule.cs
Edu.Module.Question/AnalysisQuestionTypeModule.cs
+215
-138
No files found.
Edu.Module.Question/AnalysisQuestionTypeModule.cs
View file @
e3bdfe27
...
...
@@ -31,126 +31,19 @@ namespace Edu.Module.Question
{
//单选题
case
"single"
:
var
singleList
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
optionItem
>>(
data
);
var
newList
=
new
List
<
optionItem
>();
singleList
.
ForEach
(
item
=>
{
item
.
ShowName
=
item
.
Name
;
});
//选项随机
if
(
isOptionRandom
==
1
)
{
var
tempList
=
singleList
.
OrderBy
(
qitem
=>
Guid
.
NewGuid
()).
ToList
();
for
(
var
i
=
0
;
i
<
tempList
.
Count
;
i
++)
{
var
item
=
new
optionItem
()
{
Name
=
tempList
[
i
].
Name
,
ShowName
=
tempList
[
i
].
ShowName
,
Content
=
tempList
[
i
].
Content
,
IsAnswer
=
tempList
[
i
].
IsAnswer
};
item
.
ShowName
=
LetterArray
[
i
];
newList
.
Add
(
item
);
}
}
//去掉答案
if
(
isNoAnswer
)
{
singleList
.
ForEach
(
item
=>
{
item
.
IsAnswer
=
false
;
});
newList
.
ForEach
(
item
=>
{
item
.
IsAnswer
=
false
;
});
}
if
(
isOptionRandom
==
1
)
{
obj
=
newList
;
}
else
{
obj
=
singleList
;
}
obj
=
GetChooseOptionList
(
data
,
isOptionRandom
,
isNoAnswer
);
break
;
//多选题
case
"multiple"
:
var
multipleList
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
optionItem
>>(
data
);
var
newMultipleList
=
new
List
<
optionItem
>();
newMultipleList
.
ForEach
(
item
=>
{
item
.
ShowName
=
item
.
Name
;
});
//选项随机
if
(
isOptionRandom
==
1
)
{
var
tempList
=
multipleList
.
OrderBy
(
qitem
=>
Guid
.
NewGuid
()).
ToList
();
for
(
var
i
=
0
;
i
<
tempList
.
Count
;
i
++)
{
var
item
=
new
optionItem
()
{
Name
=
tempList
[
i
].
Name
,
ShowName
=
tempList
[
i
].
ShowName
,
Content
=
tempList
[
i
].
Content
,
IsAnswer
=
tempList
[
i
].
IsAnswer
};
item
.
ShowName
=
LetterArray
[
i
];
newMultipleList
.
Add
(
item
);
}
}
//去掉答案
if
(
isNoAnswer
)
{
multipleList
.
ForEach
(
item
=>
{
item
.
IsAnswer
=
false
;
});
newMultipleList
.
ForEach
(
item
=>
{
item
.
IsAnswer
=
false
;
});
}
if
(
isOptionRandom
==
1
)
{
obj
=
newMultipleList
;
}
else
{
obj
=
multipleList
;
}
obj
=
GetChooseOptionList
(
data
,
isOptionRandom
,
isNoAnswer
);
break
;
//填空题
case
"fill-in"
:
if
(!
string
.
IsNullOrEmpty
(
data
))
{
var
fillInList
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
fillInItem
>>(
data
);
if
(
isNoAnswer
)
{
fillInList
.
ForEach
(
item
=>
{
item
.
Content
=
""
;
});
}
obj
=
fillInList
;
}
else
{
obj
=
null
;
}
obj
=
GetFillInList
(
data
,
isNoAnswer
);
break
;
//判断题
case
"judge"
:
var
judgeList
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
optionItem
>>(
data
);
if
(
isNoAnswer
)
{
judgeList
.
ForEach
(
item
=>
{
item
.
IsAnswer
=
false
;
});
}
obj
=
judgeList
;
obj
=
GetJudgeList
(
data
,
isNoAnswer
);
break
;
//简答题
case
"short-answer"
:
...
...
@@ -170,23 +63,23 @@ namespace Edu.Module.Question
break
;
//分录题
case
"entry-problem"
:
obj
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
fillInItem
>>(
data
);
obj
=
GetFillInList
(
data
,
isNoAnswer
);
break
;
//资料题
case
"data-question"
:
obj
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
fillInItem
>>(
data
);
obj
=
GetFillInList
(
data
,
isNoAnswer
);
break
;
//连线题
case
"matching"
:
obj
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
List
<
matchingItem
>>>(
data
);
obj
=
GetMatchingList
(
data
,
isNoAnswer
);
break
;
//排序题
case
"sorting-problem"
:
obj
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
List
<
matchingItem
>>>(
data
);
obj
=
GetSortingProblemList
(
data
,
isNoAnswer
);
break
;
//完型填空
case
"cloze"
:
obj
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
List
<
optionItem
>>>(
data
);
obj
=
GetClozeList
(
data
,
isNoAnswer
);
break
;
//阅读理解
case
"reading-comprehensio"
:
...
...
@@ -199,27 +92,27 @@ namespace Edu.Module.Question
{
//单选题
case
"single"
:
item
.
SubAnwser
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
optionItem
>>(
item
.
SubAnwser
.
ToString
()
);
item
.
SubAnwser
=
GetChooseOptionList
(
item
.
SubAnwser
.
ToString
(),
0
,
isNoAnswer
);
break
;
//多选题
case
"multiple"
:
item
.
SubAnwser
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
optionItem
>>(
item
.
SubAnwser
.
ToString
()
);
item
.
SubAnwser
=
GetChooseOptionList
(
item
.
SubAnwser
.
ToString
(),
0
,
isNoAnswer
);
break
;
//填空题
case
"fill-in"
:
item
.
SubAnwser
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
fillInItem
>>(
item
.
SubAnwser
.
ToString
()
);
item
.
SubAnwser
=
GetFillInList
(
item
.
SubAnwser
.
ToString
(),
isNoAnswer
);
break
;
//判断题
case
"judge"
:
item
.
SubAnwser
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
optionItem
>>(
item
.
SubAnwser
.
ToString
()
);
item
.
SubAnwser
=
GetJudgeList
(
item
.
SubAnwser
.
ToString
(),
isNoAnswer
);
break
;
//简答题
case
"short-answer"
:
item
.
SubAnwser
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
fillInItem
>>(
item
.
SubAnwser
.
ToString
()
);
item
.
SubAnwser
=
GetShortAnswer
(
item
.
SubAnwser
.
ToString
(),
isNoAnswer
);
break
;
//单选题(数字)
case
"single-number"
:
item
.
SubAnwser
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
optionItem
>>(
item
.
SubAnwser
.
ToString
()
);
item
.
SubAnwser
=
GetChooseOptionList
(
item
.
SubAnwser
.
ToString
(),
0
,
isNoAnswer
);
break
;
}
}
...
...
@@ -241,23 +134,27 @@ namespace Edu.Module.Question
{
//单选题
case
"single"
:
item
.
SubAnwser
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
optionItem
>>(
item
.
SubAnwser
.
ToString
()
);
item
.
SubAnwser
=
GetChooseOptionList
(
item
.
SubAnwser
.
ToString
(),
0
,
isNoAnswer
);
break
;
//多选题
case
"multiple"
:
item
.
SubAnwser
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
optionItem
>>(
item
.
SubAnwser
.
ToString
()
);
item
.
SubAnwser
=
GetChooseOptionList
(
item
.
SubAnwser
.
ToString
(),
0
,
isNoAnswer
);
break
;
//填空题
case
"fill-in"
:
item
.
SubAnwser
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
fillInItem
>>(
item
.
SubAnwser
.
ToString
()
);
item
.
SubAnwser
=
GetFillInList
(
item
.
SubAnwser
.
ToString
(),
isNoAnswer
);
break
;
//判断题
case
"judge"
:
item
.
SubAnwser
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
optionItem
>>(
item
.
SubAnwser
.
ToString
()
);
item
.
SubAnwser
=
GetJudgeList
(
item
.
SubAnwser
.
ToString
(),
isNoAnswer
);
break
;
//简答题
case
"short-answer"
:
item
.
SubAnwser
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
fillInItem
>>(
item
.
SubAnwser
.
ToString
());
item
.
SubAnwser
=
GetShortAnswer
(
item
.
SubAnwser
.
ToString
(),
isNoAnswer
);
break
;
//单选题(数字)
case
"single-number"
:
item
.
SubAnwser
=
GetChooseOptionList
(
item
.
SubAnwser
.
ToString
(),
0
,
isNoAnswer
);
break
;
}
}
...
...
@@ -281,23 +178,203 @@ namespace Edu.Module.Question
break
;
//单选题(数字)
case
"single-number"
:
try
obj
=
GetChooseOptionList
(
data
,
isOptionRandom
,
isNoAnswer
,
isSingleNum
:
true
);
break
;
}
return
obj
;
}
/// <summary>
/// 获取选择题选项
/// </summary>
/// <param name="data"></param>
/// <param name="isOptionRandom"></param>
/// <param name="isNoAnswer"></param>
/// <returns></returns>
private
object
GetChooseOptionList
(
string
data
,
int
isOptionRandom
,
bool
isNoAnswer
,
bool
isSingleNum
=
false
)
{
var
obj
=
new
object
();
var
singleList
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
optionItem
>>(
data
);
var
newList
=
new
List
<
optionItem
>();
singleList
.
ForEach
(
item
=>
{
item
.
ShowName
=
item
.
Name
;
});
//选项随机
if
(
isOptionRandom
==
1
)
{
var
tempList
=
singleList
.
OrderBy
(
qitem
=>
Guid
.
NewGuid
()).
ToList
();
for
(
var
i
=
0
;
i
<
tempList
.
Count
;
i
++)
{
var
item
=
new
optionItem
()
{
if
(!
string
.
IsNullOrEmpty
(
data
))
{
obj
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
optionItem
>>(
data
);
}
}
catch
(
Exception
ex
)
Name
=
isSingleNum
?
(
i
+
1
).
ToString
()
:
tempList
[
i
].
Name
,
ShowName
=
tempList
[
i
].
ShowName
,
Content
=
tempList
[
i
].
Content
,
IsAnswer
=
tempList
[
i
].
IsAnswer
};
item
.
ShowName
=
LetterArray
[
i
];
newList
.
Add
(
item
);
}
}
//去掉答案
if
(
isNoAnswer
)
{
singleList
.
ForEach
(
item
=>
{
item
.
IsAnswer
=
false
;
});
newList
.
ForEach
(
item
=>
{
item
.
IsAnswer
=
false
;
});
}
if
(
isOptionRandom
==
1
)
{
obj
=
newList
;
}
else
{
obj
=
singleList
;
}
return
obj
;
}
/// <summary>
/// 获取填空题填空列表
/// </summary>
/// <param name="data"></param>
/// <param name="isNoAnswer"></param>
/// <returns></returns>
private
object
GetFillInList
(
string
data
,
bool
isNoAnswer
)
{
var
obj
=
new
object
();
if
(!
string
.
IsNullOrEmpty
(
data
))
{
var
fillInList
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
fillInItem
>>(
data
);
if
(
isNoAnswer
)
{
fillInList
.
ForEach
(
item
=>
{
string
str
=
ex
.
Message
;
}
break
;
item
.
Content
=
""
;
});
}
obj
=
fillInList
;
}
else
{
obj
=
null
;
}
return
obj
;
}
/// <summary>
/// 获取判断题选项列表
/// </summary>
/// <param name="data"></param>
/// <param name="isNoAnswer"></param>
/// <returns></returns>
private
object
GetJudgeList
(
string
data
,
bool
isNoAnswer
)
{
var
judgeList
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
optionItem
>>(
data
);
if
(
isNoAnswer
)
{
judgeList
.
ForEach
(
item
=>
{
item
.
IsAnswer
=
false
;
});
}
return
judgeList
;
}
/// <summary>
/// 获取连线题列表
/// </summary>
/// <param name="data"></param>
/// <param name="isNoAnswer"></param>
/// <returns></returns>
private
object
GetMatchingList
(
string
data
,
bool
isNoAnswer
)
{
var
matchingList
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
List
<
matchingItem
>>>(
data
);
if
(
isNoAnswer
)
{
if
(
matchingList
!=
null
&&
matchingList
.
Count
>
2
)
{
matchingList
[
2
].
ForEach
(
item
=>
{
item
.
Content
=
""
;
});
}
}
return
matchingList
;
}
/// <summary>
/// 获取排序题列表
/// </summary>
/// <param name="data"></param>
/// <param name="isNoAnswer"></param>
/// <returns></returns>
private
object
GetSortingProblemList
(
string
data
,
bool
isNoAnswer
)
{
var
sortingProblemList
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
List
<
matchingItem
>>>(
data
);
if
(
isNoAnswer
)
{
if
(
sortingProblemList
!=
null
&&
sortingProblemList
.
Count
>
1
)
{
sortingProblemList
[
1
].
ForEach
(
item
=>
{
item
.
Name
=
""
;
});
}
}
return
sortingProblemList
;
}
/// <summary>
/// 完型填空选项列表
/// </summary>
/// <param name="data"></param>
/// <param name="isNoAnswer"></param>
/// <returns></returns>
private
object
GetClozeList
(
string
data
,
bool
isNoAnswer
)
{
var
clozeList
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
List
<
optionItem
>>>(
data
);
if
(
isNoAnswer
)
{
if
(
clozeList
!=
null
&&
clozeList
.
Count
>
0
)
{
clozeList
.
ForEach
(
item
=>
{
item
.
ForEach
(
subItem
=>
{
subItem
.
IsAnswer
=
false
;
});
});
}
}
return
clozeList
;
}
/// <summary>
/// 获取阅读理解、听力题简答题
/// </summary>
/// <param name="data"></param>
/// <param name="isNoAnswer"></param>
/// <returns></returns>
private
object
GetShortAnswer
(
string
data
,
bool
isNoAnswer
)
{
var
shortAnswerList
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
fillInItem
>>(
data
);
if
(
isNoAnswer
)
{
shortAnswerList
.
ForEach
(
item
=>
{
item
.
Content
=
""
;
});
}
return
shortAnswerList
;
}
/// <summary>
/// 问题验证
/// </summary>
...
...
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