TeamCity.CSharpInteractive/CSharpScriptCommandRunner.cs (19 lines of code) (raw):
// ReSharper disable ClassNeverInstantiated.Global
// ReSharper disable InvertIf
namespace TeamCity.CSharpInteractive;
internal class CSharpScriptCommandRunner : ICommandRunner
{
private readonly ICSharpScriptRunner _scriptRunner;
public CSharpScriptCommandRunner(ICSharpScriptRunner scriptRunner) => _scriptRunner = scriptRunner;
public CommandResult TryRun(ICommand command)
{
switch (command)
{
case ScriptCommand scriptCommand:
return _scriptRunner.Run(command, scriptCommand.Script);
case ResetCommand:
_scriptRunner.Reset();
return new CommandResult(command, true);
default:
return new CommandResult(command, default);
}
}
}