diff --git a/BTCPayServer/Controllers/AppsController.cs b/BTCPayServer/Controllers/AppsController.cs
index 516c2a5ea..ea0791cb6 100644
--- a/BTCPayServer/Controllers/AppsController.cs
+++ b/BTCPayServer/Controllers/AppsController.cs
@@ -80,12 +80,12 @@ namespace BTCPayServer.Controllers
var stores = await _AppService.GetOwnedStores(GetUserId());
if (stores.Length == 0)
{
- TempData[WellKnownTempData.StatusMessageModel] = new StatusMessageModel()
+ TempData.SetStatusMessageModel(new StatusMessageModel()
{
Html =
$"Error: You need to create at least one store. Create store",
Severity = StatusMessageModel.StatusSeverity.Error
- };
+ });
return RedirectToAction(nameof(ListApps));
}
var vm = new CreateAppViewModel();
@@ -100,12 +100,12 @@ namespace BTCPayServer.Controllers
var stores = await _AppService.GetOwnedStores(GetUserId());
if (stores.Length == 0)
{
- TempData[WellKnownTempData.StatusMessageModel] = new StatusMessageModel()
+ TempData.SetStatusMessageModel(new StatusMessageModel()
{
Html =
$"Error: You need to create at least one store. Create store",
Severity = StatusMessageModel.StatusSeverity.Error
- };
+ });
return RedirectToAction(nameof(ListApps));
}
var selectedStore = vm.SelectedStore;
diff --git a/BTCPayServer/Controllers/PaymentRequestController.cs b/BTCPayServer/Controllers/PaymentRequestController.cs
index 7cb0af08f..02f11d1f7 100644
--- a/BTCPayServer/Controllers/PaymentRequestController.cs
+++ b/BTCPayServer/Controllers/PaymentRequestController.cs
@@ -96,11 +96,11 @@ namespace BTCPayServer.Controllers
nameof(StoreData.StoreName), data?.StoreDataId);
if (!stores.Any())
{
- TempData[WellKnownTempData.StatusMessageModel] = new StatusMessageModel()
+ TempData.SetStatusMessageModel(new StatusMessageModel()
{
Html = $"Error: You need to create at least one store. Create store",
Severity = StatusMessageModel.StatusSeverity.Error
- };
+ });
return RedirectToAction("GetPaymentRequests");
}
diff --git a/BTCPayServer/Controllers/ServerController.Storage.cs b/BTCPayServer/Controllers/ServerController.Storage.cs
index 45806b545..0a652c5d0 100644
--- a/BTCPayServer/Controllers/ServerController.Storage.cs
+++ b/BTCPayServer/Controllers/ServerController.Storage.cs
@@ -288,11 +288,11 @@ namespace BTCPayServer.Controllers
data.Provider = storageProvider;
data.Configuration = JObject.FromObject(viewModel);
await _SettingsRepository.UpdateSetting(data);
- TempData[WellKnownTempData.StatusMessageModel] = new StatusMessageModel()
+ TempData.SetStatusMessageModel(new StatusMessageModel()
{
Severity = StatusMessageModel.StatusSeverity.Success,
Message = "Storage settings updated successfully"
- };
+ });
return View(viewModel);
}
}
diff --git a/BTCPayServer/Controllers/StoresController.BTCLike.cs b/BTCPayServer/Controllers/StoresController.BTCLike.cs
index bec429d93..0a306f530 100644
--- a/BTCPayServer/Controllers/StoresController.BTCLike.cs
+++ b/BTCPayServer/Controllers/StoresController.BTCLike.cs
@@ -174,11 +174,11 @@ namespace BTCPayServer.Controllers
{
if (!DerivationSchemeSettings.TryParseFromJson(vm.Config, network, out strategy))
{
- TempData[WellKnownTempData.StatusMessageModel] = new StatusMessageModel()
+ TempData.SetStatusMessageModel(new StatusMessageModel()
{
Severity = StatusMessageModel.StatusSeverity.Error,
Message = "Config file was not in the correct format"
- };
+ });
vm.Confirmation = false;
return View(vm);
}
@@ -188,11 +188,11 @@ namespace BTCPayServer.Controllers
{
if (!DerivationSchemeSettings.TryParseFromColdcard(await ReadAllText(vm.ColdcardPublicFile), network, out strategy))
{
- TempData[WellKnownTempData.StatusMessageModel] = new StatusMessageModel()
+ TempData.SetStatusMessageModel(new StatusMessageModel()
{
Severity = StatusMessageModel.StatusSeverity.Error,
Message = "Coldcard public file was not in the correct format"
- };
+ });
vm.Confirmation = false;
return View(vm);
}
diff --git a/BTCPayServer/Extensions.cs b/BTCPayServer/Extensions.cs
index aeead1ee8..6d2c46ab5 100644
--- a/BTCPayServer/Extensions.cs
+++ b/BTCPayServer/Extensions.cs
@@ -35,6 +35,7 @@ using NBXplorer.DerivationStrategy;
using System.Net;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
+using Newtonsoft.Json.Linq;
namespace BTCPayServer
{
@@ -115,7 +116,7 @@ namespace BTCPayServer
{
return (tempData.Peek(WellKnownTempData.SuccessMessage) ??
tempData.Peek(WellKnownTempData.ErrorMessage) ??
- tempData.Peek(WellKnownTempData.StatusMessageModel)) != null;
+ tempData.Peek("StatusMessageModel")) != null;
}
public static PaymentMethodId GetpaymentMethodId(this InvoiceCryptoInfo info)
{
@@ -214,6 +215,20 @@ namespace BTCPayServer
return false;
}
+ public static void SetStatusMessageModel(this ITempDataDictionary tempData, StatusMessageModel statusMessage)
+ {
+ tempData["StatusMessageModel"] = JObject.FromObject(statusMessage).ToString(Formatting.None);
+ }
+
+ public static StatusMessageModel GetStatusMessageModel(this ITempDataDictionary tempData)
+ {
+ if (tempData.TryGetValue("StatusMessageModel", out var o) && o is string str)
+ {
+ return JObject.Parse(str).ToObject();
+ }
+ return null;
+ }
+
public static bool IsOnion(this HttpRequest request)
{
if (request?.Host.Host == null)
diff --git a/BTCPayServer/Models/StatusMessageModel.cs b/BTCPayServer/Models/StatusMessageModel.cs
index 2b63fece6..e2fb84504 100644
--- a/BTCPayServer/Models/StatusMessageModel.cs
+++ b/BTCPayServer/Models/StatusMessageModel.cs
@@ -60,11 +60,6 @@ namespace BTCPayServer.Models
}
}
}
-
- public override string ToString()
- {
- return JObject.FromObject(this).ToString(Formatting.None);
- }
private void ParseNonJsonStatus(string s)
{
diff --git a/BTCPayServer/Views/Account/_WelcomeLayout.cshtml b/BTCPayServer/Views/Account/_WelcomeLayout.cshtml
index 872bcd56d..124f1af0b 100644
--- a/BTCPayServer/Views/Account/_WelcomeLayout.cshtml
+++ b/BTCPayServer/Views/Account/_WelcomeLayout.cshtml
@@ -1,5 +1,4 @@
-@model LoginViewModel
-@{
+@{
Layout = null;
}
@inject BTCPayServer.Services.BTCPayServerEnvironment env
diff --git a/BTCPayServer/Views/Shared/_StatusMessage.cshtml b/BTCPayServer/Views/Shared/_StatusMessage.cshtml
index ab47f4d7b..6eab8657f 100644
--- a/BTCPayServer/Views/Shared/_StatusMessage.cshtml
+++ b/BTCPayServer/Views/Shared/_StatusMessage.cshtml
@@ -2,7 +2,7 @@
StatusMessageModel parsedModel = null;
TempData.TryGetValue(WellKnownTempData.SuccessMessage, out var successMessage);
TempData.TryGetValue(WellKnownTempData.ErrorMessage, out var errorMessage);
- TempData.TryGetValue(WellKnownTempData.StatusMessageModel, out var model);
+ var model = TempData.GetStatusMessageModel();
if (successMessage != null || errorMessage != null)
{
parsedModel = new StatusMessageModel();
diff --git a/BTCPayServer/WellKnownTempData.cs b/BTCPayServer/WellKnownTempData.cs
index bd2d652d5..a2aee7d96 100644
--- a/BTCPayServer/WellKnownTempData.cs
+++ b/BTCPayServer/WellKnownTempData.cs
@@ -9,6 +9,5 @@ namespace BTCPayServer
{
public const string SuccessMessage = nameof(SuccessMessage);
public const string ErrorMessage = nameof(ErrorMessage);
- public const string StatusMessageModel = nameof(StatusMessageModel);
}
}