2022-03-02 18:28:34 +01:00
|
|
|
using System.Text.Json;
|
|
|
|
using BTCPayServer.Abstractions.Constants;
|
|
|
|
using BTCPayServer.Abstractions.Models;
|
|
|
|
using Microsoft.AspNetCore.Mvc.ViewFeatures;
|
|
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
|
|
|
|
namespace BTCPayServer.Abstractions.Extensions;
|
|
|
|
|
|
|
|
public static class SetStatusMessageModelExtensions
|
|
|
|
{
|
2024-10-14 14:11:00 +09:00
|
|
|
public static void SetStatusSuccess(this ITempDataDictionary tempData, string statusMessage)
|
|
|
|
{
|
2024-10-17 15:51:40 +02:00
|
|
|
tempData.SetStatusMessageModel(new StatusMessageModel
|
2024-10-14 14:11:00 +09:00
|
|
|
{
|
|
|
|
Severity = StatusMessageModel.StatusSeverity.Success,
|
|
|
|
Message = statusMessage
|
|
|
|
});
|
|
|
|
}
|
2022-03-02 18:28:34 +01:00
|
|
|
public static void SetStatusMessageModel(this ITempDataDictionary tempData, StatusMessageModel statusMessage)
|
|
|
|
{
|
|
|
|
if (statusMessage == null)
|
|
|
|
{
|
|
|
|
tempData.Remove("StatusMessageModel");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
tempData["StatusMessageModel"] = JsonSerializer.Serialize(statusMessage, new JsonSerializerOptions());
|
|
|
|
}
|
|
|
|
|
|
|
|
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)
|
|
|
|
{
|
2024-10-17 15:51:40 +02:00
|
|
|
var parsedModel = new StatusMessageModel
|
2022-03-02 18:28:34 +01:00
|
|
|
{
|
2024-10-17 15:51:40 +02:00
|
|
|
Message = (string)successMessage ?? (string)errorMessage,
|
|
|
|
Severity = successMessage != null ? StatusMessageModel.StatusSeverity.Success : StatusMessageModel.StatusSeverity.Error
|
|
|
|
};
|
2022-03-02 18:28:34 +01:00
|
|
|
return parsedModel;
|
|
|
|
}
|
2024-10-17 15:51:40 +02:00
|
|
|
if (model is string str)
|
2022-03-02 18:28:34 +01:00
|
|
|
{
|
|
|
|
return JObject.Parse(str).ToObject<StatusMessageModel>();
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|