|
@@ -10,10 +10,12 @@ using Exam.Insfrastructure.Service.Service;
|
|
|
using Exam.Questions;
|
|
|
using Exam.Repository.Sqlsugar;
|
|
|
using Exam.Repository.Sqlsugar.Repositories;
|
|
|
+using Exam.Repository.Sqlsugar.Repositories.TestPapers;
|
|
|
using Exam.Share.ViewResponses.TestPaper;
|
|
|
using Exam.TestPapers;
|
|
|
using Hotline.Application.Exam.Core.Extensions;
|
|
|
using Hotline.Application.Exam.Extensions;
|
|
|
+using Hotline.Application.Exam.Proxy;
|
|
|
using Hotline.Application.Exam.QueryExtensions.TestPapers;
|
|
|
using Hotline.Exams.TestPapers;
|
|
|
using Hotline.Repository.SqlSugar;
|
|
@@ -21,20 +23,24 @@ using Hotline.Repository.SqlSugar.DataPermissions;
|
|
|
using Hotline.Repository.SqlSugar.Exam.Core.Constants;
|
|
|
using Hotline.Repository.SqlSugar.Exam.Interfaces.Questions;
|
|
|
using Hotline.Repository.SqlSugar.Exam.Interfaces.TestPapers;
|
|
|
+using Hotline.Repository.SqlSugar.Exam.Repositories.TestPapers;
|
|
|
using Hotline.Repository.SqlSugar.Extensions;
|
|
|
using Hotline.Share.Dtos.Questions;
|
|
|
using Hotline.Share.Dtos.TestPapers;
|
|
|
using Hotline.Share.Dtos.Trains;
|
|
|
using Hotline.Share.Requests.Exam;
|
|
|
+using Hotline.Share.Requests.TestPaper;
|
|
|
using Hotline.Share.Tools;
|
|
|
using Hotline.Share.ViewResponses.Exam;
|
|
|
using JiebaNet.Segmenter.Common;
|
|
|
using MapsterMapper;
|
|
|
+using Microsoft.Extensions.DependencyInjection;
|
|
|
using NPOI.SS.Formula.Functions;
|
|
|
using SqlSugar;
|
|
|
using System.Collections.Immutable;
|
|
|
using XF.Domain.Authentications;
|
|
|
using XF.Domain.Dependency;
|
|
|
+using XF.Domain.Repository;
|
|
|
|
|
|
namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
{
|
|
@@ -52,11 +58,12 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
private readonly IServiceProvider _serviceProvider;
|
|
|
private readonly ISessionContext _sessionContext;
|
|
|
private readonly IMapper _mapper;
|
|
|
+ private TestPaperProxy _testPaperProxy;
|
|
|
|
|
|
public TestPaperService(ITestPaperRepository repository,
|
|
|
- ITestPaperItemRepository testPaperItemRepository,
|
|
|
ITestPaperRuleRepository testPaperRuleRepository,
|
|
|
ITestPaperRuleTagRepository testPaperRuleTagRepository,
|
|
|
+ ITestPaperItemRepository testPaperItemRepository,
|
|
|
ITestPaperItemAnswerRepository testPaperItemAnswerRepository,
|
|
|
ITestPaperItemOptionsRepository testPaperItemOptionsRepository,
|
|
|
ITestPaperItemSourcewareRepository testPaperItemSourcewareRepository,
|
|
@@ -138,40 +145,28 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
var testPaperItemAnswers = await AddTestPaperItemAnswer(actionRequest, cancellationToken);
|
|
|
|
|
|
- base.Entity.TestPaperItems.ForEach(item =>
|
|
|
- {
|
|
|
- item.TestPaperItemAnswers = testPaperItemAnswers.Where(x => item.Id == x.TestPaperItemId).ToList();
|
|
|
- });
|
|
|
-
|
|
|
- var testPaperItemOptions = await AddTestPaperItemOptions(actionRequest, cancellationToken);
|
|
|
-
|
|
|
- base.Entity.TestPaperItems.ForEach(item =>
|
|
|
- {
|
|
|
- item.TestPaperItemOptionses = testPaperItemOptions.Where(x => item.Id == x.TestPaperItemId).ToList();
|
|
|
- });
|
|
|
+ var testPaperItemOptions = await AddTestPaperItemOptions(actionRequest, cancellationToken);
|
|
|
|
|
|
var testPaperItemKnowlagdes = await AddTestPaperItemKnowladgeAsync(actionRequest, cancellationToken);
|
|
|
|
|
|
- base.Entity.TestPaperItems.ForEach(item =>
|
|
|
- {
|
|
|
- item.TestPaperItemKnowlagdes = testPaperItemKnowlagdes.Where(x => item.Id == x.TestPaperItemId).ToList();
|
|
|
- });
|
|
|
-
|
|
|
- var testPaperItemSourcewares = await AddTestPaperItemSourcewareAsync(actionRequest, cancellationToken);
|
|
|
+ var testPaperItemSourcewares = await AddTestPaperItemSourcewareAsync(actionRequest, cancellationToken);
|
|
|
|
|
|
base.Entity.TestPaperItems.ForEach(item =>
|
|
|
{
|
|
|
item.TestPaperItemSourcewares = testPaperItemSourcewares.Where(x => item.Id == x.TestPaperItemId).ToList();
|
|
|
+ item.TestPaperItemAnswers = testPaperItemAnswers.Where(x => item.Id == x.TestPaperItemId).ToList();
|
|
|
+ item.TestPaperItemKnowlagdes = testPaperItemKnowlagdes.Where(x => item.Id == x.TestPaperItemId).ToList();
|
|
|
+ item.TestPaperItemOptionses = testPaperItemOptions.Where(x => item.Id == x.TestPaperItemId).ToList();
|
|
|
});
|
|
|
|
|
|
- base.Entity.TestPaperRules = await AddTestPaperRules(actionRequest, cancellationToken);
|
|
|
+ //base.Entity.TestPaperRules = await AddTestPaperRules(actionRequest, cancellationToken);
|
|
|
|
|
|
- var testPaperRuleTags = await AddTestPaperRuleTags(actionRequest, cancellationToken);
|
|
|
+ //var testPaperRuleTags = await AddTestPaperRuleTags(actionRequest, cancellationToken);
|
|
|
|
|
|
- base.Entity.TestPaperRules?.ForEach(item =>
|
|
|
- {
|
|
|
- item.TestPaperRuleTags = testPaperRuleTags.Where(m => item.Id == m.TestPaperRuleId).ToList();
|
|
|
- });
|
|
|
+ //base.Entity.TestPaperRules?.ForEach(item =>
|
|
|
+ //{
|
|
|
+ // item.TestPaperRuleTags = testPaperRuleTags.Where(m => item.Id == m.TestPaperRuleId).ToList();
|
|
|
+ //});
|
|
|
|
|
|
await base.Complete(base.Entity, OperationConstant.Create);
|
|
|
|
|
@@ -196,40 +191,29 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
var testPaperItemAnswers = await ModifyTestPaperItemAnswer(actionRequest, cancellationToken);
|
|
|
|
|
|
- base.Entity.TestPaperItems.ForEach(item =>
|
|
|
- {
|
|
|
- item.TestPaperItemAnswers = testPaperItemAnswers.Where(x => item.Id == x.TestPaperItemId).ToList();
|
|
|
- });
|
|
|
-
|
|
|
var testPaperItemOptions = await ModifyTestPaperItemOptions(actionRequest, cancellationToken);
|
|
|
|
|
|
- base.Entity.TestPaperItems.ForEach(item =>
|
|
|
- {
|
|
|
- item.TestPaperItemOptionses = testPaperItemOptions.Where(x => item.Id == x.TestPaperItemId).ToList();
|
|
|
- });
|
|
|
-
|
|
|
var testPaperItemKnowlagdes = await ModifyTestPaperItemKnowladgeAsync(actionRequest, cancellationToken);
|
|
|
|
|
|
- base.Entity.TestPaperItems.ForEach(item =>
|
|
|
- {
|
|
|
- item.TestPaperItemKnowlagdes = testPaperItemKnowlagdes.Where(x => item.Id == x.TestPaperItemId).ToList();
|
|
|
- });
|
|
|
-
|
|
|
var testPaperItemSourcewares = await ModifyTestPaperItemSourcewareAsync(actionRequest, cancellationToken);
|
|
|
|
|
|
base.Entity.TestPaperItems.ForEach(item =>
|
|
|
{
|
|
|
- item.TestPaperItemSourcewares = testPaperItemSourcewares.Where(x => item.Id == x.TestPaperItemId).ToList();
|
|
|
+ item.TestPaperItemAnswers = testPaperItemAnswers.Where(x => item.Id == x.TestPaperItemId).ToList();
|
|
|
+ item.TestPaperItemSourcewares = testPaperItemSourcewares.Where(x => item.Id == x.TestPaperItemId).ToList();
|
|
|
+ item.TestPaperItemKnowlagdes = testPaperItemKnowlagdes.Where(x => item.Id == x.TestPaperItemId).ToList();
|
|
|
+ item.TestPaperItemOptionses = testPaperItemOptions.Where(x => item.Id == x.TestPaperItemId).ToList();
|
|
|
});
|
|
|
|
|
|
- base.Entity.TestPaperRules = await ModifyTestPaperRules(actionRequest, cancellationToken);
|
|
|
+ //base.Entity.TestPaperRules = await ModifyTestPaperRules(actionRequest, cancellationToken);
|
|
|
|
|
|
- var testPaperRuleTags = await ModifyTestPaperRuleTags(actionRequest, cancellationToken);
|
|
|
+ //var testPaperRuleTags = await ModifyTestPaperRuleTags(actionRequest, cancellationToken);
|
|
|
|
|
|
- base.Entity.TestPaperRules.ForEach(item =>
|
|
|
- {
|
|
|
- item.TestPaperRuleTags = testPaperRuleTags.Where(x => item.Id == x.TestPaperRuleId).ToList();
|
|
|
- });
|
|
|
+ //base.Entity.TestPaperRules.ForEach(item =>
|
|
|
+ //{
|
|
|
+
|
|
|
+ // item.TestPaperRuleTags = testPaperRuleTags.Where(x => item.Id == x.TestPaperRuleId).ToList();
|
|
|
+ //});
|
|
|
|
|
|
await base.Complete(base.Entity, OperationConstant.Update);
|
|
|
}
|
|
@@ -294,115 +278,76 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
}
|
|
|
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 根据规则获取试题
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="testPaperQuestionRequest"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ /// <exception cref="NotImplementedException"></exception>
|
|
|
+ public async Task<List<QuestionDto>> GetQuestionDtos(TestPaperQuestionRequest testPaperQuestionRequest)
|
|
|
+ {
|
|
|
+ var questions = await GetQuestions(testPaperQuestionRequest);
|
|
|
+
|
|
|
+ return questions;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 组卷
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="generateTestPaperRequest"></param>
|
|
|
+ /// <param name="cancellationToken"></param>
|
|
|
+ /// <returns></returns>
|
|
|
public async Task GenerateTestPaper(GenerateTestPaperRequest generateTestPaperRequest, CancellationToken cancellationToken)
|
|
|
{
|
|
|
var testPaper = await _repository.GetAsync(x => x.Id == generateTestPaperRequest.TestPaperId);
|
|
|
|
|
|
if (testPaper != null)
|
|
|
{
|
|
|
+ //随机组卷
|
|
|
if (testPaper.Mode == Share.Enums.Exams.EExamMode.Random)
|
|
|
{
|
|
|
- List<TestPaperItem> testPaperItems = await SyncQuestion(generateTestPaperRequest, cancellationToken);
|
|
|
-
|
|
|
- await SyncQuestionOptions(testPaperItems, cancellationToken);
|
|
|
- await SyncQuestionSourcewares(testPaperItems, cancellationToken);
|
|
|
- await SyncQuestionKnowladge(testPaperItems, cancellationToken);
|
|
|
- await SyncQuestionAnswer(testPaperItems, cancellationToken);
|
|
|
-
|
|
|
+ var questions = await GetQuestions(generateTestPaperRequest);
|
|
|
+ _testPaperProxy = new TestPaperProxy(_repository,
|
|
|
+ _testPaperItemRepository,
|
|
|
+ _testPaperItemAnswerRepository,
|
|
|
+ _testPaperItemOptionsRepository,
|
|
|
+ _testPaperItemSourcewareRepository,
|
|
|
+ _testPaperItemKnowladgeRepository,
|
|
|
+ _dataPermissionFilterBuilder,
|
|
|
+ _serviceProvider,
|
|
|
+ _mapper,
|
|
|
+ _sessionContext);
|
|
|
+
|
|
|
+ await _testPaperProxy.GenerateQuestion(questions, generateTestPaperRequest.TestPaperId, cancellationToken);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
- private async Task SyncQuestionAnswer(List<TestPaperItem> testPaperItems, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<QuestionDto>> GetQuestions(TestPaperQuestionRequest testPaperQuestionRequest)
|
|
|
{
|
|
|
- var questionAnswersRepository = new ExamRepository<QuestionAnswer>(_repository.UOW, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
- var questionIds = testPaperItems.Select(x => x.QuestionId);
|
|
|
- var questionAnswers = await questionAnswersRepository.Queryable().Where(x => questionIds.Contains(x.QuestionId)).ToListAsync();
|
|
|
-
|
|
|
- var testPaperItemAnswers = new List<TestPaperItemAnswer>();
|
|
|
-
|
|
|
- questionAnswers.ForEach(item =>
|
|
|
- {
|
|
|
- var testPaperItemAnswer = _mapper.Map<TestPaperItemAnswer>(item);
|
|
|
- var testPaperItem = testPaperItems.FirstOrDefault(x => x.QuestionId == item.QuestionId);
|
|
|
- testPaperItemAnswer.QueswerAnswerId = item.Id;
|
|
|
- testPaperItemAnswer.TestPaperItemId = testPaperItem?.Id ?? string.Empty;
|
|
|
- testPaperItemAnswers.Add(testPaperItemAnswer);
|
|
|
- });
|
|
|
-
|
|
|
- testPaperItemAnswers.ToInsert(_sessionContext);
|
|
|
-
|
|
|
- await _testPaperItemAnswerRepository.ValidateAddAsync(testPaperItemAnswers, cancellationToken);
|
|
|
- }
|
|
|
-
|
|
|
- private async Task SyncQuestionKnowladge(List<TestPaperItem> testPaperItems, CancellationToken cancellationToken)
|
|
|
- {
|
|
|
- var questionKnowladgesRepository = new ExamRepository<QuestionKnowladge>(_repository.UOW, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
- var questionIds = testPaperItems.Select(x => x.QuestionId);
|
|
|
- var questionKnowladges = await questionKnowladgesRepository.Queryable().Where(x => questionIds.Contains(x.QuestionId)).ToListAsync();
|
|
|
-
|
|
|
- var testPaperItemKnowladges = new List<TestPaperItemKnowladge>();
|
|
|
-
|
|
|
- questionKnowladges.ForEach(item =>
|
|
|
- {
|
|
|
- var testPaperItemKnowladge = _mapper.Map<TestPaperItemKnowladge>(item);
|
|
|
- var testPaperItem = testPaperItems.FirstOrDefault(x => x.QuestionId == item.QuestionId);
|
|
|
- testPaperItemKnowladge.KnowladgeId = item.Id;
|
|
|
- testPaperItemKnowladge.TestPaperItemId = testPaperItem?.Id ?? string.Empty;
|
|
|
- testPaperItemKnowladges.Add(testPaperItemKnowladge);
|
|
|
- });
|
|
|
-
|
|
|
- testPaperItemKnowladges.ToInsert(_sessionContext);
|
|
|
-
|
|
|
- await _testPaperItemKnowladgeRepository.ValidateAddAsync(testPaperItemKnowladges, cancellationToken);
|
|
|
- }
|
|
|
-
|
|
|
- private async Task SyncQuestionSourcewares(List<TestPaperItem> testPaperItems, CancellationToken cancellationToken)
|
|
|
- {
|
|
|
- var questionSourcewaresRepository = new ExamRepository<QuestionSourceware>(_repository.UOW, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
- var questionIds = testPaperItems.Select(x => x.QuestionId);
|
|
|
- var questionSourcewares = await questionSourcewaresRepository.Queryable().Where(x => questionIds.Contains(x.QuestionId)).ToListAsync();
|
|
|
-
|
|
|
- var testPaperItemSourcewares = new List<TestPaperItemSourceware>();
|
|
|
-
|
|
|
- questionSourcewares.ForEach(item =>
|
|
|
- {
|
|
|
- var testPaperItemSourceware = _mapper.Map<TestPaperItemSourceware>(item);
|
|
|
- var testPaperItem = testPaperItems.FirstOrDefault(x => x.QuestionId == item.QuestionId);
|
|
|
- testPaperItemSourceware.SourcewareId = item.Id;
|
|
|
- testPaperItemSourceware.TestPaperItemId = testPaperItem?.Id ?? string.Empty;
|
|
|
- testPaperItemSourcewares.Add(testPaperItemSourceware);
|
|
|
- });
|
|
|
-
|
|
|
- testPaperItemSourcewares.ToInsert(_sessionContext);
|
|
|
-
|
|
|
- await _testPaperItemSourcewareRepository.ValidateAddAsync(testPaperItemSourcewares, cancellationToken);
|
|
|
- }
|
|
|
+ var questionRepository = new ExamRepository<Question>(_repository.UOW, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
+ var questionTagRepository = new ExamRepository<QuestionTag>(_repository.UOW, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
+ var questionTagTable = questionTagRepository.Queryable();
|
|
|
+ var questionTable = questionRepository.Queryable();
|
|
|
|
|
|
- private async Task SyncQuestionOptions(List<TestPaperItem> testPaperItems, CancellationToken cancellationToken)
|
|
|
- {
|
|
|
- var questionOptionsRepository =new ExamRepository<QuestionOptions>(_repository.UOW, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
- var questionIds = testPaperItems.Select(x => x.QuestionId);
|
|
|
- var questionOptions = await questionOptionsRepository.Queryable().Where(x=>questionIds.Contains(x.QuestionId)).ToListAsync();
|
|
|
+ var questions = await questionTable.InnerJoin(questionTagTable, (q,qt)=>q.Id == qt.QuestionId)
|
|
|
+ .Where((q, qt) => q.DifficultyLevel == testPaperQuestionRequest.DifficultyLevel
|
|
|
+ && q.QuestionType == testPaperQuestionRequest.QuestionType && testPaperQuestionRequest.TagIds.Contains(qt.TagId)
|
|
|
+ )
|
|
|
+ .Select((q, qt) => q).Take(testPaperQuestionRequest.Count).OrderBy(SqlFunc.GetRandom()).ToListAsync();
|
|
|
|
|
|
- var testPaperItemOptions = new List<TestPaperItemOptions>();
|
|
|
+ var questionDtos = new List<QuestionDto>();
|
|
|
|
|
|
- questionOptions.ForEach(item =>
|
|
|
+ questions.ForEach(item =>
|
|
|
{
|
|
|
- var testPaperItemOption = _mapper.Map<TestPaperItemOptions>(item);
|
|
|
- var testPaperItem = testPaperItems.FirstOrDefault(x => x.QuestionId == item.QuestionId);
|
|
|
- testPaperItemOption.QuestionOptionId = item.Id;
|
|
|
- testPaperItemOption.TestPaperItemId = testPaperItem?.Id??string.Empty;
|
|
|
- testPaperItemOptions.Add(testPaperItemOption);
|
|
|
+ var questionDto = _mapper.Map<QuestionDto>(item);
|
|
|
});
|
|
|
|
|
|
- testPaperItemOptions.ToInsert(_sessionContext);
|
|
|
-
|
|
|
- await _testPaperItemOptionsRepository.ValidateAddAsync(testPaperItemOptions, cancellationToken);
|
|
|
+ return questionDtos;
|
|
|
}
|
|
|
|
|
|
- private async Task<List<TestPaperItem>> SyncQuestion(GenerateTestPaperRequest generateTestPaperRequest, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<Question>> GetQuestions(GenerateTestPaperRequest generateTestPaperRequest)
|
|
|
{
|
|
|
var questionRepository = new ExamRepository<Question>(_repository.UOW, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
var questionTagRepository = new ExamRepository<QuestionTag>(_repository.UOW, _dataPermissionFilterBuilder, _serviceProvider);
|
|
@@ -416,25 +361,14 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
var questions = await questionTable.InnerJoin(questionTagTable, (q, qt) => q.Id == qt.QuestionId)
|
|
|
.InnerJoin(testPaperTagTable, (q, qt, tt) => qt.TagId == tt.TagId)
|
|
|
.InnerJoin(testPaperRuleTable, (q, qt, tt, tpr) => tt.TestPaperRuleId == tpr.Id)
|
|
|
- .Where((q, qt, tt, tpr)=>q.QuestionType == tpr.QuestionType)
|
|
|
+ .Where((q, qt, tt, tpr) => q.QuestionType == tpr.QuestionType)
|
|
|
.Select((q, qt, tt, tpr) => q).Take(count).OrderBy(SqlFunc.GetRandom()).ToListAsync();
|
|
|
|
|
|
- var testPaperItems = new List<TestPaperItem>();
|
|
|
|
|
|
- questions.ForEach(item =>
|
|
|
- {
|
|
|
- var testPaperItem = _mapper.Map<TestPaperItem>(item);
|
|
|
- testPaperItem.TestPaperId = generateTestPaperRequest.TestPaperId;
|
|
|
- testPaperItem.QuestionId = item.Id;
|
|
|
- testPaperItems.Add(testPaperItem);
|
|
|
- });
|
|
|
-
|
|
|
- testPaperItems.ToInsert(_sessionContext);
|
|
|
+ return questions;
|
|
|
+ }
|
|
|
|
|
|
- await _testPaperItemRepository.ValidateAddAsync(testPaperItems,cancellationToken);
|
|
|
|
|
|
- return testPaperItems;
|
|
|
- }
|
|
|
#endregion
|
|
|
|
|
|
#region private method
|
|
@@ -566,10 +500,10 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
var testPaperRuleId = string.Empty;
|
|
|
if (base.Entity != null)
|
|
|
{
|
|
|
- var testPaperRule = base.Entity.TestPaperRules.FirstOrDefault(x => x.TestPaperId == item.TestPaperId
|
|
|
- && x.QuestionType == item.QuestionType && x.Count == item.Count && x.DifficultyLevel == item.DifficultyLevel);
|
|
|
+ //var testPaperRule = base.Entity.TestPaperRules.FirstOrDefault(x => x.TestPaperId == item.TestPaperId
|
|
|
+ //&& x.QuestionType == item.QuestionType && x.Count == item.Count && x.DifficultyLevel == item.DifficultyLevel);
|
|
|
|
|
|
- testPaperRuleId = testPaperRule?.Id;
|
|
|
+ //testPaperRuleId = testPaperRule?.Id;
|
|
|
}
|
|
|
|
|
|
item.TestPaperRuleTagDtos.ForEach(x =>
|
|
@@ -1074,8 +1008,8 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
protected override async Task CompleteAdd(TestPaper entity)
|
|
|
{
|
|
|
await base.AddNav(entity)
|
|
|
- .Include(x => x.TestPaperRules)
|
|
|
- .ThenInclude(x => x.TestPaperRuleTags)
|
|
|
+ //.Include(x => x.TestPaperRules)
|
|
|
+ //.ThenInclude(x => x.TestPaperRuleTags)
|
|
|
.Include(x => x.TestPaperItems)
|
|
|
.ThenInclude(x => x.TestPaperItemAnswers)
|
|
|
.Include(x => x.TestPaperItems, new InsertNavOptions
|
|
@@ -1093,8 +1027,8 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
protected override async Task CompleteUpdate(TestPaper entity)
|
|
|
{
|
|
|
await base.UpdateNav(entity)
|
|
|
- .Include(x => x.TestPaperRules)
|
|
|
- .ThenInclude(x => x.TestPaperRuleTags)
|
|
|
+ //.Include(x => x.TestPaperRules)
|
|
|
+ //.ThenInclude(x => x.TestPaperRuleTags)
|
|
|
.Include(x => x.TestPaperItems)
|
|
|
.ThenInclude(x => x.TestPaperItemAnswers)
|
|
|
.Include(x => x.TestPaperItems, new UpdateNavOptions
|
|
@@ -1108,7 +1042,6 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
})
|
|
|
.ThenInclude(x => x.TestPaperItemSourcewares).ExecuteCommandAsync();
|
|
|
}
|
|
|
-
|
|
|
#endregion
|
|
|
}
|
|
|
}
|