Files
btcpayserver/BTCPayServer/Plugins/Subscriptions/UrlHelperExtensions.Subscriptions.cs
2025-10-28 15:33:23 +09:00

40 lines
1.9 KiB
C#

#nullable enable
using BTCPayServer.Abstractions;
using BTCPayServer.Plugins.Subscriptions.Controllers;
using BTCPayServer.Views.UIStoreMembership;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Routing;
namespace BTCPayServer.Plugins.Subscriptions;
public static class UrlHelperExtensions
{
public static string PlanCheckout(this LinkGenerator urlHelper, string checkoutId, RequestBaseUrl requestBaseUrl)
=> urlHelper.GetUriByAction(
action: nameof(UIPlanCheckoutController.PlanCheckout),
values: new { area = SubscriptionsPlugin.Area, checkoutId },
controller: "UIPlanCheckout",
requestBaseUrl: requestBaseUrl);
public static string SubscriberPortalLink(this LinkGenerator urlHelper, string portalSessionId, RequestBaseUrl requestBaseUrl, string? checkoutPlanId = null)
=> urlHelper.GetUriByAction(
action: nameof(UISubscriberPortalController.SubscriberPortal),
values: new { area = SubscriptionsPlugin.Area, portalSessionId, checkoutPlanId },
controller: "UISubscriberPortal",
requestBaseUrl: requestBaseUrl);
public static string OfferingLink(this LinkGenerator urlHelper, string storeId, string offeringId, SubscriptionSection section, RequestBaseUrl requestBaseUrl)
=> urlHelper.GetUriByAction(
action: nameof(UIOfferingController.Offering),
values: new { area = SubscriptionsPlugin.Area, storeId, offeringId, section },
controller: "UIOffering",
requestBaseUrl: requestBaseUrl);
public static string PlanCheckoutDefaultLink(this LinkGenerator urlHelper, RequestBaseUrl requestBaseUrl)
=> urlHelper.GetUriByAction(
action: nameof(UIPlanCheckoutController.PlanCheckoutDefaultRedirect),
values: new { area = SubscriptionsPlugin.Area },
controller: "UIPlanCheckout",
requestBaseUrl: requestBaseUrl);
}