private StockDataset CreateStockDataset(string[] csvLine, Dictionary <string, int> headersPosition)
        {
            try
            {
                StockDataset dataset = new StockDataset
                {
                    Close = GetCsvDecimal(csvLine, headersPosition, extendedHeaders["Close"]),
                    Last  = GetCsvDecimal(csvLine, headersPosition, extendedHeaders["Last"]),
                    Low   = GetCsvDecimal(csvLine, headersPosition, extendedHeaders["Low"]),
                    Open  = GetCsvDecimal(csvLine, headersPosition, extendedHeaders["Open"]),
                    High  = GetCsvDecimal(csvLine, headersPosition, extendedHeaders["High"]),
                    TotalTradeQuantity = GetCsvDecimal(csvLine, headersPosition, extendedHeaders["TotalTradeQuantity"]),
                    Turnover           = GetCsvDecimal(csvLine, headersPosition, extendedHeaders["Turnover"]),
                    Date = GetCsvDate(csvLine, headersPosition, extendedHeaders["Date"])
                };

                return(dataset);
            }
            catch (IndexOutOfRangeException ex)
            {
                Console.WriteLine("CreateDataset Exception: " + ex.Message);

                return(null);
            }
            catch (FormatException ex)
            {
                Console.WriteLine("CreateDataset Exception: " + ex.Message);

                return(null);
            }
        }
        private IEnumerable <StockDataset> CreateStockDatasetRange(IEnumerable <string[]> csvContent, Dictionary <string, int> headersPosition)
        {
            try
            {
                List <StockDataset> datasets = new List <StockDataset>(csvContent.Count());

                foreach (string[] csvLine in csvContent)
                {
                    StockDataset dataset = CreateStockDataset(csvLine, headersPosition);

                    if (dataset != null)
                    {
                        datasets.Add(dataset);
                    }
                }

                return(datasets);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }