public async Task CommandAsync <TCommand>(TCommand command) where TCommand : ICommand { if (command == null) { throw new ArgumentNullException(nameof(command)); } await commandDispatcher.CommandAsync(command); }