namespace AIStudio.Assistants.BeyondFactsLab; public static class BflStepExtensions { private static string TB(string fallbackEN) => Tools.PluginSystem.I18N.I.T(fallbackEN, typeof(BflStepExtensions).Namespace, nameof(BflStepExtensions)); private static string TA(string fallbackEN) => Tools.PluginSystem.I18N.I.TA(fallbackEN, typeof(BflStepExtensions).Namespace, nameof(BflStepExtensions)); /// The step. extension(BflStep step) { /// /// Gets the title of the step. It names the topic, never a number. /// public string Title => step switch { BflStep.FRAMEWORK => TB("Event details"), BflStep.KNOWLEDGE => TB("Knowledge and uncertainty"), BflStep.GOALS_AND_ROLE => TB("Goals and role"), BflStep.VALUES_AND_PERSPECTIVES => TB("Values and perspectives"), BflStep.STRATEGY => TB("Strategy"), BflStep.TEST_SITUATION => TB("Test situation"), BflStep.RESULTS => TB("Results and materials"), _ => string.Empty, }; /// /// Gets one sentence about what the step is for. /// public string Description => step switch { BflStep.FRAMEWORK => TA("What the event is about, for whom, and what you were asked to contribute."), BflStep.KNOWLEDGE => TA("What you know for sure, what is uncertain, and where your expertise ends."), BflStep.GOALS_AND_ROLE => TA("What you want to achieve, and in which role you speak."), BflStep.VALUES_AND_PERSPECTIVES => TA("What matters to you, what touches you, and what moves others."), BflStep.STRATEGY => TA("How you convey evidence, trade-offs between values, and open questions."), BflStep.TEST_SITUATION => TA("Play through critical questions and opposing positions."), BflStep.RESULTS => TA("What you take away from your preparation."), _ => string.Empty, }; /// /// Gets a hint for the form of the step, or an empty string when the step needs none. /// public string FormHint => step switch { BflStep.VALUES_AND_PERSPECTIVES => TA("You can fill in single fields or start right away in the chat."), _ => string.Empty, }; /// /// Gets the name of the folder in which a preparation keeps the files of the step. /// /// /// The number keeps the folders in the order of the steps for people who look into the data folder. /// These names are stored on disk, so they never change. /// public string FolderName => step switch { BflStep.FRAMEWORK => "01-framework", BflStep.KNOWLEDGE => "02-knowledge", BflStep.GOALS_AND_ROLE => "03-goals", BflStep.VALUES_AND_PERSPECTIVES => "04-values", BflStep.STRATEGY => "05-strategy", BflStep.TEST_SITUATION => "06-test", BflStep.RESULTS => "07-results", _ => throw new ArgumentOutOfRangeException(nameof(step), step, "The step has no folder."), }; /// /// Gets every step, in the order the lab suggests. /// public static IReadOnlyList All => Enum.GetValues(); } }