Esempio n. 1
0
        private SGSeriesCollection GetSeries(Dictionary <string, object> file)
        {
            SGSeriesCollection series_collection = new SGSeriesCollection();
            JObject            all_series        = (JObject)jo_parsed_file["series"];

            foreach (var series in all_series)
            {
                SGSeries parsed_series = new SGSeries();

                parsed_series.Type   = 0;
                parsed_series.ID     = 1;
                parsed_series.Status = 4;
                parsed_series.Name   = series.Key;
                JObject values = (JObject)series.Value;


                List <Object> val_range        = new List <Object>();
                List <Object> key_range        = new List <Object>();
                List <Object> val_range_copy   = new List <object>();
                int           last_value_index = -1;
                foreach (var data in values)
                {
                    try
                    {
                        val_range.Add((Double)data.Value);
                        key_range.Add((String)data.Key);

                        val_range_copy.Add((Double)data.Value);

                        last_value_index += 1;
                    }
                    catch (System.ArgumentException e)
                    {
                        val_range.Add("none");
                        val_range_copy.Add("none");
                    }
                }
                parsed_series.Values               = val_range;
                parsed_series.EndsAt               = (Double)val_range.OfType <Double>().Last();
                parsed_series.CategoryEndsAt       = Convert.ToDouble(key_range[last_value_index]);
                parsed_series.CategoryStartsAt     = Convert.ToDouble(key_range.First());
                parsed_series.StartsAt             = (Double)val_range.OfType <Double>().First();
                parsed_series.Trend                = (string)jo_parsed_file["trends"][series.Key];
                parsed_series.ValuesIncludingNones = val_range_copy;

                // add series to collection
                series_collection.Add(parsed_series);
            }

            return(series_collection);
        }
Esempio n. 2
0
        /***************************************************************************
         * Series are dealt with here. This is a very error prone method.
         **************************************************************************/
        private SGSeriesCollection GetXLSeries(Chart chart)
        {
            SGSeriesCollection sg_series_collection = new SGSeriesCollection();
            IEnumerator        series_enumerator    = ((SeriesCollection)
                                                       chart.SeriesCollection(Type.Missing)).GetEnumerator();
            int ctr = 0;

            // iterate through all the boxes in the chart area.
            while (series_enumerator.MoveNext())
            {
                SGSeries sg_series = new SGSeries();
                Series   xl_series = (Series)series_enumerator.Current;
                sg_series.ID = ctr;

                ///////////////////////////////////////
                // \internal find if there is a type (line, bar, etc.)
                //////////////////////////////////////
                try
                {
                    sg_series.Type = xl_series.Type;
                } catch
                {
                    sg_series.Type = -1;
                    log.Warn("Couldn't get the type of the series."
                             + "\n\tThis must be fixed!");
                    continue;
                }

                ///////////////////////////////////////
                // find if there is a name
                //////////////////////////////////////
                if (!String.IsNullOrEmpty(xl_series.Name))
                {
                    sg_series.Name = xl_series.Name;
                }
                else
                {
                    log.Warn("Couldn't find the name of the series."
                             + "\n\tSetting it to: \"none\".");
                    sg_series.Name = "none";
                }

                ///////////////////////////////////////
                // find if there are values
                //////////////////////////////////////

                try
                {
                    List <object> vals = new List <object>();
                    //vals.AddRange(((Array)xl_series.Values).Cast<object>());

                    foreach (object c in (Array)xl_series.Values)
                    {
                        if (c != null && c.ToString().Length != 0)
                        {
                            vals.Add(c);
                        }
                        else
                        {
                            vals.Add("");
                        }
                    }

                    sg_series.Values = vals;
                } catch
                {
                    log.Warn("Couldn't find the values for the series."
                             + "\n\tSetting it to: \"none\".");
                    continue;
                }

                sg_series_collection.Add(sg_series);
                log.Debug(sg_series.ToString() + ".");
                ctr++;
            }

            log.Debug(ctr + " legal series found and added to the list.");
            return(sg_series_collection);
        }