V11 / ca6f28eff240
ScenarioBoundOperations.cs
Lilith/Core/Scenarios/ScenarioBoundOperations.cs
Changed in this versionCS
using Lilith.Core.Personality;
using Lilith.Core.WebResearch;
namespace Lilith.Core.Scenarios;
internal static class ScenarioBoundOperations
{
internal static bool Known(string name) => WebOperations.Names.Contains(name) || PersonalityOperations.Names.Contains(name) || Lilith.Core.Calendar.CalendarOperations.Names.Contains(name) || Lilith.Core.Projects.ProjectOperations.Names.Contains(name);
internal static Task<string> ExecuteAsync(ProviderClient parent, ScenarioRunPlan plan, string name,
IReadOnlyDictionary<string, string> inputs, CancellationToken ct)
{
ct.ThrowIfCancellationRequested();
if (Lilith.Core.Projects.ProjectOperations.Names.Contains(name)) return Lilith.Core.Projects.ProjectOperations.ExecuteAsync(plan.Projects, name, inputs, ct);
if (Lilith.Core.Calendar.CalendarOperations.Names.Contains(name)) return Task.FromResult(Lilith.Core.Calendar.CalendarOperations.Execute(parent, name, inputs));
return PersonalityOperations.Names.Contains(name)
? Task.FromResult(PersonalityOperations.Execute(parent, name, inputs))
: WebOperations.ExecuteAsync(plan.Browser, name, inputs, ct);
}
}