protected override async Task <TypedActionHandlerResult <BtcPayInvoice> > Execute(Dictionary <string, object> data, RecipeAction recipeAction, GetInvoiceData actionData) { var externalService = await recipeAction.GetExternalService(); var service = new BtcPayServerService(externalService); var invoiceId = InterpolateString(actionData.InvoiceId, data); var client = service.ConstructClient(); var invoice = await client.GetInvoiceAsync <BtcPayInvoice>(invoiceId); return(new BtcPayServerActionHandlerResult <BtcPayInvoice>() { Executed = true, TypedData = invoice, Result = $"fetched invoice {invoiceId}" }); }
protected override async Task <TypedActionHandlerResult <List <InvoicePaymentInfo> > > Execute(Dictionary <string, object> data, RecipeAction recipeAction, GetPaymentsFromInvoiceData actionData) { var externalService = await recipeAction.GetExternalService(); var service = new BtcPayServerService(externalService); var invoiceId = InterpolateString(actionData.InvoiceId, data); var client = service.ConstructClient(); var invoice = await client.GetInvoiceAsync <BtcPayInvoice>(invoiceId); var payments = invoice.CryptoInfo.SingleOrDefault(info => info.CryptoCode.Equals(actionData.CryptoCode))? .Payments.Where(x => string.IsNullOrEmpty(actionData.PaymentType) || x.PaymentType.Equals(actionData.PaymentType)) .ToList() ?? new List <InvoicePaymentInfo>(); return(new BtcPayServerActionHandlerResult <List <InvoicePaymentInfo> >() { Executed = true, TypedData = payments, Result = $"found {payments.Count} {actionData.CryptoCode} payments in invoice {invoiceId}" }); }