/// <inheritdoc/> public async Task <TResult> QueryAsync <TResult>(string queryType, params object[] args) { Covenant.Requires <ArgumentNullException>(!string.IsNullOrEmpty(queryType)); Covenant.Requires <ArgumentNullException>(args != null); EnsureStarted(); var argBytes = client.DataConverter.ToData(args); return(client.DataConverter.FromData <TResult>(await client.QueryWorkflowAsync(Execution, queryType, argBytes, domain))); }
/// <summary> /// Queries the associated workflow. /// </summary> /// <typeparam name="TResult">The query result type.</typeparam> /// <param name="queryType">Specifies the query type.</param> /// <param name="args">Specifies the query arguments.</param> /// <returns>The query result.</returns> public async Task<TResult> QueryAsync<TResult>(string queryType, params object[] args) { await SyncContext.Clear; Covenant.Requires<ArgumentNullException>(!string.IsNullOrEmpty(queryType), nameof(queryType)); Covenant.Requires<ArgumentNullException>(args != null, nameof(args)); EnsureStarted(); if (Execution == null) { throw new InvalidOperationException("Query cannot be sent because the stub doesn't have the workflow execution."); } var argBytes = CadenceHelper.ArgsToBytes(client.DataConverter, args); return client.DataConverter.FromData<TResult>(await client.QueryWorkflowAsync(Execution, queryType, argBytes, client.ResolveDomain(Options?.Domain))); }