コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
        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);
        }