feat(learning): harden access and practice sessions
This commit is contained in:
@@ -70,36 +70,13 @@ internal sealed class QuestionManagementService(DirectContentServiceDependencies
|
||||
actor.TenantId,
|
||||
SaasQuotaMetricCatalog.PrivateQuestionCount,
|
||||
cancellationToken: cancellationToken);
|
||||
QuestionVersion? version;
|
||||
if (command.CreateVersion || !question.CurrentVersionId.HasValue)
|
||||
{
|
||||
var nextVersionNo = await questionBankPersistence.QuestionVersions
|
||||
.Where(item => item.TenantId == actor.TenantId && item.QuestionId == question.Id)
|
||||
.Select(item => (int?)item.VersionNo)
|
||||
.MaxAsync(cancellationToken) ?? 0;
|
||||
version = BuildQuestionVersion(actor, question.Id, nextVersionNo + 1, command);
|
||||
questionBankPersistence.QuestionVersions.Add(version);
|
||||
question.CurrentVersionId = version.Id;
|
||||
}
|
||||
else
|
||||
{
|
||||
version = await questionBankPersistence.QuestionVersions.SingleOrDefaultAsync(
|
||||
item =>
|
||||
item.TenantId == actor.TenantId &&
|
||||
item.QuestionId == question.Id &&
|
||||
item.Id == question.CurrentVersionId.Value,
|
||||
cancellationToken);
|
||||
if (version is null)
|
||||
{
|
||||
version = BuildQuestionVersion(actor, question.Id, 1, command);
|
||||
questionBankPersistence.QuestionVersions.Add(version);
|
||||
question.CurrentVersionId = version.Id;
|
||||
}
|
||||
else
|
||||
{
|
||||
ApplyQuestionVersion(version, command);
|
||||
}
|
||||
}
|
||||
var nextVersionNo = await questionBankPersistence.QuestionVersions
|
||||
.Where(item => item.TenantId == actor.TenantId && item.QuestionId == question.Id)
|
||||
.Select(item => (int?)item.VersionNo)
|
||||
.MaxAsync(cancellationToken) ?? 0;
|
||||
var version = BuildQuestionVersion(actor, question.Id, nextVersionNo + 1, command);
|
||||
questionBankPersistence.QuestionVersions.Add(version);
|
||||
question.CurrentVersionId = version.Id;
|
||||
|
||||
await SyncPrimaryCollectionItemAsync(actor, question, cancellationToken);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user