feat(m9/T26a): read-only inheritance resolve service + GetResolvedTemplateMembersCommand
This commit is contained in:
@@ -244,6 +244,7 @@ public class ManagementActor : ReceiveActor
|
||||
UpdateTemplateCommand cmd => await HandleUpdateTemplate(sp, cmd, user.Username),
|
||||
DeleteTemplateCommand cmd => await HandleDeleteTemplate(sp, cmd, user.Username),
|
||||
ValidateTemplateCommand cmd => await HandleValidateTemplate(sp, cmd),
|
||||
GetResolvedTemplateMembersCommand cmd => await HandleGetResolvedTemplateMembers(sp, cmd),
|
||||
|
||||
// Template members
|
||||
AddTemplateAttributeCommand cmd => await HandleAddAttribute(sp, cmd, user.Username),
|
||||
@@ -599,6 +600,20 @@ public class ManagementActor : ReceiveActor
|
||||
return validationResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Read-only authoring resolve (M9/T26a): returns the effective inherited
|
||||
/// member set for a template — computed fresh from the full inheritance
|
||||
/// chain — plus a staleness summary. Loads every template (children
|
||||
/// eager-loaded) so the resolver can walk an arbitrary-depth chain; never
|
||||
/// mutates stored rows.
|
||||
/// </summary>
|
||||
private static async Task<object?> HandleGetResolvedTemplateMembers(IServiceProvider sp, GetResolvedTemplateMembersCommand cmd)
|
||||
{
|
||||
var repo = sp.GetRequiredService<ITemplateEngineRepository>();
|
||||
var allTemplates = await repo.GetAllTemplatesAsync();
|
||||
return TemplateInheritanceResolver.Resolve(cmd.TemplateId, allTemplates);
|
||||
}
|
||||
|
||||
// ========================================================================
|
||||
// Template folder handlers
|
||||
// ========================================================================
|
||||
|
||||
Reference in New Issue
Block a user