private static void DisplayPriceData(IPriceData data)
        {
            if (data != null)
            {
                Console.WriteLine($"\nPrices for item: {data.ItemName}");

                // Print 1 field
                Console.WriteLine($"\n{data.ItemName}[DSPLY_NAME]: {data["DSPLY_NAME"]}");

                // Print the contents of one item
                Console.WriteLine($"{data.ItemName} contents: {data.Fields()}");
            }
            else
            {
                Console.WriteLine("\n**********Error displaying price data**********");
            }
        }
Ejemplo n.º 2
0
        private IPriceData WritePrice(IPriceData item, IPriceData previous, CsvWriter csvDataOut)
        {
            double high = item.High > (1.5 * item.Close) || item.High < item.Close
                ? item.Close
                : item.High;
            double low = item.Low <(1.5 * item.Close) || item.Low> item.Close
                ? item.Close
                : item.Low;
            double open = item.Open > high || item.Open < low
                ? previous?.Close ?? low
                : item.Open;

            previous = item;
            csvDataOut.WriteField(
                item.Time.StrToDate(client.TimeZone).ToString("yyyy-MM-dd"));
            csvDataOut.WriteField(open);
            csvDataOut.WriteField(high);
            csvDataOut.WriteField(low);
            csvDataOut.WriteField(item.Close);
            csvDataOut.WriteField(item.Volume);
            csvDataOut.NextRecord();
            return(previous);
        }
Ejemplo n.º 3
0
        public async Task Save(string fileName, IObservable <IPriceData> data, CancellationToken token)
        {
            logger.LogInformation("Saving: {0}", fileName);
            using (var streamOutCsv = new StreamWriter(fileName, false, Encoding.UTF8))
                using (var csvDataOut = new CsvWriter(streamOutCsv))
                {
                    csvDataOut.WriteField("Date");
                    csvDataOut.WriteField("PX_OPEN");
                    csvDataOut.WriteField("PX_HIGH");
                    csvDataOut.WriteField("PX_LOW");
                    csvDataOut.WriteField("PX_LAST");
                    csvDataOut.WriteField("PX_VOLUME");
                    csvDataOut.NextRecord();
                    IPriceData previous = null;
                    await data.ForEachAsync(item => { previous = WritePrice(item, previous, csvDataOut); }, token).ConfigureAwait(false);

                    await csvDataOut.FlushAsync().ConfigureAwait(false);

                    await streamOutCsv.FlushAsync().ConfigureAwait(false);

                    logger.LogInformation("Saving: {0} Completed with {1} rows", fileName, csvDataOut.Context.Row);
                }
        }
Ejemplo n.º 4
0
 public HomeController(ILogger <HomeController> logger, IProductData db, IPriceData dbForPriceData)
 {
     _logger             = logger;
     this.db_ProductData = db;
     this.db_PriceData   = dbForPriceData;
 }