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); } }
/// <summary> /// Event method /// </summary> /// <param name="e">Internal CommandBase initialization object</param> protected virtual void OnInitialization(InitializeCommandBase <ICommand> e) { Initialized?.Invoke(this, e); }