From d3032a8a7acc87e19358c97060c65da3c91ea60c Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Fri, 15 May 2020 20:16:51 +0200 Subject: [PATCH] Fix NotifierFilter Don't assume the action is executed by a controller --- .../Elsa.Dashboard/ActionFilters/NotifierFilter.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/dashboard/Elsa.Dashboard/ActionFilters/NotifierFilter.cs b/src/dashboard/Elsa.Dashboard/ActionFilters/NotifierFilter.cs index c18911ade..0f806c0b4 100644 --- a/src/dashboard/Elsa.Dashboard/ActionFilters/NotifierFilter.cs +++ b/src/dashboard/Elsa.Dashboard/ActionFilters/NotifierFilter.cs @@ -2,6 +2,7 @@ using Elsa.Dashboard.Extensions; using Elsa.Dashboard.Services; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; +using Microsoft.AspNetCore.Mvc.ViewFeatures; namespace Elsa.Dashboard.ActionFilters { @@ -9,10 +10,12 @@ namespace Elsa.Dashboard.ActionFilters { public const string TempDataKey = "Elsa:Notifications"; private readonly INotifier notifier; + private readonly ITempDataDictionaryFactory tempDataDictionaryFactory; - public NotifierFilter(INotifier notifier) + public NotifierFilter(INotifier notifier, ITempDataDictionaryFactory tempDataDictionaryFactory) { this.notifier = notifier; + this.tempDataDictionaryFactory = tempDataDictionaryFactory; } public void OnActionExecuting(ActionExecutingContext context) @@ -21,7 +24,7 @@ namespace Elsa.Dashboard.ActionFilters public void OnActionExecuted(ActionExecutedContext context) { - var tempData = ((Controller) context.Controller).TempData; + var tempData = tempDataDictionaryFactory.GetTempData(context.HttpContext); if (tempData.ContainsKey(TempDataKey)) return;