|
@@ -4,7 +4,10 @@ using System.Text;
|
|
|
using System.Threading.Tasks;
|
|
|
using TEAMModelOS.Model.Evaluation.Dtos.Own;
|
|
|
using TEAMModelOS.Model.EvaluaTion.Models;
|
|
|
+using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
|
|
|
using TEAMModelOS.SDK.Helper.Common.JsonHelper;
|
|
|
+using TEAMModelOS.SDK.Helper.Common.StringHelper;
|
|
|
+using TEAMModelOS.SDK.Helper.Security.ShaHash;
|
|
|
using TEAMModelOS.Service.Core.Implements;
|
|
|
using TEAMModelOS.Service.EvaluaTion.Interfaces;
|
|
|
|
|
@@ -24,14 +27,49 @@ namespace TEAMModelOS.Service.EvaluaTion.Implements
|
|
|
List<ItemBank> itemBanks = new List<ItemBank>();
|
|
|
items.ForEach(p =>
|
|
|
{
|
|
|
- if (p.PartitionKey != null)
|
|
|
+ string RowKeyP = this.GetRowKeys(p);
|
|
|
+ if (p.Children.Count > 0) {
|
|
|
+ p.Children.ForEach(q =>
|
|
|
+ {
|
|
|
+ if (q.RowKey != null)
|
|
|
+ {
|
|
|
+ itemBanks.Add(new ItemBank()
|
|
|
+ {
|
|
|
+ RowKey = q.RowKey,
|
|
|
+ PartitionKey = lang,
|
|
|
+ Question = q.Question,
|
|
|
+ Option = MessagePackHelper.ObjectToJson(q.Option),
|
|
|
+ Answer = MessagePackHelper.ObjectToJson(q.Answer),
|
|
|
+ Explain = q.Explain,
|
|
|
+ Type = q.Type
|
|
|
+ });
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string RowKey = this.GetRowKeys(q);
|
|
|
+ itemBanks.Add(new ItemBank()
|
|
|
+ {
|
|
|
+ RowKey = RowKey,
|
|
|
+ PartitionKey = lang,
|
|
|
+ Question = q.Question,
|
|
|
+ Option = MessagePackHelper.ObjectToJson(q.Option),
|
|
|
+ Answer = MessagePackHelper.ObjectToJson(q.Answer),
|
|
|
+ Explain = q.Explain,
|
|
|
+ Type = q.Type,
|
|
|
+ Pid = RowKeyP
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ if (p.RowKey != null)
|
|
|
{
|
|
|
itemBanks.Add(new ItemBank()
|
|
|
{
|
|
|
RowKey = p.RowKey,
|
|
|
PartitionKey = lang,
|
|
|
Question = p.Question,
|
|
|
- Option = MessagePackHelper.ObjectToJson(p.Options),
|
|
|
+ Option = MessagePackHelper.ObjectToJson(p.Option),
|
|
|
Answer = MessagePackHelper.ObjectToJson(p.Answer),
|
|
|
Explain = p.Explain,
|
|
|
Type = p.Type
|
|
@@ -40,10 +78,10 @@ namespace TEAMModelOS.Service.EvaluaTion.Implements
|
|
|
else {
|
|
|
itemBanks.Add(new ItemBank()
|
|
|
{
|
|
|
- RowKey = Guid.NewGuid().ToString(),
|
|
|
+ RowKey = RowKeyP,
|
|
|
PartitionKey = lang,
|
|
|
Question = p.Question,
|
|
|
- Option = MessagePackHelper.ObjectToJson(p.Options),
|
|
|
+ Option = MessagePackHelper.ObjectToJson(p.Option),
|
|
|
Answer = MessagePackHelper.ObjectToJson(p.Answer),
|
|
|
Explain = p.Explain,
|
|
|
Type = p.Type
|
|
@@ -54,5 +92,45 @@ namespace TEAMModelOS.Service.EvaluaTion.Implements
|
|
|
|
|
|
return items;
|
|
|
}
|
|
|
+ /// <summary>
|
|
|
+ /// 获取不同身份形成得唯一标识
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public string GetRowKeys(ItemBankDto dto) {
|
|
|
+ if (dto.Type.Equals("Complete")|| dto.Type.Equals("Subjective")) {
|
|
|
+ ///dto.Question = HtmlHelper.DoUselessTag(dto.Question);
|
|
|
+ dto.Question = HtmlHelper.DoTextImg(dto.Question);
|
|
|
+ dto.ShaCode = ShaHashHelper.GetSHA1(dto.Question);
|
|
|
+ if (dto.ResourceType == 0)
|
|
|
+ {
|
|
|
+ dto.RowKey = dto.SubjectCode + "-" + dto.ShaCode;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dto.RowKey = dto.ResourceCode + "-" + dto.SubjectCode + "-" + dto.ShaCode;
|
|
|
+ }
|
|
|
+ return dto.RowKey;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ StringBuilder builder = new StringBuilder();
|
|
|
+ builder.Append(dto.Question);
|
|
|
+ dto.Option.ForEach(p =>
|
|
|
+ {
|
|
|
+ builder.Append(p.Code + "" + p.Value);
|
|
|
+ });
|
|
|
+ dto.ShaCode = ShaHashHelper.GetSHA1(HtmlHelper.DoTextImg(builder.ToString()));
|
|
|
+ if (dto.ResourceType == 0)
|
|
|
+ {
|
|
|
+ dto.RowKey = dto.SubjectCode + "-" + dto.ShaCode;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dto.RowKey = dto.ResourceCode + "-" + dto.SubjectCode + "-" + dto.ShaCode;
|
|
|
+ }
|
|
|
+ return dto.RowKey;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
}
|