|
@@ -68,7 +68,7 @@ namespace Hotline.Application.Exam.Service.Trains
|
|
|
public async Task CompleteTrainRecordAsync(CompleteTrainRecordDto completeTrainRecordDto, CancellationToken cancellationToken)
|
|
|
{
|
|
|
var trainRecord = await _repository.GetAsync(x => x.Id == completeTrainRecordDto.Id);
|
|
|
- trainRecord= _mapper.Map<CompleteTrainRecordDto,ExamTrainRecord>(completeTrainRecordDto, trainRecord);
|
|
|
+ trainRecord = _mapper.Map<CompleteTrainRecordDto, ExamTrainRecord>(completeTrainRecordDto, trainRecord);
|
|
|
trainRecord.ToUpdate(_sessionContext);
|
|
|
|
|
|
await _repository.UpdateWithValidateAsync(trainRecord, cancellationToken);
|
|
@@ -80,7 +80,7 @@ namespace Hotline.Application.Exam.Service.Trains
|
|
|
|
|
|
trainKnowladge.ToUpdate(_sessionContext);
|
|
|
|
|
|
- await _trainKnowladgeRepository.UpdateWithValidateAsync(trainKnowladge,cancellationToken);
|
|
|
+ await _trainKnowladgeRepository.UpdateWithValidateAsync(trainKnowladge, cancellationToken);
|
|
|
|
|
|
}
|
|
|
|
|
@@ -113,12 +113,12 @@ namespace Hotline.Application.Exam.Service.Trains
|
|
|
SqlSugar.ISugarQueryable<TrainRecordViewResponse> queryResult = QueryResult(queryRequest);
|
|
|
|
|
|
var total = await queryResult.CountAsync();
|
|
|
- var items = await queryResult.ToPageListAsync(queryRequest.PageIndex,queryRequest.PageSize);
|
|
|
+ var items = await queryResult.ToPageListAsync(queryRequest.PageIndex, queryRequest.PageSize);
|
|
|
|
|
|
return new TrainRecordPageViewResponse
|
|
|
{
|
|
|
Items = items,
|
|
|
- Pagination = new Pagination(queryRequest.PageIndex,queryRequest.PageSize,total)
|
|
|
+ Pagination = new Pagination(queryRequest.PageIndex, queryRequest.PageSize, total)
|
|
|
};
|
|
|
|
|
|
}
|
|
@@ -127,7 +127,7 @@ namespace Hotline.Application.Exam.Service.Trains
|
|
|
{
|
|
|
await GetTrainPracticeKnowladge(addTrainDto, cancellationToken);
|
|
|
|
|
|
- await AddTrainRecordItem(addTrainDto,cancellationToken);
|
|
|
+ await AddTrainRecordItem(addTrainDto, cancellationToken);
|
|
|
|
|
|
await AddTrainRecordAnswer(addTrainDto, cancellationToken);
|
|
|
|
|
@@ -138,7 +138,7 @@ namespace Hotline.Application.Exam.Service.Trains
|
|
|
|
|
|
private async Task GetTrainPracticeKnowladge(AddTrainDto addTrainDto, CancellationToken cancellationToken)
|
|
|
{
|
|
|
- var trainPracticeKnowladeRepository = new TrainPracticeKnowladgeRepository(_uow,_dataPermissionFilterBuilder,_serviceProvider);
|
|
|
+ var trainPracticeKnowladeRepository = new TrainPracticeKnowladgeRepository(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
var trainPracticeKnowladge = await trainPracticeKnowladeRepository.GetAsync(x => x.TrainPracticeId == addTrainDto.TrainPracticeId);
|
|
|
|
|
|
if (trainPracticeKnowladge != null)
|
|
@@ -208,6 +208,7 @@ namespace Hotline.Application.Exam.Service.Trains
|
|
|
|
|
|
public async Task<TrainResultPagedViewResponse> AnalysisTrainResult(TrainResultReportPagedRequest trainResultReportPagedRequest)
|
|
|
{
|
|
|
+ if(trainResultReportPagedRequest.EndTime == null)
|
|
|
trainResultReportPagedRequest.ResolveEndTime();
|
|
|
|
|
|
var expression = trainResultReportPagedRequest.GetExpression();
|
|
@@ -227,7 +228,7 @@ namespace Hotline.Application.Exam.Service.Trains
|
|
|
var queryResult = trainRecordTable.InnerJoin(trainPlanTable, (r, p) => r.TrainPlanId == p.Id)
|
|
|
.InnerJoin(trainPlanTemplateTable, (r, p, pt) => p.Id == pt.TrainPlanId)
|
|
|
.InnerJoin(trainTemplateTable, (r, p, pt, t) => pt.TrainTemplateId == t.Id)
|
|
|
- .InnerJoin(userTable,(r,p,pt,t,u)=>r.UserId == u.Id)
|
|
|
+ .InnerJoin(userTable, (r, p, pt, t, u) => r.UserId == u.Id)
|
|
|
.Select((r, p, pt, t, u) => new TrainResultViewResponse
|
|
|
{
|
|
|
TrainName = t.Name,
|
|
@@ -250,7 +251,8 @@ namespace Hotline.Application.Exam.Service.Trains
|
|
|
|
|
|
public async Task<TrainResultRateViewResponse> CalcuteAnalysisRate(TrainResultReportPagedRequest trainResultReportPagedRequest)
|
|
|
{
|
|
|
- trainResultReportPagedRequest.ResolveEndTime();
|
|
|
+ if (trainResultReportPagedRequest.EndTime == null)
|
|
|
+ trainResultReportPagedRequest.ResolveEndTime();
|
|
|
|
|
|
var expression = trainResultReportPagedRequest.GetExpression();
|
|
|
var templateExpression = trainResultReportPagedRequest.GetTemplateExpression();
|
|
@@ -278,7 +280,7 @@ namespace Hotline.Application.Exam.Service.Trains
|
|
|
|
|
|
var calcuteRateResult = new TrainResultRateViewResponse
|
|
|
{
|
|
|
- Complete = await queryResult.CountAsync(x=>x.IsComplete),
|
|
|
+ Complete = await queryResult.CountAsync(x => x.IsComplete),
|
|
|
Trainning = await queryResult.CountAsync(x => !x.IsComplete && x.TrainTime > DateTime.Now),
|
|
|
UnComplete = await queryResult.CountAsync(x => !x.IsComplete && x.TrainTime <= DateTime.Now),
|
|
|
};
|
|
@@ -369,8 +371,9 @@ namespace Hotline.Application.Exam.Service.Trains
|
|
|
var knowledgeTable = knowledgeRepository.Queryable();
|
|
|
|
|
|
var queryable = questionTable.InnerJoin(questionKnowladgeTable, (r, p, tpt, tp, ExamPracticeQuestionKnowledge) => tp.QuestionId == ExamPracticeQuestionKnowledge.QuestionId)
|
|
|
- .InnerJoin(knowledgeTable, (r, p, tpt, tp, ExamPracticeQuestionKnowledge,kl) => ExamPracticeQuestionKnowledge.KnowladgeId == kl.Id)
|
|
|
- .GroupBy((r, p, tpt, tp, ExamPracticeQuestionKnowledge, kl) => new {
|
|
|
+ .InnerJoin(knowledgeTable, (r, p, tpt, tp, ExamPracticeQuestionKnowledge, kl) => ExamPracticeQuestionKnowledge.KnowladgeId == kl.Id)
|
|
|
+ .GroupBy((r, p, tpt, tp, ExamPracticeQuestionKnowledge, kl) => new
|
|
|
+ {
|
|
|
Title = kl.Title,
|
|
|
Id = kl.Id
|
|
|
})
|
|
@@ -382,7 +385,7 @@ namespace Hotline.Application.Exam.Service.Trains
|
|
|
|
|
|
return await queryable.ToListAsync();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
private async Task AddTrainRecordAnswer(AddTrainDto addTrainDto, CancellationToken cancellationToken)
|
|
|
{
|
|
@@ -407,7 +410,7 @@ namespace Hotline.Application.Exam.Service.Trains
|
|
|
|
|
|
trainRecordAnswers.ToInsert(_sessionContext);
|
|
|
|
|
|
- await _trainRecordAnswerRepository.AddWithValidateAsync(trainRecordAnswers,cancellationToken);
|
|
|
+ await _trainRecordAnswerRepository.AddWithValidateAsync(trainRecordAnswers, cancellationToken);
|
|
|
}
|
|
|
|
|
|
//private async Task<TrainPracticeDto> GetTrainQuestionOptions(AddTrainDto addTrainDto)
|
|
@@ -442,7 +445,7 @@ namespace Hotline.Application.Exam.Service.Trains
|
|
|
|
|
|
var trainRecordTable = _repository.Queryable().Where(x => x.Id == trainPracticeRequest.Id);
|
|
|
var trainPlanTable = trainPlanRepository.Queryable();
|
|
|
- var trainPracticeTable = trainPracticeRepostitory.Queryable().WhereIF(!string.IsNullOrEmpty(trainPracticeRequest.TrainPracticeId),x=>x.Id == trainPracticeRequest.TrainPracticeId);
|
|
|
+ var trainPracticeTable = trainPracticeRepostitory.Queryable().WhereIF(!string.IsNullOrEmpty(trainPracticeRequest.TrainPracticeId), x => x.Id == trainPracticeRequest.TrainPracticeId);
|
|
|
var tranPlanTemplateTable = trainPlanTemplateRepository.Queryable();
|
|
|
|
|
|
var trainPractices = trainPracticeTable.InnerJoin(tranPlanTemplateTable, (tp, tpt) => tp.TrainTemplateId == tpt.TrainTemplateId)
|
|
@@ -462,7 +465,7 @@ namespace Hotline.Application.Exam.Service.Trains
|
|
|
|
|
|
var trainPracticeOptions = await trainPracticeOptionsRepository.Queryable()
|
|
|
.InnerJoin(trainPractices, (tpo, tp) => tpo.TrainPracticeId == tp.Id)
|
|
|
- .Where((tpo, tp)=> tp.Id == trainPracticeRequest.TrainPracticeId)
|
|
|
+ .Where((tpo, tp) => tp.Id == trainPracticeRequest.TrainPracticeId)
|
|
|
.Select((tpo, tp) => tpo).ToListAsync();
|
|
|
|
|
|
var queryable = trainRecordAnswerRepository.Queryable()
|
|
@@ -478,7 +481,7 @@ namespace Hotline.Application.Exam.Service.Trains
|
|
|
var trainPracticeOptionsDtos = new List<SimpleTrainPracticeOptionsDto>();
|
|
|
|
|
|
trainPracticeOptions.ForEach(x =>
|
|
|
- {
|
|
|
+ {
|
|
|
var trainPracticeOptionsDto = _mapper.Map<SimpleTrainPracticeOptionsDto>(x);
|
|
|
|
|
|
trainPracticeOptionsDto.IsSelected = trainRecordOptions.Any(m => m.QuestionOptionId == x.QuestionOptionId);
|