public class MessageHelper(
ITempDataDictionaryFactory tempDataFactory,
IHttpContextAccessor httpContextAccessor,
ILogger<MessageHelper> logger)
{
private readonly ITempDataDictionaryFactory _tempDataFactory = tempDataFactory;
private readonly IHttpContextAccessor _httpContextAccessor = httpContextAccessor;
/// <summary>
/// Sets success message for display
/// </summary>
public void SetSuccessMessage(string message)
{
SetMessage("SuccessMessage", message);
}
/// <summary>
/// Sets error message for display
/// </summary>
public void SetErrorMessage(string message)
{
SetMessage("ErrorMessage", message);
}
/// <summary>
/// Sets info message for display
/// </summary>
public void SetInfoMessage(string message)
{
SetMessage("InfoMessage", message);
}
private void SetMessage(string key, string message)
{
if (string.IsNullOrWhiteSpace(message))
return;
var httpContext = _httpContextAccessor.HttpContext;
if (httpContext is null)
{
logger.LogWarning("HttpContext is null. Cannot set message with key '{Key}'", key);
return;
}
var tempData = _tempDataFactory.GetTempData(httpContext);
tempData[key] = message;
}
}