public async Task <Dictionary <string, double> > Estimate(string id, IDictionary <string, string> args, Action <string> logger) => await IfReady(async() => { var qsim = new ResourcesEstimator(); qsim.DisableLogToConsole(); qsim.OnLog += logger; var value = await Find(id).RunAsync(qsim, args); return(qsim.AsDictionary()); });
public async Task <ExecutionResult> RunAsync(string input, IChannel channel) { var(name, args) = ParseInput(input); var symbol = SymbolResolver.Resolve(name) as IQSharpSymbol; if (symbol == null) { throw new InvalidOperationException($"Invalid operation name: {name}"); } var qsim = new ResourcesEstimator(); qsim.DisableLogToConsole(); await symbol.Operation.RunAsync(qsim, args); return(qsim.AsDictionary().ToExecutionResult()); }