private void AddChartValues(string chartName, double value, DateTime time, UnitOfTime unitOfTime, double?accumulatedValue = 0) { var chart = this.GetChart(chartName); var lastRecord = chart[unitOfTime].OrderByDescending(x => x.StartDate).FirstOrDefault(); if (lastRecord.StartDate.IsInSamePeriodAs(time, unitOfTime)) { lastRecord.Value += (decimal)value; } else { lastRecord = new ChartStatsViewModel { StartDate = time, UnitOfTime = unitOfTime, Value = (decimal)value }; if (this.charts[chartName][unitOfTime].Count > 100) { this.charts[chartName][unitOfTime] = this.charts[chartName][unitOfTime] .OrderByDescending(x => x.StartDate) .Take(35) .ToList(); } this.charts[chartName][unitOfTime].Add(lastRecord); } if (accumulatedValue != 0) { lastRecord.AccumulatedValue += (decimal)accumulatedValue.Value; } }
public IEnumerable <ChartStatsViewModel> AssetTypesChart() { var globalAssetsModel = new ChartStatsViewModel { Label = "Global", Value = this.db.Assets.Count(x => x.Type != AssetType.NEP5) }; var tokenAssetsModel = new ChartStatsViewModel { Label = "NEP-5", Value = this.db.Assets.Count(x => x.Type == AssetType.NEP5) }; return(new List <ChartStatsViewModel> { globalAssetsModel, tokenAssetsModel }); }