private async Task <Result> ExecuteAsync(WorkerPlan plan, Uri source) { var input = new WorkerPublicInput { UnderlyingQuery = plan.UnderlyingQuery.ToString(), Order = plan.Order.IsSome ? plan.Order.AsT0.ToString() : null, Limit = plan.Limit.IsSome ? plan.Limit.AsT0.ToString() : null, DataLocation = source }; var response = await _lambda.InvokeAsync(new InvokeRequest { FunctionName = _workerFunctionName, InvocationType = InvocationType.RequestResponse, Payload = JsonConvert.SerializeObject(input), }).ConfigureAwait(false); if (!string.IsNullOrEmpty(response.FunctionError)) { throw new WorkerException(response.FunctionError); } using var payload = response.Payload; return(await PublicResult.DeserializeAsync(payload).ConfigureAwait(false)); }
public async Task <Stream> Handler(DistributorPublicInput input) { var queryInput = ConvertInput(input); var result = await _distributor.QueryAsync(queryInput).ConfigureAwait(false); return(PublicResult.Serialize(result)); }