public string Prepare(StockDefinition stockDefinition, DataPumpDownloadRange downloadRange)
        {
            switch (downloadRange)
            {
            case DataPumpDownloadRange.Daily:
                return(GetPathDaily(stockDefinition));

            case DataPumpDownloadRange.Ticks:
                return(GetPathTicks(stockDefinition));
            }
            return("");
        }
        public string InitializeDownload(StockDefinition stockDefinition, DataPumpDownloadRange downloadRange)
        {
            string downloadFilePath = GetDownloadFilePath(stockDefinition, downloadRange);
            string unzipPath        = GetUnzipPath(downloadFilePath);
            string downloadUrl      = GetDownloadUrl(stockDefinition, downloadRange);

            if (!AlreadyDownloaded(downloadUrl))
            {
                DownloadAndProcess(downloadUrl, downloadFilePath, unzipPath);
            }

            return(downloadFilePath);
        }
 private string GetDownloadUrl(StockDefinition stockDefinition, DataPumpDownloadRange downloadRange)
 {
     return(_downloadUrlPrepator.Prepare(stockDefinition, downloadRange));
 }