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());
if (stores.Length == 0)
{
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>",
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. <a href='{(Url.Action("CreateStore", "UserStores"))}'>Create store</a>",
Severity = StatusMessageModel.StatusSeverity.Error
};
});
return RedirectToAction(nameof(ListApps));
}
var selectedStore = vm.SelectedStore;

View file

@ -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. <a href='{Url.Action("CreateStore", "UserStores")}'>Create store</a>",
Severity = StatusMessageModel.StatusSeverity.Error
};
});
return RedirectToAction("GetPaymentRequests");
}

View file

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

View file

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

View file

@ -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<StatusMessageModel>();
}
return null;
}
public static bool IsOnion(this HttpRequest request)
{
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)
{

View file

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

View file

@ -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();

View file

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