Allows replacing the model with the outgoing event args
This commit is contained in:
@@ -4,9 +4,13 @@ namespace Umbraco.Web.Editors
|
||||
{
|
||||
public sealed class EditorModelEventArgs<T> : EditorModelEventArgs
|
||||
{
|
||||
private readonly EditorModelEventArgs _baseArgs;
|
||||
private T _model;
|
||||
|
||||
public EditorModelEventArgs(EditorModelEventArgs baseArgs)
|
||||
: base(baseArgs.Model, baseArgs.UmbracoContext)
|
||||
{
|
||||
_baseArgs = baseArgs;
|
||||
Model = (T)baseArgs.Model;
|
||||
}
|
||||
|
||||
@@ -16,7 +20,16 @@ namespace Umbraco.Web.Editors
|
||||
Model = model;
|
||||
}
|
||||
|
||||
public new T Model { get; private set; }
|
||||
public new T Model
|
||||
{
|
||||
get => _model;
|
||||
set
|
||||
{
|
||||
_model = value;
|
||||
if (_baseArgs != null)
|
||||
_baseArgs.Model = _model;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class EditorModelEventArgs : EventArgs
|
||||
@@ -27,7 +40,7 @@ namespace Umbraco.Web.Editors
|
||||
UmbracoContext = umbracoContext;
|
||||
}
|
||||
|
||||
public object Model { get; private set; }
|
||||
public UmbracoContext UmbracoContext { get; private set; }
|
||||
public object Model { get; set; }
|
||||
public UmbracoContext UmbracoContext { get; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,16 +19,17 @@ namespace Umbraco.Web.WebApi.Filters
|
||||
var user = UmbracoContext.Current.Security.CurrentUser;
|
||||
if (user == null) return;
|
||||
|
||||
var objectContent = actionExecutedContext.Response.Content as ObjectContent;
|
||||
if (objectContent != null)
|
||||
if (actionExecutedContext.Response.Content is ObjectContent objectContent)
|
||||
{
|
||||
var model = objectContent.Value;
|
||||
|
||||
if (model != null)
|
||||
{
|
||||
EditorModelEventManager.EmitEvent(actionExecutedContext, new EditorModelEventArgs(
|
||||
(dynamic)model,
|
||||
UmbracoContext.Current));
|
||||
var args = new EditorModelEventArgs(
|
||||
model,
|
||||
UmbracoContext.Current);
|
||||
EditorModelEventManager.EmitEvent(actionExecutedContext, args);
|
||||
objectContent.Value = args.Model;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user