清理代码
Some checks failed
ci / release-gate (push) Has been cancelled

This commit is contained in:
2026-08-03 12:31:39 +08:00
parent caea0062b0
commit c497a3ca8d
537 changed files with 14171 additions and 12503 deletions

View File

@@ -23,20 +23,13 @@ public sealed class ContentNavigationQueryService(TikuDbContext dbContext) : ICo
entry.TenantId == filter.TenantId &&
entry.IsActive);
if (!filter.IncludeHidden)
{
query = query.Where(entry => entry.Visibility != ContentVisibility.Hidden);
}
if (!filter.IncludeHidden) query = query.Where(entry => entry.Visibility != ContentVisibility.Hidden);
if (filter.RegionId.HasValue)
{
query = query.Where(entry => entry.RegionId == filter.RegionId.Value || entry.RegionId == null);
}
if (TryParseEntryType(filter.EntryType, out var entryType))
{
query = query.Where(entry => entry.EntryType == entryType);
}
query = ApplyKeyword(query, filter.Keyword);
@@ -67,10 +60,7 @@ public sealed class ContentNavigationQueryService(TikuDbContext dbContext) : ICo
ContentNavigationFilter filter,
CancellationToken cancellationToken = default)
{
if (!filter.EntryId.HasValue)
{
throw new RequiredFieldException("entryId is required.");
}
if (!filter.EntryId.HasValue) throw new RequiredFieldException("entryId is required.");
var query = dbContext.ContentNodes
.AsNoTracking()
@@ -78,27 +68,18 @@ public sealed class ContentNavigationQueryService(TikuDbContext dbContext) : ICo
node.TenantId == filter.TenantId &&
node.EntryId == filter.EntryId.Value);
if (!filter.IncludeInactive)
{
query = query.Where(node => node.IsActive);
}
if (!filter.IncludeInactive) query = query.Where(node => node.IsActive);
if (filter.RegionId.HasValue)
{
query = query.Where(node => node.RegionId == filter.RegionId.Value || node.RegionId == null);
}
if (filter.ParentWasSpecified)
{
query = filter.ParentIsRoot
? query.Where(node => node.ParentId == null)
: query.Where(node => node.ParentId == filter.ParentId);
}
if (TryParseMarkerType(filter.MarkerType, out var markerType))
{
query = query.Where(node => node.MarkerType == markerType);
}
query = ApplyKeyword(query, filter.Keyword);
@@ -142,24 +123,15 @@ public sealed class ContentNavigationQueryService(TikuDbContext dbContext) : ICo
collection.Status == ContentStatus.Active);
if (filter.RegionId.HasValue)
{
query = query.Where(collection => collection.RegionId == filter.RegionId.Value || collection.RegionId == null);
}
query = query.Where(collection =>
collection.RegionId == filter.RegionId.Value || collection.RegionId == null);
if (filter.EntryId.HasValue)
{
query = query.Where(collection => collection.EntryId == filter.EntryId.Value);
}
if (filter.EntryId.HasValue) query = query.Where(collection => collection.EntryId == filter.EntryId.Value);
if (filter.NodeId.HasValue)
{
query = query.Where(collection => collection.NodeId == filter.NodeId.Value);
}
if (filter.NodeId.HasValue) query = query.Where(collection => collection.NodeId == filter.NodeId.Value);
if (TryParseCollectionType(filter.CollectionType, out var collectionType))
{
query = query.Where(collection => collection.CollectionType == collectionType);
}
query = ApplyKeyword(query, filter.Keyword);
@@ -203,29 +175,16 @@ public sealed class ContentNavigationQueryService(TikuDbContext dbContext) : ICo
blueprint.Status == ContentStatus.Active);
if (filter.RegionId.HasValue)
{
query = query.Where(blueprint => blueprint.RegionId == filter.RegionId.Value || blueprint.RegionId == null);
}
if (filter.EntryId.HasValue)
{
query = query.Where(blueprint => blueprint.EntryId == filter.EntryId.Value);
}
if (filter.EntryId.HasValue) query = query.Where(blueprint => blueprint.EntryId == filter.EntryId.Value);
if (filter.NodeId.HasValue)
{
query = query.Where(blueprint => blueprint.NodeId == filter.NodeId.Value);
}
if (filter.NodeId.HasValue) query = query.Where(blueprint => blueprint.NodeId == filter.NodeId.Value);
if (filter.CollectionId.HasValue)
{
query = query.Where(blueprint => blueprint.CollectionId == filter.CollectionId.Value);
}
if (TryParsePracticeMode(filter.Mode, out var mode))
{
query = query.Where(blueprint => blueprint.Mode == mode);
}
if (TryParsePracticeMode(filter.Mode, out var mode)) query = query.Where(blueprint => blueprint.Mode == mode);
query = ApplyKeyword(query, filter.Keyword);
@@ -261,10 +220,7 @@ public sealed class ContentNavigationQueryService(TikuDbContext dbContext) : ICo
ContentNavigationFilter filter,
CancellationToken cancellationToken = default)
{
if (!filter.CollectionId.HasValue)
{
throw new RequiredFieldException("collectionId is required.");
}
if (!filter.CollectionId.HasValue) throw new RequiredFieldException("collectionId is required.");
var collectionExists = await dbContext.QuestionCollections
.AsNoTracking()
@@ -275,10 +231,7 @@ public sealed class ContentNavigationQueryService(TikuDbContext dbContext) : ICo
collection.Status == ContentStatus.Active,
cancellationToken);
if (!collectionExists)
{
throw new ContentNavigationNotFoundException("Question collection was not found.");
}
if (!collectionExists) throw new ContentNavigationNotFoundException("Question collection was not found.");
var emptyOptions = JsonDefaults.Array();
var emptyCorrectOptionIndices = JsonDefaults.Array();
@@ -286,7 +239,7 @@ public sealed class ContentNavigationQueryService(TikuDbContext dbContext) : ICo
var query =
from item in dbContext.QuestionCollectionItems.AsNoTracking()
join question in dbContext.Questions.AsNoTracking()
on new { item.TenantId, QuestionId = item.QuestionId } equals new { question.TenantId, QuestionId = question.Id }
on new { item.TenantId, item.QuestionId } equals new { question.TenantId, QuestionId = question.Id }
join version in dbContext.QuestionVersions.AsNoTracking()
on new { question.TenantId, QuestionId = question.Id, VersionId = question.CurrentVersionId }
equals new { version.TenantId, version.QuestionId, VersionId = (Guid?)version.Id }
@@ -336,10 +289,7 @@ public sealed class ContentNavigationQueryService(TikuDbContext dbContext) : ICo
private static IQueryable<T> ApplyKeyword<T>(IQueryable<T> query, string? keyword)
where T : class
{
if (string.IsNullOrWhiteSpace(keyword))
{
return query;
}
if (string.IsNullOrWhiteSpace(keyword)) return query;
var trimmed = keyword.Trim();
return query.Where(entity => EF.Property<string>(entity, nameof(ContentEntry.Name)).Contains(trimmed));
@@ -352,22 +302,22 @@ public sealed class ContentNavigationQueryService(TikuDbContext dbContext) : ICo
private static bool TryParseEntryType(string? value, out ContentEntryType type)
{
return Enum.TryParse(NormalizeEnumValue(value), ignoreCase: true, out type);
return Enum.TryParse(NormalizeEnumValue(value), true, out type);
}
private static bool TryParseCollectionType(string? value, out QuestionCollectionType type)
{
return Enum.TryParse(NormalizeEnumValue(value), ignoreCase: true, out type);
return Enum.TryParse(NormalizeEnumValue(value), true, out type);
}
private static bool TryParsePracticeMode(string? value, out PracticeMode mode)
{
return Enum.TryParse(NormalizeEnumValue(value), ignoreCase: true, out mode);
return Enum.TryParse(NormalizeEnumValue(value), true, out mode);
}
private static bool TryParseMarkerType(string? value, out ContentMarkerType type)
{
return Enum.TryParse(NormalizeEnumValue(value), ignoreCase: true, out type);
return Enum.TryParse(NormalizeEnumValue(value), true, out type);
}
private static string? NormalizeEnumValue(string? value)
@@ -377,4 +327,4 @@ public sealed class ContentNavigationQueryService(TikuDbContext dbContext) : ICo
: value.Replace("_", string.Empty, StringComparison.Ordinal)
.Replace("-", string.Empty, StringComparison.Ordinal);
}
}
}