Class LoggingProfileSinkStatusGui
Extracted from CreateLoggingProfileWindow as a single-responsibility collaborator: the
Configure Sinks step's Output Folder section and the Summary step's per-sink/profile status bullets are the
sink status PRESENTATION concern, separate from the window's own step orchestration —
mirroring Serenity.Localization.Installation.Settings.Editor.Builder.LocalizationTableSelectionGui's
own extraction rationale. This is not a file-size fix: CreateLoggingProfileWindow was
already over the project's ~600-line size-guidance trigger before this extraction and remains so after
it — see the PR body for the one-line justification the project's size guidance calls for.
Draws the one-line resolve status for a Logging sink singleton (Console/File/Structured) on the Configure
Sinks step, and the identical text for the Summary step's bullet — both read the SAME cached
SettingsAssetAuthoring.SettingsResolution<TSettings> passed in by
CreateLoggingProfileWindow, so what a sink section says while configuring it can never
disagree with what the Summary bullet says. Sinks stay singleton-resolved by TYPE (see
LoggingProfileCreator's type doc) rather than adopting their own
Serenity.Global.Infrastructure.Editor.SerenityWizardTargetAsset — a status line is all three need, plus the in-window choice
Serenity.Logging.Infrastructure.Editor.Builder.LoggingSinkChoiceGui draws while two project-owned candidates conflict. The Done step is
Serenity.Logging.Infrastructure.Editor.Builder.LoggingProfileDoneStepGui's.
Inheritance
LoggingProfileSinkStatusGui
Assembly: Serenity.UnityLogging.Infrastructure.Editor.dll
Syntax
public static class LoggingProfileSinkStatusGui
Methods
DescribeLine<TSettings>(SettingsResolution<TSettings>, string, string)
The status line text alone, name-agnostic — for a caller (the Summary step's bullet, the
Configure-step section under its own header) that supplies the asset name exactly once around it.
Declaration
public static string DescribeLine<TSettings>(SettingsAssetAuthoring.SettingsResolution<TSettings> resolution, string displayName, string plannedPath) where TSettings : Object
Parameters
Returns
Type Parameters
| Name |
Description |
| TSettings |
|
DrawOutputFolderSection(ref SerenityFolderField, Action)
The window's own "Output Folder" section, not Serenity.Global.Infrastructure.Editor.SerenityWizardTargetAssetGui.DrawOutputFolderSection(Serenity.Global.Infrastructure.Editor.SerenityWizardTargetAsset,Serenity.Global.Infrastructure.Editor.SerenityFolderField@,Serenity.Global.Infrastructure.Editor.SerenityWizardTargetAssetGui.Model,System.Action{System.String}):
this folder also serves as every sink's/the backend's own create-new fallback, so it must stay
enabled regardless of the profile target's mode — the shared helper disables it while updating in
place. Invokes onChanged when the folder changes, so the caller can re-resolve its
by-Id-in-folder target.
Declaration
public static void DrawOutputFolderSection(ref SerenityFolderField folder, Action onChanged)
Parameters
| Type |
Name |
Description |
| SerenityFolderField |
folder |
|
| Action |
onChanged |
|
DrawSummaryBullet<TSettings>(bool, SettingsResolution<TSettings>, string, string)
The Summary step's bullet for one sink: the disabled line while the sink is off, otherwise
"bullet — name — DescribeLine" — the ONE place the name and the name-agnostic line are composed
together, so the name appears exactly once.
Declaration
public static void DrawSummaryBullet<TSettings>(bool enabled, SettingsAssetAuthoring.SettingsResolution<TSettings> resolution, string displayName, string plannedPath) where TSettings : Object
Parameters
Type Parameters
| Name |
Description |
| TSettings |
|
Draw<TSettings>(SettingsResolution<TSettings>, string, string)
The status line plus, when it applies, the package-content warning — a conflict between
project-owned candidates is Serenity.Logging.Infrastructure.Editor.Builder.LoggingSinkChoiceGui's to draw, with the choice itself. Drawn directly under the sink's own section header (e.g. "Console Sink"), which
is where the asset name comes from — the line itself never repeats it.
Declaration
public static void Draw<TSettings>(SettingsAssetAuthoring.SettingsResolution<TSettings> resolution, string displayName, string plannedPath) where TSettings : Object
Parameters
Type Parameters
| Name |
Description |
| TSettings |
|
PlannedSinkPath(string, string)
Where a new sink asset of this fallback name would be created under outputFolder —
the same computation Create(Input) performs, so a status line can never
disagree with it.
Declaration
public static string PlannedSinkPath(string outputFolder, string fileNameFallback)
Parameters
| Type |
Name |
Description |
| string |
outputFolder |
|
| string |
fileNameFallback |
|
Returns