private static TValue GetCommandResult <TValue>(InitializeCommandBase <TValue> command,
                                                 out CommandResult <CommandOutput.None> unsuccessfulResult)
     where TValue : class
 {
     return(GetCommandResult(command, CommandInput.None.Instance,
                             out unsuccessfulResult));
 }
        private static TValue GetCommandResult <TCommandInput, TValue>(
            InitializeCommandBase <TCommandInput, TValue> command,
            TCommandInput commandInput, out CommandResult <CommandOutput.None> unsuccessfulResult)
            where TCommandInput : CommandInput
            where TValue : class
        {
            var commandResult = command.Run(commandInput);

            switch (commandResult.ResultType)
            {
            default:
            case CommandResultType.Abort:
                unsuccessfulResult = CommandOutput.None.Abort;
                return(null);

            case CommandResultType.Failure:
                unsuccessfulResult = CommandOutput.None.Failure(commandResult.Exception);
                return(null);

            case CommandResultType.Success:
                unsuccessfulResult = null;
                return(commandResult.Output.Value);
            }
        }
예제 #3
0
 /// <summary>
 /// Event method
 /// </summary>
 /// <param name="e">Internal CommandBase initialization object</param>
 protected virtual void OnInitialization(InitializeCommandBase <ICommand> e)
 {
     Initialized?.Invoke(this, e);
 }