public void Raise(IContextRequestObject context, Action <IContextRequestObject> callback = null) => OnRaised(new ContextRequestEventArgs(context, () => callback?.Invoke(context)));
public Task <IContextRequestObject> RaiseAsync(IContextRequestObject context) => CallbackHelper.AwaitCallbackResult <IContextRequestObject>(callback => Raise(context, callback));
public ContextRequestEventArgs(IContextRequestObject context, Action callback = null) { Context = context; Callback = callback; }