public async Task ExecuteActionAsync(UserContext userContext, JObject payload) { var settings = payload.ToObject <NoAction>(); settings = await _variableService.ReplaceVariablesInObjectAsync(settings, userContext); foreach (var noAction in _noActions) { var method = noAction.GetType().GetMethod(nameof(noAction.ExecuteNoAction)); var attr = method.GetCustomAttributes(typeof(NoActionTokenAttribute), false); if (attr?.Length == 1) { var token = (NoActionTokenAttribute)attr[0]; if (token.Token == settings.Address) { await(Task) method.Invoke(noAction, new object[] { settings.Context?.Value, userContext }); } } } }