Exemple #1
0
        private ParsingReturnStructure ProcessData2(List <List <String> > table)
        {
            NeumKey         _nk           = new NeumKey();
            DataPointList   dataPointList = new DataPointList();
            List <String>   footnotes     = new List <string>();
            List <String>   columnHeaders = new List <string>();
            List <DateTime> dates         = new List <DateTime>();
            List <String>   values        = new List <String>();
            List <Tuple <String, String, DateTime, String, String> > dataPoint = new List <Tuple <string, string, DateTime, string, string> >();
            List <Tuple <String, String> > nuemWithValue = new List <Tuple <string, string> >();
            List <String> neums = new List <String>();


            var rawNeum       = table[0][0].ToString();
            var formattedNeum = CreateNeum(rawNeum);

            //var usedRange = ws.UsedRange;
            foreach (List <String> Row in table)
            {
                int Rownum = table.IndexOf(Row);
                foreach (String Item in Row)
                {
                    int Colnum = Row.IndexOf(Item);
                    //Console.WriteLine(Item);
                    if ((Rownum == 0) && (Colnum >= 1))
                    {
                        columnHeaders.Add(Item.ToString());
                    }
                    else if ((Rownum > 0) && (Colnum == 0))
                    {
                        dates.Add(FormattedDate(Item.ToString()));
                    }
                    else if ((Rownum > 0) && (Colnum > 0))
                    {
                        try
                        {
                            Convert.ToDecimal(Item);
                            values.Add(Item);
                        }
                        catch
                        {
                            try
                            {
                                Convert.ToDecimal(Item.Split(')')[1].ToString().Trim());
                                //Console.WriteLine(Item.Split(')')[1].ToString().Trim());
                                values.Add(Item.Split(')')[1].ToString().Trim());
                            }
                            catch
                            {
                                values.Add("-999,999");
                            }
                        }
                        ;
                    }
                }
            }
            foreach (var col in columnHeaders)
            {
                nuemWithValue.Add(new Tuple <string, string>((formattedNeum + "_" + col), (rawNeum + "_" + col)));
            }
            var i = 0;

            foreach (var date in dates)
            //foreach (Tuple<string, string> nuemWithVal in nuemWithValue)
            {
                //foreach(var date in dates)
                foreach (Tuple <string, string> nuemWithVal in nuemWithValue)
                {
                    String[] neumAndCatsubstrings = nuemWithVal.Item1.Split('_');
                    var      dp = new DataPoint2017(date, PeriodTypes2017.Annual, Convert.ToDecimal(values[i]));
                    dp.Neum = nuemWithVal.Item1;
                    Guid   seriesId   = _nk.GetValue(dp.Neum);
                    String seriesName = nuemWithVal.Item1;
                    _nk.AddSeriesName(seriesId, seriesName);
                    dp.ParentSeriesId = seriesId;
                    //dataPoint.Add(new Tuple<string, string, DateTime, string, string>(nuemWithVal.Item1, neumAndCatsubstrings[1], date, "Fiscal Year", values[i]));
                    dataPointList.AddPoint(dp);
                    i++;
                }
            }
            ParsingReturnStructure toReturn  = new ParsingReturnStructure();
            BGTableInfo            tableHere = new BGTableInfo();

            tableHere.TableName = rawNeum;
            int tableLineNum = 0;

            toReturn.DataPoints.AddList(dataPointList);
            for (int rowOn = 1; rowOn < columnHeaders.Count; rowOn++)
            {
                //      int colOn = 1;

                if (columnHeaders[rowOn] != null && columnHeaders[rowOn].Length > 0)  //sometimes there are blank cells that don't need to be processed
                {
                    tableLineNum++;



                    String seriesName = rawNeum + "_" + columnHeaders[rowOn];


                    String neum = "arlweb~" + seriesName;
                    neum = _nk.PrettifyNeum(neum);
                    Guid seriesID = _nk.GetValue(neum);

                    BGTableLineInformation tableLineInfo = new BGTableLineInformation();
                    tableLineInfo.linelabel        = columnHeaders[rowOn];
                    tableLineInfo.tablelineindents = 0;
                    tableLineInfo.tablelinenum     = tableLineNum;
                    tableLineInfo.objectID         = seriesID;
                    tableHere.Add(tableLineInfo);
                }
            }
            toReturn.NeumKey = _nk;
            toReturn.TableInfos.Add(tableHere);
            return(toReturn);
        }