refactor(architecture): harden module boundaries
Some checks failed
ci / release-gate (push) Has been cancelled
Some checks failed
ci / release-gate (push) Has been cancelled
This commit is contained in:
@@ -16,7 +16,7 @@ internal sealed class ScorelineManagementService(DirectContentServiceDependencie
|
||||
{
|
||||
var scope = await RequireDataScopeAsync(actor, cancellationToken);
|
||||
var regionIds = scope.RegionIds.ToArray();
|
||||
var query = dbContext.ScorelineFields.AsNoTracking()
|
||||
var query = catalogPersistence.ScorelineFields.AsNoTracking()
|
||||
.Where(item => item.TenantId == actor.TenantId)
|
||||
.ApplyDataScope(scope, null, item => item.RegionId.HasValue && regionIds.Contains(item.RegionId.Value));
|
||||
if (filter.RegionId.HasValue)
|
||||
@@ -47,7 +47,7 @@ internal sealed class ScorelineManagementService(DirectContentServiceDependencie
|
||||
throw new ContentManagementException("Scoreline field key is invalid.", "scoreline_field_key_invalid");
|
||||
|
||||
await AssertReferenceAsync<Region>(actor.TenantId, command.RegionId, "region_not_found", cancellationToken);
|
||||
var item = await ResolveByIdOrLegacyAsync(dbContext.ScorelineFields, actor.TenantId, command.Id,
|
||||
var item = await ResolveByIdOrLegacyAsync(catalogPersistence.ScorelineFields, actor.TenantId, command.Id,
|
||||
command.LegacyId, cancellationToken);
|
||||
var isNew = item is null;
|
||||
EnsureRegionWriteAllowed(scope, actor, item?.RegionId, command.RegionId, isNew, "scoreline_field_not_found");
|
||||
@@ -66,9 +66,9 @@ internal sealed class ScorelineManagementService(DirectContentServiceDependencie
|
||||
item.Placeholder = Normalize(command.Placeholder);
|
||||
item.Description = Normalize(command.Description);
|
||||
item.SortOrder = command.Order ?? item.SortOrder;
|
||||
if (isNew) dbContext.ScorelineFields.Add(item);
|
||||
if (isNew) catalogPersistence.ScorelineFields.Add(item);
|
||||
|
||||
await dbContext.SaveChangesAsync(cancellationToken);
|
||||
await unitOfWork.SaveChangesAsync(cancellationToken);
|
||||
return new ContentManagementResult<ScorelineField>(item);
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ internal sealed class ScorelineManagementService(DirectContentServiceDependencie
|
||||
{
|
||||
var scope = await RequireDataScopeAsync(actor, cancellationToken);
|
||||
var regionIds = scope.RegionIds.ToArray();
|
||||
var query = dbContext.ScorelineRecords.AsNoTracking()
|
||||
var query = catalogPersistence.ScorelineRecords.AsNoTracking()
|
||||
.Where(item => item.TenantId == actor.TenantId)
|
||||
.ApplyDataScope(scope, null, item => item.RegionId.HasValue && regionIds.Contains(item.RegionId.Value));
|
||||
if (filter.RegionId.HasValue) query = query.Where(item => item.RegionId == filter.RegionId.Value);
|
||||
@@ -118,7 +118,7 @@ internal sealed class ScorelineManagementService(DirectContentServiceDependencie
|
||||
await AssertReferenceAsync<Region>(actor.TenantId, command.RegionId, "region_not_found", cancellationToken);
|
||||
await AssertReferenceAsync<School>(actor.TenantId, command.SchoolId, "school_not_found", cancellationToken);
|
||||
await AssertReferenceAsync<Major>(actor.TenantId, command.MajorId, "major_not_found", cancellationToken);
|
||||
var item = await ResolveByIdOrLegacyAsync(dbContext.ScorelineRecords, actor.TenantId, command.Id,
|
||||
var item = await ResolveByIdOrLegacyAsync(catalogPersistence.ScorelineRecords, actor.TenantId, command.Id,
|
||||
command.LegacyId, cancellationToken);
|
||||
var isNew = item is null;
|
||||
EnsureRegionWriteAllowed(scope, actor, item?.RegionId, command.RegionId, isNew, "scoreline_record_not_found");
|
||||
@@ -131,9 +131,9 @@ internal sealed class ScorelineManagementService(DirectContentServiceDependencie
|
||||
item.SchoolName = Normalize(command.SchoolName);
|
||||
item.MajorName = Normalize(command.MajorName);
|
||||
item.FieldValues = JsonObjectOrDefault(command.FieldValues);
|
||||
if (isNew) dbContext.ScorelineRecords.Add(item);
|
||||
if (isNew) catalogPersistence.ScorelineRecords.Add(item);
|
||||
|
||||
await dbContext.SaveChangesAsync(cancellationToken);
|
||||
await unitOfWork.SaveChangesAsync(cancellationToken);
|
||||
return new ContentManagementResult<ScorelineRecord>(item);
|
||||
}
|
||||
|
||||
@@ -144,7 +144,7 @@ internal sealed class ScorelineManagementService(DirectContentServiceDependencie
|
||||
{
|
||||
var scope = await RequireDataScopeAsync(actor, cancellationToken);
|
||||
var regionIds = scope.RegionIds.ToArray();
|
||||
var query = dbContext.ScorelineRecords.AsNoTracking()
|
||||
var query = catalogPersistence.ScorelineRecords.AsNoTracking()
|
||||
.Where(item => item.TenantId == actor.TenantId)
|
||||
.ApplyDataScope(scope, null, item => item.RegionId.HasValue && regionIds.Contains(item.RegionId.Value));
|
||||
if (filter.RegionId.HasValue) query = query.Where(item => item.RegionId == filter.RegionId.Value);
|
||||
@@ -169,13 +169,13 @@ internal sealed class ScorelineManagementService(DirectContentServiceDependencie
|
||||
var items = new List<ScorelineTrendItem>();
|
||||
foreach (var year in years.Items)
|
||||
{
|
||||
var schoolCount = await dbContext.ScorelineRecords.AsNoTracking()
|
||||
var schoolCount = await catalogPersistence.ScorelineRecords.AsNoTracking()
|
||||
.Where(item => item.TenantId == actor.TenantId && item.Year == year)
|
||||
.Select(item => item.SchoolId)
|
||||
.Where(id => id.HasValue)
|
||||
.Distinct()
|
||||
.CountAsync(cancellationToken);
|
||||
var majorCount = await dbContext.ScorelineRecords.AsNoTracking()
|
||||
var majorCount = await catalogPersistence.ScorelineRecords.AsNoTracking()
|
||||
.Where(item => item.TenantId == actor.TenantId && item.Year == year)
|
||||
.Select(item => item.MajorId)
|
||||
.Where(id => id.HasValue)
|
||||
|
||||
Reference in New Issue
Block a user