public async void GetData()
        {
            var data = await Task.Run(() =>
            {
                return(ContextHelpers.InvestmentInterestPerMonthPerYearPerSource());
            });

            var model = new PlotModel();

            var list = new Dictionary <DateTime, List <ColumnItem> >();

            foreach (var da in data)
            {
                var key = new DateTime(da.Year, da.Month, 1);

                if (list.ContainsKey(key))
                {
                    var values = list[key];
                    values.Add(new ColumnItem((double)da.Amount));
                }
                else
                {
                    list.Add(key, new List <ColumnItem>()
                    {
                        new ColumnItem((double)da.Amount)
                    });
                }
            }

            // add category
            var categoryAxis1 = new CategoryAxis();

            foreach (var category in list)
            {
                categoryAxis1.Labels.Add(category.Key.ToString("MM-yyyy"));
            }

            model.Axes.Add(categoryAxis1);

            var maxItems = list.Select(f => f.Value.Count).Max();

            for (int i = 0; i < maxItems; i++)
            {
                var columnSeries = new ColumnSeries();
                columnSeries.IsStacked = true;
                for (int y = 0; y < list.Count(); y++)
                {
                    if (list.ElementAt(y).Value.Count > i)
                    {
                        columnSeries.Items.Add(list.ElementAt(y).Value[i]);
                    }
                    else
                    {
                        columnSeries.Items.Add(new ColumnItem(0));
                    }
                }
                model.Series.Add(columnSeries);
            }


            this.plotView1.Model = model;
        }