Esempio n. 1
0
        public void LoadAsxEodRawFromAzure()
        {
            List <AsxEod> tickerEODList = null;
            AsxEodBLL     asxBll        = new AsxEodBLL(_unit);

            try
            {
                CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
                    ConfigurationManager.ConnectionStrings["EODASXConnectionString"].ConnectionString);

                // Create the blob client.
                CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

                // Retrieve reference to a previously created container.
                CloudBlobContainer container     = blobClient.GetContainerReference("asxeod");
                CloudBlobContainer containerDest = blobClient.GetContainerReference("asxeod-processed");

                var blobs = container.ListBlobs();

                foreach (CloudBlockBlob blob in blobs)
                {
                    string text;
                    using (var memoryStream = new MemoryStream())
                    {
                        int tradingDate = this.GetTradingDateFromName(blob.Name);
                        if (!asxBll.IsAsxEodExisting(tradingDate))
                        {
                            blob.DownloadToStream(memoryStream);
                            text                  = System.Text.Encoding.UTF8.GetString(memoryStream.ToArray());
                            tickerEODList         = GetTickerListFromCSVString(text);
                            memoryStream.Position = 0;
                            asxBll.SaveAsxEodListToDB(tickerEODList);

                            CloudBlockBlob destBlob = containerDest.GetBlockBlobReference(blob.Name);
                            destBlob.UploadFromStream(memoryStream);
                            blob.DeleteAsync();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error(_log, ex.ToString());
                throw;
            }
        }
Esempio n. 2
0
        public void LoadAsxEodRawFromDisk()
        {
            AsxEodBLL asxBll = new AsxEodBLL(_unit);

            string tickerPath = ConfigurationManager.AppSettings["EODPath"];
            string queuePath  = Path.Combine(tickerPath, "queue");

            string targetPath;

            var txtFiles = Directory.EnumerateFiles(queuePath, "*.txt", SearchOption.AllDirectories);

            foreach (string currentFile in txtFiles)
            {
                string fileName   = currentFile.Substring(queuePath.Length + 1);
                string targetYear = fileName.Substring(fileName.IndexOf("_") + 1, 4);
                targetPath = Path.Combine(tickerPath, "processed", targetYear);

                int tradingDate = this.GetTradingDateFromName(fileName);

                if (!asxBll.IsAsxEodExisting(tradingDate))
                {
                    string tickString = File.ReadAllText(currentFile);

                    var tickerEODList = GetTickerListFromCSVString(tickString);

                    asxBll.SaveAsxEodListToDB(tickerEODList);
                }

                if (!Directory.Exists(targetPath))
                {
                    Directory.CreateDirectory(targetPath);
                }

                Directory.Move(currentFile, Path.Combine(targetPath, fileName));
            }
        }