/// <summary> /// Step-invokes an InvokedAsyncEventArgs /// </summary> /// <param name="args">InvokedAsyncEventArgs object</param> /// <param name="contextCommand">Command to execute from</param> /// <returns></returns> private static async Task InvokeSteps(InvokedAsyncEventArgs <ServerMessagedEventArgs> args, string contextCommand) { foreach (IAsyncComposition <ServerMessagedEventArgs> composition in args.Host .CompositionHandlers[contextCommand].OrderBy(comp => comp.Priority)) { if (!args.Args.Execute) { return; } await composition.InvokeAsync(args.Args); } }
private static async Task OnInvokedMethod(InvokedAsyncEventArgs <ServerMessagedEventArgs> args) { if (!args.Args.Message.Command.Equals(Commands.ALL)) { await InvokeSteps(args, Commands.ALL); } if (!args.Host.CompositionHandlers.ContainsKey(args.Args.Message.Command) || !args.Args.Execute) { return; } await InvokeSteps(args, args.Args.Message.Command); }