Fix status message when a model is passed

This commit is contained in:
nicolas.dorier 2019-11-07 18:20:17 +09:00
parent 656a3956b1
commit d37abb53f0
No known key found for this signature in database
GPG key ID: 6618763EF09186FE
9 changed files with 30 additions and 22 deletions

View file

@ -80,12 +80,12 @@ namespace BTCPayServer.Controllers
var stores = await _AppService.GetOwnedStores(GetUserId()); var stores = await _AppService.GetOwnedStores(GetUserId());
if (stores.Length == 0) if (stores.Length == 0)
{ {
TempData[WellKnownTempData.StatusMessageModel] = new StatusMessageModel() TempData.SetStatusMessageModel(new StatusMessageModel()
{ {
Html = Html =
$"Error: You need to create at least one store. <a href='{(Url.Action("CreateStore", "UserStores"))}'>Create store</a>", $"Error: You need to create at least one store. <a href='{(Url.Action("CreateStore", "UserStores"))}'>Create store</a>",
Severity = StatusMessageModel.StatusSeverity.Error Severity = StatusMessageModel.StatusSeverity.Error
}; });
return RedirectToAction(nameof(ListApps)); return RedirectToAction(nameof(ListApps));
} }
var vm = new CreateAppViewModel(); var vm = new CreateAppViewModel();
@ -100,12 +100,12 @@ namespace BTCPayServer.Controllers
var stores = await _AppService.GetOwnedStores(GetUserId()); var stores = await _AppService.GetOwnedStores(GetUserId());
if (stores.Length == 0) if (stores.Length == 0)
{ {
TempData[WellKnownTempData.StatusMessageModel] = new StatusMessageModel() TempData.SetStatusMessageModel(new StatusMessageModel()
{ {
Html = Html =
$"Error: You need to create at least one store. <a href='{(Url.Action("CreateStore", "UserStores"))}'>Create store</a>", $"Error: You need to create at least one store. <a href='{(Url.Action("CreateStore", "UserStores"))}'>Create store</a>",
Severity = StatusMessageModel.StatusSeverity.Error Severity = StatusMessageModel.StatusSeverity.Error
}; });
return RedirectToAction(nameof(ListApps)); return RedirectToAction(nameof(ListApps));
} }
var selectedStore = vm.SelectedStore; var selectedStore = vm.SelectedStore;

View file

@ -96,11 +96,11 @@ namespace BTCPayServer.Controllers
nameof(StoreData.StoreName), data?.StoreDataId); nameof(StoreData.StoreName), data?.StoreDataId);
if (!stores.Any()) if (!stores.Any())
{ {
TempData[WellKnownTempData.StatusMessageModel] = new StatusMessageModel() TempData.SetStatusMessageModel(new StatusMessageModel()
{ {
Html = $"Error: You need to create at least one store. <a href='{Url.Action("CreateStore", "UserStores")}'>Create store</a>", Html = $"Error: You need to create at least one store. <a href='{Url.Action("CreateStore", "UserStores")}'>Create store</a>",
Severity = StatusMessageModel.StatusSeverity.Error Severity = StatusMessageModel.StatusSeverity.Error
}; });
return RedirectToAction("GetPaymentRequests"); return RedirectToAction("GetPaymentRequests");
} }

View file

@ -288,11 +288,11 @@ namespace BTCPayServer.Controllers
data.Provider = storageProvider; data.Provider = storageProvider;
data.Configuration = JObject.FromObject(viewModel); data.Configuration = JObject.FromObject(viewModel);
await _SettingsRepository.UpdateSetting(data); await _SettingsRepository.UpdateSetting(data);
TempData[WellKnownTempData.StatusMessageModel] = new StatusMessageModel() TempData.SetStatusMessageModel(new StatusMessageModel()
{ {
Severity = StatusMessageModel.StatusSeverity.Success, Severity = StatusMessageModel.StatusSeverity.Success,
Message = "Storage settings updated successfully" Message = "Storage settings updated successfully"
}; });
return View(viewModel); return View(viewModel);
} }
} }

View file

@ -174,11 +174,11 @@ namespace BTCPayServer.Controllers
{ {
if (!DerivationSchemeSettings.TryParseFromJson(vm.Config, network, out strategy)) if (!DerivationSchemeSettings.TryParseFromJson(vm.Config, network, out strategy))
{ {
TempData[WellKnownTempData.StatusMessageModel] = new StatusMessageModel() TempData.SetStatusMessageModel(new StatusMessageModel()
{ {
Severity = StatusMessageModel.StatusSeverity.Error, Severity = StatusMessageModel.StatusSeverity.Error,
Message = "Config file was not in the correct format" Message = "Config file was not in the correct format"
}; });
vm.Confirmation = false; vm.Confirmation = false;
return View(vm); return View(vm);
} }
@ -188,11 +188,11 @@ namespace BTCPayServer.Controllers
{ {
if (!DerivationSchemeSettings.TryParseFromColdcard(await ReadAllText(vm.ColdcardPublicFile), network, out strategy)) if (!DerivationSchemeSettings.TryParseFromColdcard(await ReadAllText(vm.ColdcardPublicFile), network, out strategy))
{ {
TempData[WellKnownTempData.StatusMessageModel] = new StatusMessageModel() TempData.SetStatusMessageModel(new StatusMessageModel()
{ {
Severity = StatusMessageModel.StatusSeverity.Error, Severity = StatusMessageModel.StatusSeverity.Error,
Message = "Coldcard public file was not in the correct format" Message = "Coldcard public file was not in the correct format"
}; });
vm.Confirmation = false; vm.Confirmation = false;
return View(vm); return View(vm);
} }

View file

@ -35,6 +35,7 @@ using NBXplorer.DerivationStrategy;
using System.Net; using System.Net;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc.ViewFeatures; using Microsoft.AspNetCore.Mvc.ViewFeatures;
using Newtonsoft.Json.Linq;
namespace BTCPayServer namespace BTCPayServer
{ {
@ -115,7 +116,7 @@ namespace BTCPayServer
{ {
return (tempData.Peek(WellKnownTempData.SuccessMessage) ?? return (tempData.Peek(WellKnownTempData.SuccessMessage) ??
tempData.Peek(WellKnownTempData.ErrorMessage) ?? tempData.Peek(WellKnownTempData.ErrorMessage) ??
tempData.Peek(WellKnownTempData.StatusMessageModel)) != null; tempData.Peek("StatusMessageModel")) != null;
} }
public static PaymentMethodId GetpaymentMethodId(this InvoiceCryptoInfo info) public static PaymentMethodId GetpaymentMethodId(this InvoiceCryptoInfo info)
{ {
@ -214,6 +215,20 @@ namespace BTCPayServer
return false; 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<StatusMessageModel>();
}
return null;
}
public static bool IsOnion(this HttpRequest request) public static bool IsOnion(this HttpRequest request)
{ {
if (request?.Host.Host == null) if (request?.Host.Host == null)

View file

@ -60,11 +60,6 @@ namespace BTCPayServer.Models
} }
} }
} }
public override string ToString()
{
return JObject.FromObject(this).ToString(Formatting.None);
}
private void ParseNonJsonStatus(string s) private void ParseNonJsonStatus(string s)
{ {

View file

@ -1,5 +1,4 @@
@model LoginViewModel @{
@{
Layout = null; Layout = null;
} }
@inject BTCPayServer.Services.BTCPayServerEnvironment env @inject BTCPayServer.Services.BTCPayServerEnvironment env

View file

@ -2,7 +2,7 @@
StatusMessageModel parsedModel = null; StatusMessageModel parsedModel = null;
TempData.TryGetValue(WellKnownTempData.SuccessMessage, out var successMessage); TempData.TryGetValue(WellKnownTempData.SuccessMessage, out var successMessage);
TempData.TryGetValue(WellKnownTempData.ErrorMessage, out var errorMessage); TempData.TryGetValue(WellKnownTempData.ErrorMessage, out var errorMessage);
TempData.TryGetValue(WellKnownTempData.StatusMessageModel, out var model); var model = TempData.GetStatusMessageModel();
if (successMessage != null || errorMessage != null) if (successMessage != null || errorMessage != null)
{ {
parsedModel = new StatusMessageModel(); parsedModel = new StatusMessageModel();

View file

@ -9,6 +9,5 @@ namespace BTCPayServer
{ {
public const string SuccessMessage = nameof(SuccessMessage); public const string SuccessMessage = nameof(SuccessMessage);
public const string ErrorMessage = nameof(ErrorMessage); public const string ErrorMessage = nameof(ErrorMessage);
public const string StatusMessageModel = nameof(StatusMessageModel);
} }
} }