/// <inheritdoc /> public async Task <TResult> SendAsync <TResult>(ICommand command) { var concreteCommand = _objectFactory.CreateConcreteObject(command); var response = await ProcessAsync(command, () => GetCommandResponseAsync(concreteCommand)); return(response?.Result != null ? (TResult)response.Result : default);