public static GangCommandHandler <TStateData> From <TCommandData>( IGangCommandHandler <TStateData, TCommandData> handler) where TCommandData : class { return(new GangCommandHandler <TStateData>( typeof(TCommandData), (state, command) => handler.HandleAsync(state, (GangCommand <TCommandData>)command) )); }
public static IGangCommandExecutor <TStateData> RegisterHandler <TStateData, TCommandData>( this IGangCommandExecutor <TStateData> executor, IGangCommandHandler <TStateData, TCommandData> handler ) where TStateData : class, new() where TCommandData : class { return(executor.RegisterHandler <TCommandData>( GangCommandHandler <TStateData> .From(handler) )); }