mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2025-12-18 14:34:23 +01:00
Refactoring: Extract HttpRequest extensions
This commit is contained in:
committed by
Andrew Camilleri
parent
6867774627
commit
749c22a0c3
120
BTCPayServer.Abstractions/Extensions/HttpRequestExtensions.cs
Normal file
120
BTCPayServer.Abstractions/Extensions/HttpRequestExtensions.cs
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
using System;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
|
||||||
|
namespace BTCPayServer.Abstractions.Extensions;
|
||||||
|
|
||||||
|
public static class HttpRequestExtensions
|
||||||
|
{
|
||||||
|
public static bool IsOnion(this HttpRequest request)
|
||||||
|
{
|
||||||
|
if (request?.Host.Host == null)
|
||||||
|
return false;
|
||||||
|
return request.Host.Host.EndsWith(".onion", StringComparison.OrdinalIgnoreCase);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetAbsoluteRoot(this HttpRequest request)
|
||||||
|
{
|
||||||
|
return string.Concat(
|
||||||
|
request.Scheme,
|
||||||
|
"://",
|
||||||
|
request.Host.ToUriComponent(),
|
||||||
|
request.PathBase.ToUriComponent());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Uri GetAbsoluteRootUri(this HttpRequest request)
|
||||||
|
{
|
||||||
|
return new Uri(request.GetAbsoluteRoot());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetCurrentUrl(this HttpRequest request)
|
||||||
|
{
|
||||||
|
return string.Concat(
|
||||||
|
request.Scheme,
|
||||||
|
"://",
|
||||||
|
request.Host.ToUriComponent(),
|
||||||
|
request.PathBase.ToUriComponent(),
|
||||||
|
request.Path.ToUriComponent());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetCurrentPath(this HttpRequest request)
|
||||||
|
{
|
||||||
|
return string.Concat(
|
||||||
|
request.PathBase.ToUriComponent(),
|
||||||
|
request.Path.ToUriComponent());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetCurrentPathWithQueryString(this HttpRequest request)
|
||||||
|
{
|
||||||
|
return request.PathBase + request.Path + request.QueryString;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// If 'toto' and RootPath is 'rootpath' returns '/rootpath/toto'
|
||||||
|
/// If 'toto' and RootPath is empty returns '/toto'
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="request"></param>
|
||||||
|
/// <param name="path"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string GetRelativePath(this HttpRequest request, string path)
|
||||||
|
{
|
||||||
|
if (path.Length > 0 && path[0] != '/')
|
||||||
|
path = $"/{path}";
|
||||||
|
return string.Concat(
|
||||||
|
request.PathBase.ToUriComponent(),
|
||||||
|
path);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// If 'https://example.com/toto' returns 'https://example.com/toto'
|
||||||
|
/// If 'toto' and RootPath is 'rootpath' returns '/rootpath/toto'
|
||||||
|
/// If 'toto' and RootPath is empty returns '/toto'
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="request"></param>
|
||||||
|
/// <param name="path"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string GetRelativePathOrAbsolute(this HttpRequest request, string path)
|
||||||
|
{
|
||||||
|
if (!Uri.TryCreate(path, UriKind.RelativeOrAbsolute, out var uri) ||
|
||||||
|
uri.IsAbsoluteUri)
|
||||||
|
return path;
|
||||||
|
|
||||||
|
if (path.Length > 0 && path[0] != '/')
|
||||||
|
path = $"/{path}";
|
||||||
|
return string.Concat(
|
||||||
|
request.PathBase.ToUriComponent(),
|
||||||
|
path);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetAbsoluteUri(this HttpRequest request, string redirectUrl)
|
||||||
|
{
|
||||||
|
bool isRelative =
|
||||||
|
(redirectUrl.Length > 0 && redirectUrl[0] == '/')
|
||||||
|
|| !new Uri(redirectUrl, UriKind.RelativeOrAbsolute).IsAbsoluteUri;
|
||||||
|
return isRelative ? request.GetAbsoluteRoot() + redirectUrl : redirectUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Will return an absolute URL.
|
||||||
|
/// If `relativeOrAsbolute` is absolute, returns it.
|
||||||
|
/// If `relativeOrAsbolute` is relative, send absolute url based on the HOST of this request (without PathBase)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="request"></param>
|
||||||
|
/// <param name="relativeOrAbsolte"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static Uri GetAbsoluteUriNoPathBase(this HttpRequest request, Uri relativeOrAbsolute = null)
|
||||||
|
{
|
||||||
|
if (relativeOrAbsolute == null)
|
||||||
|
{
|
||||||
|
return new Uri(string.Concat(
|
||||||
|
request.Scheme,
|
||||||
|
"://",
|
||||||
|
request.Host.ToUriComponent()), UriKind.Absolute);
|
||||||
|
}
|
||||||
|
if (relativeOrAbsolute.IsAbsoluteUri)
|
||||||
|
return relativeOrAbsolute;
|
||||||
|
return new Uri(string.Concat(
|
||||||
|
request.Scheme,
|
||||||
|
"://",
|
||||||
|
request.Host.ToUriComponent()) + relativeOrAbsolute.ToString().WithStartingSlash(), UriKind.Absolute);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ using System.Linq;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using BTCPayServer.Abstractions.Constants;
|
using BTCPayServer.Abstractions.Constants;
|
||||||
|
using BTCPayServer.Abstractions.Extensions;
|
||||||
using BTCPayServer.Client;
|
using BTCPayServer.Client;
|
||||||
using BTCPayServer.Filters;
|
using BTCPayServer.Filters;
|
||||||
using BTCPayServer.ModelBinders;
|
using BTCPayServer.ModelBinders;
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ using System.Text.Encodings.Web;
|
|||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using BTCPayServer.Abstractions.Constants;
|
using BTCPayServer.Abstractions.Constants;
|
||||||
|
using BTCPayServer.Abstractions.Extensions;
|
||||||
using BTCPayServer.Models.AppViewModels;
|
using BTCPayServer.Models.AppViewModels;
|
||||||
using BTCPayServer.Services.Apps;
|
using BTCPayServer.Services.Apps;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ using System.Net.Http;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using BTCPayServer.Abstractions.Constants;
|
using BTCPayServer.Abstractions.Constants;
|
||||||
using BTCPayServer.Abstractions.Contracts;
|
using BTCPayServer.Abstractions.Contracts;
|
||||||
|
using BTCPayServer.Abstractions.Extensions;
|
||||||
using BTCPayServer.Client;
|
using BTCPayServer.Client;
|
||||||
using BTCPayServer.Components.StoreSelector;
|
using BTCPayServer.Components.StoreSelector;
|
||||||
using BTCPayServer.Data;
|
using BTCPayServer.Data;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ using System.Linq;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using BTCPayServer.Abstractions.Constants;
|
using BTCPayServer.Abstractions.Constants;
|
||||||
|
using BTCPayServer.Abstractions.Extensions;
|
||||||
using BTCPayServer.Client;
|
using BTCPayServer.Client;
|
||||||
using BTCPayServer.Client.Models;
|
using BTCPayServer.Client.Models;
|
||||||
using BTCPayServer.Data;
|
using BTCPayServer.Data;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Web;
|
using System.Web;
|
||||||
|
using BTCPayServer.Abstractions.Extensions;
|
||||||
using BTCPayServer.Data;
|
using BTCPayServer.Data;
|
||||||
using BTCPayServer.Models;
|
using BTCPayServer.Models;
|
||||||
using BTCPayServer.Models.StoreViewModels;
|
using BTCPayServer.Models.StoreViewModels;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using BTCPayServer.Abstractions.Extensions;
|
||||||
using BTCPayServer.Storage.Services;
|
using BTCPayServer.Storage.Services;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ using System.Linq;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using BTCPayServer.Abstractions.Constants;
|
using BTCPayServer.Abstractions.Constants;
|
||||||
|
using BTCPayServer.Abstractions.Extensions;
|
||||||
using BTCPayServer.Configuration;
|
using BTCPayServer.Configuration;
|
||||||
using BTCPayServer.Data;
|
using BTCPayServer.Data;
|
||||||
using BTCPayServer.Lightning;
|
using BTCPayServer.Lightning;
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ namespace BTCPayServer
|
|||||||
{
|
{
|
||||||
public static class Extensions
|
public static class Extensions
|
||||||
{
|
{
|
||||||
|
|
||||||
public static bool TryGetPayjoinEndpoint(this BitcoinUrlBuilder bip21, out Uri endpoint)
|
public static bool TryGetPayjoinEndpoint(this BitcoinUrlBuilder bip21, out Uri endpoint)
|
||||||
{
|
{
|
||||||
endpoint = bip21.UnknownParameters.TryGetValue($"{PayjoinClient.BIP21EndpointKey}", out var uri) ? new Uri(uri, UriKind.Absolute) : null;
|
endpoint = bip21.UnknownParameters.TryGetValue($"{PayjoinClient.BIP21EndpointKey}", out var uri) ? new Uri(uri, UriKind.Absolute) : null;
|
||||||
@@ -92,18 +91,6 @@ namespace BTCPayServer
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool HasStatusMessage(this ITempDataDictionary tempData)
|
|
||||||
{
|
|
||||||
return (tempData.Peek(WellKnownTempData.SuccessMessage) ??
|
|
||||||
tempData.Peek(WellKnownTempData.ErrorMessage) ??
|
|
||||||
tempData.Peek("StatusMessageModel")) != null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool HasErrorMessage(this ITempDataDictionary tempData)
|
|
||||||
{
|
|
||||||
return GetStatusMessageModel(tempData)?.Severity == StatusMessageModel.StatusSeverity.Error;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static PaymentMethodId GetpaymentMethodId(this InvoiceCryptoInfo info)
|
public static PaymentMethodId GetpaymentMethodId(this InvoiceCryptoInfo info)
|
||||||
{
|
{
|
||||||
return new PaymentMethodId(info.CryptoCode, PaymentTypes.Parse(info.PaymentType));
|
return new PaymentMethodId(info.CryptoCode, PaymentTypes.Parse(info.PaymentType));
|
||||||
@@ -200,41 +187,6 @@ namespace BTCPayServer
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static StatusMessageModel GetStatusMessageModel(this ITempDataDictionary tempData)
|
|
||||||
{
|
|
||||||
tempData.TryGetValue(WellKnownTempData.SuccessMessage, out var successMessage);
|
|
||||||
tempData.TryGetValue(WellKnownTempData.ErrorMessage, out var errorMessage);
|
|
||||||
tempData.TryGetValue("StatusMessageModel", out var model);
|
|
||||||
if (successMessage != null || errorMessage != null)
|
|
||||||
{
|
|
||||||
var parsedModel = new StatusMessageModel();
|
|
||||||
parsedModel.Message = (string)successMessage ?? (string)errorMessage;
|
|
||||||
if (successMessage != null)
|
|
||||||
{
|
|
||||||
parsedModel.Severity = StatusMessageModel.StatusSeverity.Success;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
parsedModel.Severity = StatusMessageModel.StatusSeverity.Error;
|
|
||||||
}
|
|
||||||
return parsedModel;
|
|
||||||
}
|
|
||||||
else if (model != null && model is string str)
|
|
||||||
{
|
|
||||||
return JObject.Parse(str).ToObject<StatusMessageModel>();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool IsOnion(this HttpRequest request)
|
|
||||||
{
|
|
||||||
if (request?.Host.Host == null)
|
|
||||||
return false;
|
|
||||||
return request.Host.Host.EndsWith(".onion", StringComparison.OrdinalIgnoreCase);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool IsOnion(this Uri uri)
|
public static bool IsOnion(this Uri uri)
|
||||||
{
|
{
|
||||||
if (uri == null || !uri.IsAbsoluteUri)
|
if (uri == null || !uri.IsAbsoluteUri)
|
||||||
@@ -242,112 +194,6 @@ namespace BTCPayServer
|
|||||||
return uri.DnsSafeHost.EndsWith(".onion", StringComparison.OrdinalIgnoreCase);
|
return uri.DnsSafeHost.EndsWith(".onion", StringComparison.OrdinalIgnoreCase);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static string GetAbsoluteRoot(this HttpRequest request)
|
|
||||||
{
|
|
||||||
return string.Concat(
|
|
||||||
request.Scheme,
|
|
||||||
"://",
|
|
||||||
request.Host.ToUriComponent(),
|
|
||||||
request.PathBase.ToUriComponent());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Uri GetAbsoluteRootUri(this HttpRequest request)
|
|
||||||
{
|
|
||||||
return new Uri(request.GetAbsoluteRoot());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetCurrentUrl(this HttpRequest request)
|
|
||||||
{
|
|
||||||
return string.Concat(
|
|
||||||
request.Scheme,
|
|
||||||
"://",
|
|
||||||
request.Host.ToUriComponent(),
|
|
||||||
request.PathBase.ToUriComponent(),
|
|
||||||
request.Path.ToUriComponent());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetCurrentPath(this HttpRequest request)
|
|
||||||
{
|
|
||||||
return string.Concat(
|
|
||||||
request.PathBase.ToUriComponent(),
|
|
||||||
request.Path.ToUriComponent());
|
|
||||||
}
|
|
||||||
public static string GetCurrentPathWithQueryString(this HttpRequest request)
|
|
||||||
{
|
|
||||||
return request.PathBase + request.Path + request.QueryString;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// If 'toto' and RootPath is 'rootpath' returns '/rootpath/toto'
|
|
||||||
/// If 'toto' and RootPath is empty returns '/toto'
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="request"></param>
|
|
||||||
/// <param name="path"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public static string GetRelativePath(this HttpRequest request, string path)
|
|
||||||
{
|
|
||||||
if (path.Length > 0 && path[0] != '/')
|
|
||||||
path = $"/{path}";
|
|
||||||
return string.Concat(
|
|
||||||
request.PathBase.ToUriComponent(),
|
|
||||||
path);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// If 'https://example.com/toto' returns 'https://example.com/toto'
|
|
||||||
/// If 'toto' and RootPath is 'rootpath' returns '/rootpath/toto'
|
|
||||||
/// If 'toto' and RootPath is empty returns '/toto'
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="request"></param>
|
|
||||||
/// <param name="path"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public static string GetRelativePathOrAbsolute(this HttpRequest request, string path)
|
|
||||||
{
|
|
||||||
if (!Uri.TryCreate(path, UriKind.RelativeOrAbsolute, out var uri) ||
|
|
||||||
uri.IsAbsoluteUri)
|
|
||||||
return path;
|
|
||||||
|
|
||||||
if (path.Length > 0 && path[0] != '/')
|
|
||||||
path = $"/{path}";
|
|
||||||
return string.Concat(
|
|
||||||
request.PathBase.ToUriComponent(),
|
|
||||||
path);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetAbsoluteUri(this HttpRequest request, string redirectUrl)
|
|
||||||
{
|
|
||||||
bool isRelative =
|
|
||||||
(redirectUrl.Length > 0 && redirectUrl[0] == '/')
|
|
||||||
|| !new Uri(redirectUrl, UriKind.RelativeOrAbsolute).IsAbsoluteUri;
|
|
||||||
return isRelative ? request.GetAbsoluteRoot() + redirectUrl : redirectUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Will return an absolute URL.
|
|
||||||
/// If `relativeOrAsbolute` is absolute, returns it.
|
|
||||||
/// If `relativeOrAsbolute` is relative, send absolute url based on the HOST of this request (without PathBase)
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="request"></param>
|
|
||||||
/// <param name="relativeOrAbsolte"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public static Uri GetAbsoluteUriNoPathBase(this HttpRequest request, Uri relativeOrAbsolute = null)
|
|
||||||
{
|
|
||||||
if (relativeOrAbsolute == null)
|
|
||||||
{
|
|
||||||
return new Uri(string.Concat(
|
|
||||||
request.Scheme,
|
|
||||||
"://",
|
|
||||||
request.Host.ToUriComponent()), UriKind.Absolute);
|
|
||||||
}
|
|
||||||
if (relativeOrAbsolute.IsAbsoluteUri)
|
|
||||||
return relativeOrAbsolute;
|
|
||||||
return new Uri(string.Concat(
|
|
||||||
request.Scheme,
|
|
||||||
"://",
|
|
||||||
request.Host.ToUriComponent()) + relativeOrAbsolute.ToString().WithStartingSlash(), UriKind.Absolute);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetSIN(this ClaimsPrincipal principal)
|
public static string GetSIN(this ClaimsPrincipal principal)
|
||||||
{
|
{
|
||||||
return principal.Claims.Where(c => c.Type == Security.Bitpay.BitpayClaims.SIN).Select(c => c.Value).FirstOrDefault();
|
return principal.Claims.Where(c => c.Type == Security.Bitpay.BitpayClaims.SIN).Select(c => c.Value).FirstOrDefault();
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using System.Globalization;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net.WebSockets;
|
using System.Net.WebSockets;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using BTCPayServer.Abstractions.Extensions;
|
||||||
using BTCPayServer.Configuration;
|
using BTCPayServer.Configuration;
|
||||||
using BTCPayServer.Logging;
|
using BTCPayServer.Logging;
|
||||||
using BTCPayServer.Models;
|
using BTCPayServer.Models;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using BTCPayServer.Abstractions.Extensions;
|
||||||
using BTCPayServer.Controllers;
|
using BTCPayServer.Controllers;
|
||||||
using BTCPayServer.Data;
|
using BTCPayServer.Data;
|
||||||
using BTCPayServer.Events;
|
using BTCPayServer.Events;
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ using System.Linq;
|
|||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using BTCPayServer.Abstractions.Constants;
|
using BTCPayServer.Abstractions.Constants;
|
||||||
|
using BTCPayServer.Abstractions.Extensions;
|
||||||
using BTCPayServer.Client;
|
using BTCPayServer.Client;
|
||||||
using BTCPayServer.Client.Models;
|
using BTCPayServer.Client.Models;
|
||||||
using BTCPayServer.Configuration;
|
using BTCPayServer.Configuration;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using BTCPayServer.Abstractions.Extensions;
|
||||||
using BTCPayServer.Controllers;
|
using BTCPayServer.Controllers;
|
||||||
using BTCPayServer.Models.AppViewModels;
|
using BTCPayServer.Models.AppViewModels;
|
||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@using BTCPayServer.Services.Stores
|
@using BTCPayServer.Services.Stores
|
||||||
@using BTCPayServer.Payments.Lightning
|
@using BTCPayServer.Payments.Lightning
|
||||||
|
@using BTCPayServer.Abstractions.Extensions
|
||||||
@model BTCPayServer.Models.AppViewModels.ViewCrowdfundViewModel
|
@model BTCPayServer.Models.AppViewModels.ViewCrowdfundViewModel
|
||||||
@inject BTCPayNetworkProvider BTCPayNetworkProvider
|
@inject BTCPayNetworkProvider BTCPayNetworkProvider
|
||||||
@inject StoreRepository StoreRepository
|
@inject StoreRepository StoreRepository
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
@using BTCPayServer.Abstractions.Contracts
|
@using BTCPayServer.Abstractions.Contracts
|
||||||
|
@using BTCPayServer.Abstractions.Extensions
|
||||||
@inject ISettingsRepository _settingsRepository
|
@inject ISettingsRepository _settingsRepository
|
||||||
@addTagHelper *, BundlerMinifier.TagHelpers
|
@addTagHelper *, BundlerMinifier.TagHelpers
|
||||||
@{ var theme = await _settingsRepository.GetTheme(); }
|
@{ var theme = await _settingsRepository.GetTheme(); }
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
@inject BTCPayServer.Services.BTCPayServerEnvironment _env
|
@using BTCPayServer.Abstractions.Extensions
|
||||||
|
@inject BTCPayServer.Services.BTCPayServerEnvironment _env
|
||||||
|
|
||||||
<footer class="btcpay-footer">
|
<footer class="btcpay-footer">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
@using BTCPayServer.Services.Apps
|
@using BTCPayServer.Services.Apps
|
||||||
@using BTCPayServer.Abstractions.Contracts
|
@using BTCPayServer.Abstractions.Contracts
|
||||||
|
@using BTCPayServer.Abstractions.Extensions
|
||||||
@model BTCPayServer.Models.AppViewModels.ViewPointOfSaleViewModel
|
@model BTCPayServer.Models.AppViewModels.ViewPointOfSaleViewModel
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = Model.Title;
|
ViewData["Title"] = Model.Title;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
@inject ISettingsRepository _settingsRepository
|
@inject ISettingsRepository _settingsRepository
|
||||||
|
|
||||||
@using BTCPayServer.Abstractions.Contracts
|
@using BTCPayServer.Abstractions.Contracts
|
||||||
|
@using BTCPayServer.Abstractions.Extensions
|
||||||
@using BTCPayServer.Lightning
|
@using BTCPayServer.Lightning
|
||||||
@model BTCPayServer.Controllers.ShowLightningNodeInfoViewModel
|
@model BTCPayServer.Controllers.ShowLightningNodeInfoViewModel
|
||||||
@{
|
@{
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@using NUglify.Helpers
|
@using NUglify.Helpers
|
||||||
@using BTCPayServer.Abstractions.Contracts
|
@using BTCPayServer.Abstractions.Contracts
|
||||||
|
@using BTCPayServer.Abstractions.Extensions
|
||||||
@model BTCPayServer.Models.ViewPullPaymentModel
|
@model BTCPayServer.Models.ViewPullPaymentModel
|
||||||
|
|
||||||
@addTagHelper *, BundlerMinifier.TagHelpers
|
@addTagHelper *, BundlerMinifier.TagHelpers
|
||||||
|
|||||||
Reference in New Issue
Block a user