public async Task <IActionResult> RedeliverWebhook(string storeId, string invoiceId, string deliveryId) { var invoice = (await _InvoiceRepository.GetInvoices(new InvoiceQuery() { InvoiceId = new[] { invoiceId }, StoreId = new[] { storeId }, UserId = GetUserId() })).FirstOrDefault(); if (invoice is null) { return(NotFound()); } var delivery = await _InvoiceRepository.GetWebhookDelivery(invoiceId, deliveryId); if (delivery is null) { return(NotFound()); } var newDeliveryId = await WebhookNotificationManager.Redeliver(deliveryId); if (newDeliveryId is null) { return(NotFound()); } TempData[WellKnownTempData.SuccessMessage] = "Successfully planned a redelivery"; return(RedirectToAction(nameof(Invoice), new { invoiceId })); }
public InvoiceController( IServiceProvider serviceProvider, InvoiceRepository invoiceRepository, CurrencyNameTable currencyNameTable, UserManager <ApplicationUser> userManager, RateFetcher rateProvider, StoreRepository storeRepository, EventAggregator eventAggregator, ContentSecurityPolicies csp, BTCPayNetworkProvider networkProvider, PaymentMethodHandlerDictionary paymentMethodHandlerDictionary, ApplicationDbContextFactory dbContextFactory, PullPaymentHostedService paymentHostedService, WebhookNotificationManager webhookNotificationManager) { _ServiceProvider = serviceProvider; _CurrencyNameTable = currencyNameTable ?? throw new ArgumentNullException(nameof(currencyNameTable)); _StoreRepository = storeRepository ?? throw new ArgumentNullException(nameof(storeRepository)); _InvoiceRepository = invoiceRepository ?? throw new ArgumentNullException(nameof(invoiceRepository)); _RateProvider = rateProvider ?? throw new ArgumentNullException(nameof(rateProvider)); _UserManager = userManager; _EventAggregator = eventAggregator; _NetworkProvider = networkProvider; _paymentMethodHandlerDictionary = paymentMethodHandlerDictionary; _dbContextFactory = dbContextFactory; _paymentHostedService = paymentHostedService; WebhookNotificationManager = webhookNotificationManager; _CSP = csp; }
public async Task <IActionResult> TestWebhook(string webhookId, TestWebhookViewModel viewModel, CancellationToken cancellationToken) { var result = await WebhookNotificationManager.TestWebhook(CurrentStore.Id, webhookId, viewModel.Type, cancellationToken); if (result.Success) { TempData[WellKnownTempData.SuccessMessage] = $"{viewModel.Type.ToString()} event delivered successfully! Delivery ID is {result.DeliveryId}"; } else { TempData[WellKnownTempData.ErrorMessage] = $"{viewModel.Type.ToString()} event could not be delivered. Error message received: {(result.ErrorMessage ?? "unknown")}"; } return(View(nameof(TestWebhook))); }
public StoresController( IServiceProvider serviceProvider, BTCPayServerOptions btcpayServerOptions, BTCPayServerEnvironment btcpayEnv, StoreRepository repo, TokenRepository tokenRepo, UserManager <ApplicationUser> userManager, AccessTokenController tokenController, BTCPayWalletProvider walletProvider, BTCPayNetworkProvider networkProvider, RateFetcher rateFactory, ExplorerClientProvider explorerProvider, LanguageService langService, PaymentMethodHandlerDictionary paymentMethodHandlerDictionary, SettingsRepository settingsRepository, IAuthorizationService authorizationService, EventAggregator eventAggregator, CssThemeManager cssThemeManager, AppService appService, IWebHostEnvironment webHostEnvironment, WebhookNotificationManager webhookNotificationManager, IOptions <LightningNetworkOptions> lightningNetworkOptions, IDataProtectionProvider dataProtector) { _RateFactory = rateFactory; _Repo = repo; _TokenRepository = tokenRepo; _UserManager = userManager; _LangService = langService; _TokenController = tokenController; _WalletProvider = walletProvider; _paymentMethodHandlerDictionary = paymentMethodHandlerDictionary; _settingsRepository = settingsRepository; _authorizationService = authorizationService; _CssThemeManager = cssThemeManager; _appService = appService; _webHostEnvironment = webHostEnvironment; _lightningNetworkOptions = lightningNetworkOptions; DataProtector = dataProtector.CreateProtector("ConfigProtector"); WebhookNotificationManager = webhookNotificationManager; _EventAggregator = eventAggregator; _NetworkProvider = networkProvider; _ExplorerProvider = explorerProvider; _ServiceProvider = serviceProvider; _BtcpayServerOptions = btcpayServerOptions; _BTCPayEnv = btcpayEnv; }
public async Task <IActionResult> RedeliverWebhook(string webhookId, string deliveryId) { var delivery = await _Repo.GetWebhookDelivery(CurrentStore.Id, webhookId, deliveryId); if (delivery is null) { return(NotFound()); } var newDeliveryId = await WebhookNotificationManager.Redeliver(deliveryId); if (newDeliveryId is null) { return(NotFound()); } TempData[WellKnownTempData.SuccessMessage] = "Successfully planned a redelivery"; return(RedirectToAction(nameof(ModifyWebhook), new { storeId = CurrentStore.Id, webhookId })); }
public StoreWebhooksController(StoreRepository storeRepository, WebhookNotificationManager webhookNotificationManager) { StoreRepository = storeRepository; WebhookNotificationManager = webhookNotificationManager; }