public void ApplyFilter(DateTime startDate, DateTime endDate) { var costs = DbWorker.Current.GetCosts().Where(c => DateUtility.GetLocalTimeFromUTCMilliseconds(c.Date) > startDate && DateUtility.GetLocalTimeFromUTCMilliseconds(c.Date) < endDate); Datas.Clear(); foreach (var category in MainViewModel.Current.Categories) { var tempCosts = costs.Where(c => c.CategoryId == category.Id); if (tempCosts.Count() > 0) { double sumInCategory = tempCosts.Sum(c => c.Cost); Datas.Add( new DataDiagramViewModel { Value = (sumInCategory / AllCosts) * 100, Color = category.Color, Title = category.Title }); } } }