private async Task <U> GetAsync <R, T, U>(R request) where T : ICommandWithResult <U> where R : IRequestModel { var command = (T)Activator.CreateInstance(typeof(T), _httpClient, _basicAuthenticationHeader, request); _invoker.SetCommand(command); await _invoker.ExecuteAsync(); return(command.Result); }