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());
        });
Exemple #2
0
        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());
        }