public virtual async Task <IEnumerable <CoinTrackingTrade> > DownloadTradesAsync() { Console.ForegroundColor = ConsoleColor.Green; _logger.LogDebug("Entered download trades function."); var getTradesResponse = await _getTradesRequest.SendRequestAsync <GetTradesResponse>(); if (getTradesResponse != null && getTradesResponse.Success) { _logger.LogInformation(LoggingEvents.WebRequest, null, $"Successfully downloaded {getTradesResponse.Trades?.Count() ?? 0} trades from the CoinTracking API."); // return the trade data return(getTradesResponse.Trades); } else { Console.ForegroundColor = ConsoleColor.Red; var logMsg = $"Error downloading trades from CoinTracking API: {getTradesResponse?.Error} - {getTradesResponse?.ErrorMessage}"; _logger.LogWarning(LoggingEvents.WebRequestError, logMsg); throw new CoinTrackingException(logMsg); } }