Beispiel #1
0
        public LineChartComponent()
        {
            InitComponent();
            config.Options = options;

            dataset = new LineDataset <TimeTuple <int> >
            {
                BackgroundColor  = ColorUtil.RandomColorString(),
                BorderColor      = ColorUtil.RandomColorString(),
                Label            = "Temperature",
                Fill             = false,
                BorderWidth      = 2,
                PointRadius      = 3,
                PointBorderWidth = 1,
                SteppedLine      = SteppedLine.False
            };
            //Initial retrieve of Data
            //var forecasts = await _forecastService.GetForecastAsync(DateTime.Now, 2);
            List <TimeTuple <int> > e = new List <TimeTuple <int> >();
            var rand = new Random();

            e.ToList();
            for (int i = 0; i < 50; i++)
            {
                e.Add(new TimeTuple <int>(new Moment(DateTime.Now.AddSeconds(-300 * i)), rand.Next(10, 100)));
            }
            dataset.AddRange(e);

            //_tempDataSet.AddRange(forecasts.Select(p => new TimeTuple<int>(new Moment(p.Date), p.TemperatureC)));
            config.Data.Datasets.Add(dataset);
        }
Beispiel #2
0
        protected override async Task OnInitializedAsync()
        {
            ConfigDailyChart();
            ConfigTotalChart();

            Data = await DataSource.getFioCruzData();

            casesPerDaySet.AddRange(Data.DailyData.Select(day => new Point(Data.DailyData.IndexOf(day) + 1, day.NewCases)));
            deathsPerDaySet.AddRange(Data.DailyData.Select(day => new Point(Data.DailyData.IndexOf(day) + 1, day.NewDeaths)));

            totalCasesPerDaySet.AddRange(Data.DailyData.Select(day => new Point(Data.DailyData.IndexOf(day) + 1,
                                                                                Data.DailyData.GetRange(0, Data.DailyData.IndexOf(day) + 1).Sum(s => s.NewCases))));
            totalDeathsPerDaySet.AddRange(Data.DailyData.Select(day => new Point(Data.DailyData.IndexOf(day) + 1,
                                                                                 Data.DailyData.GetRange(0, Data.DailyData.IndexOf(day) + 1).Sum(s => s.NewDeaths))));

            ConfigDaily.Data.Datasets.Add(casesPerDaySet);
            ConfigDaily.Data.Datasets.Add(deathsPerDaySet);

            ConfigTotal.Data.Datasets.Add(totalCasesPerDaySet);
            ConfigTotal.Data.Datasets.Add(totalDeathsPerDaySet);

            await base.OnInitializedAsync();
        }
Beispiel #3
0
        public void DoAction(string action, Event eventArgs)
        {
            if (action.Equals("add"))
            {
                if (eventArgs.Contains("Label") && eventArgs.Contains("Value") && eventArgs.Contains("Timestamp"))
                {
                    dataset = new LineDataset <TimeTuple <int> >
                    {
                        BackgroundColor  = ColorUtil.RandomColorString(),
                        BorderColor      = ColorUtil.RandomColorString(),
                        Label            = eventArgs.Get("Label"),
                        Fill             = false,
                        BorderWidth      = 2,
                        PointRadius      = 3,
                        PointBorderWidth = 1,
                        SteppedLine      = SteppedLine.False
                    };
                    List <TimeTuple <int> > e = new List <TimeTuple <int> >();
                    var rand = new Random();
                    e.ToList();
                    for (int i = 0; i < 50; i++)
                    {
                        e.Add(new TimeTuple <int>(new Moment(DateTime.Now.AddSeconds(-300 * i)), rand.Next(50, 100)));
                    }
                    dataset.AddRange(e);
                    dataset.Id = eventArgs.Get("Label");
                    config.Data.Datasets.Add(dataset);
                }
            }
            if (action.Equals("replace"))
            {
                if (eventArgs.Contains("Label") && eventArgs.Contains("Value") && eventArgs.Contains("Timestamp"))
                {
                    HashSet <IMixableDataset <object> > datasets = config.Data.Datasets;
                    for (int i = 0; i < datasets.Count; i++)
                    {
                        if (datasets.ElementAt(i).Id.Equals(eventArgs.Get("Label")))
                        {
                            config.Data.Datasets.Remove(datasets.ElementAt(i));
                        }
                    }

                    dataset = new LineDataset <TimeTuple <int> >
                    {
                        BackgroundColor  = ColorUtil.RandomColorString(),
                        BorderColor      = ColorUtil.RandomColorString(),
                        Label            = eventArgs.Get("Label"),
                        Fill             = false,
                        BorderWidth      = 2,
                        PointRadius      = 3,
                        PointBorderWidth = 1,
                        SteppedLine      = SteppedLine.False
                    };
                    List <TimeTuple <int> > e = new List <TimeTuple <int> >();
                    var rand = new Random();
                    e.ToList();
                    for (int i = 0; i < 10; i++)
                    {
                        e.Add(new TimeTuple <int>(new Moment(DateTime.Now.AddSeconds(-10000 * i)), rand.Next(50, 100)));
                    }
                    dataset.AddRange(e);
                    dataset.Id = eventArgs.Get("Label");
                    config.Data.Datasets.Add(dataset);
                }
            }


            //if (action.Equals("replace"))
            //{
            //    //First remove old label and piece of cake
            //    if (eventArgs.Contains("Label"))
            //    {
            //        int index = -1;
            //        List<string> labels = config.Data.Labels;
            //        for (int i = 0; i < labels.Count; i++)
            //        {
            //            if (eventArgs.Get("Label").Equals(labels.ElementAt(i)))
            //                index = i;
            //        }

            //        if (index > -1)
            //        {
            //            config.Data.Labels.RemoveAt(index);
            //            dataset.Data.RemoveAt(index);
            //        }
            //    }

            //    //then re-add
            //    if (eventArgs.Contains("Label"))
            //        config.Data.Labels.Add(eventArgs.Get("Label"));
            //    if (eventArgs.Contains("Value"))
            //    {
            //        var dataset = config.Data.Datasets.LastOrDefault();
            //        if (dataset != null)
            //            dataset.Data.Add(Convert.ToInt32(eventArgs.Get("Value")));
            //        dataset.BackgroundColor = dataset.BackgroundColor.IndexedValues.Append(ColorUtil.RandomColorString()).ToArray();
            //    }

            //}
        }