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); } }