private void ChangeCollectionForDiagramm(ObservableCollection <Costs> collect) { ObservableCollection <Costs> costCollectionCopy = new ObservableCollection <Costs>(collect); var noduplicates = costCollectionCopy.Distinct(); costsStructListNoDuplicates = new List <CostsStruct>(); costsStructListAll = new List <CostsStruct>(); /* не повторяющиеся */ foreach (Costs c in noduplicates) { CostsStruct st = new CostsStruct(); st.Id = c.Id; st.Summa = c.Summa; st.DateOperation = c.DateOperation; st.PurseId = c.PurseId; st.CostCategoriesId = c.CostCategoriesId; st.CostCategoriesName = c.CostCategories.Name; st.Comment = c.Comment; st.CurrencyId = c.CurrencyId; st.CurrencyRate = c.Currency.Rate; st.CurrencyScale = c.Currency.CurScale; costsStructListNoDuplicates.Add(st); } /* Все */ foreach (Costs c in costCollectionCopy) { CostsStruct st = new CostsStruct(); st.Id = c.Id; st.Summa = c.Summa; st.DateOperation = c.DateOperation; st.PurseId = c.PurseId; st.CostCategoriesId = c.CostCategoriesId; st.CostCategoriesName = c.CostCategories.Name; st.Comment = c.Comment; st.CurrencyId = c.CurrencyId; st.CurrencyRate = c.Currency.Rate; st.CurrencyScale = c.Currency.CurScale; costsStructListAll.Add(st); } //не повторяющие в BYN for (int i = 0; i < costsStructListNoDuplicates.Count; i++) { double summa = 0; summa = costsStructListNoDuplicates[i].Summa * costsStructListNoDuplicates[i].CurrencyRate / costsStructListNoDuplicates[i].CurrencyScale; costsStructListNoDuplicates[i] = new CostsStruct(costsStructListNoDuplicates[i].Id, summa, costsStructListNoDuplicates[i].DateOperation, costsStructListNoDuplicates[i].PurseId, costsStructListNoDuplicates[i].CostCategoriesId, costsStructListNoDuplicates[i].CostCategoriesName, costsStructListNoDuplicates[i].Comment, costsStructListNoDuplicates[i].CurrencyId, costsStructListNoDuplicates[i].CurrencyRate, costsStructListNoDuplicates[i].CurrencyScale); } /* Все в BYN */ for (int i = 0; i < costsStructListAll.Count; i++) { double summa = 0; summa = costsStructListAll[i].Summa * costsStructListAll[i].CurrencyRate / costsStructListAll[i].CurrencyScale; costsStructListAll[i] = new CostsStruct(costsStructListAll[i].Id, summa, costsStructListAll[i].DateOperation, costsStructListAll[i].PurseId, costsStructListAll[i].CostCategoriesId, costsStructListAll[i].CostCategoriesName, costsStructListAll[i].Comment, costsStructListAll[i].CurrencyId, costsStructListAll[i].CurrencyRate, costsStructListAll[i].CurrencyScale); } for (int i = 0; i < costsStructListNoDuplicates.Count; i++) { for (int j = 0; j < costsStructListAll.Count; j++) { if (costsStructListNoDuplicates[i].Id != costsStructListAll[j].Id) { if (costsStructListNoDuplicates[i].CostCategoriesId == costsStructListAll[j].CostCategoriesId) { double tempSumma = costsStructListAll[j].Summa + costsStructListNoDuplicates[i].Summa; costsStructListNoDuplicates[i] = new CostsStruct(costsStructListNoDuplicates[i].Id, tempSumma, costsStructListNoDuplicates[i].DateOperation, costsStructListNoDuplicates[i].PurseId, costsStructListNoDuplicates[i].CostCategoriesId, costsStructListNoDuplicates[i].CostCategoriesName, costsStructListNoDuplicates[i].Comment, costsStructListNoDuplicates[i].CurrencyId, costsStructListNoDuplicates[i].CurrencyRate, costsStructListNoDuplicates[i].CurrencyScale); } } } } (PieChartCosts.Series[0] as PieSeries).ItemsSource = costsStructListNoDuplicates; (ColumnChartCosts.Series[0] as ColumnSeries).ItemsSource = costsStructListNoDuplicates; }
private void ChangeCollectionForDiagramm(ObservableCollection <Costs> cCollect, ObservableCollection <Income> iCollect) { var noduplicatesCosts = cCollect.Distinct(); var noduplicatesIncomes = iCollect.Distinct(); costsStructListNoDuplicates = new List <CostsStruct>(); costsStructListAll = new List <CostsStruct>(); incomesStructListNoDuplicates = new List <IncomesStruct>(); incomesStructListAll = new List <IncomesStruct>(); /* не повторяющиеся */ foreach (Costs c in noduplicatesCosts) { CostsStruct st = new CostsStruct(); st.Id = c.Id; st.Summa = c.Summa; st.DateOperation = c.DateOperation; st.PurseId = c.PurseId; st.CostCategoriesId = c.CostCategoriesId; st.CostCategoriesName = c.CostCategories.Name; st.Comment = c.Comment; st.CurrencyId = c.CurrencyId; st.CurrencyRate = c.Currency.Rate; st.CurrencyScale = c.Currency.CurScale; costsStructListNoDuplicates.Add(st); } foreach (Income c in noduplicatesIncomes) { IncomesStruct st = new IncomesStruct(); st.Id = c.Id; st.Summa = c.Summa; st.DateOperation = c.DateOperation; st.PurseId = c.PurseId; st.IncomeCategoriesId = c.SourceOfIncomeId; st.IncomeCategoriesName = c.SourceOfIncome.Name; st.Comment = c.Comment; st.CurrencyId = c.CurrencyId; st.CurrencyRate = c.Currency.Rate; st.CurrencyScale = c.Currency.CurScale; incomesStructListNoDuplicates.Add(st); } /* Все */ foreach (Costs c in cCollect) { CostsStruct st = new CostsStruct(); st.Id = c.Id; st.Summa = c.Summa; st.DateOperation = c.DateOperation; st.PurseId = c.PurseId; st.CostCategoriesId = c.CostCategoriesId; st.CostCategoriesName = c.CostCategories.Name; st.Comment = c.Comment; st.CurrencyId = c.CurrencyId; st.CurrencyRate = c.Currency.Rate; st.CurrencyScale = c.Currency.CurScale; costsStructListAll.Add(st); } foreach (Income c in iCollect) { IncomesStruct st = new IncomesStruct(); st.Id = c.Id; st.Summa = c.Summa; st.DateOperation = c.DateOperation; st.PurseId = c.PurseId; st.IncomeCategoriesId = c.SourceOfIncomeId; st.IncomeCategoriesName = c.SourceOfIncome.Name; st.Comment = c.Comment; st.CurrencyId = c.CurrencyId; st.CurrencyRate = c.Currency.Rate; st.CurrencyScale = c.Currency.CurScale; incomesStructListAll.Add(st); } //не повторяющие в BYN for (int i = 0; i < costsStructListNoDuplicates.Count; i++) { double summa = 0; summa = costsStructListNoDuplicates[i].Summa * costsStructListNoDuplicates[i].CurrencyRate / costsStructListNoDuplicates[i].CurrencyScale; costsStructListNoDuplicates[i] = new CostsStruct(costsStructListNoDuplicates[i].Id, summa, costsStructListNoDuplicates[i].DateOperation, costsStructListNoDuplicates[i].PurseId, costsStructListNoDuplicates[i].CostCategoriesId, costsStructListNoDuplicates[i].CostCategoriesName, costsStructListNoDuplicates[i].Comment, costsStructListNoDuplicates[i].CurrencyId, costsStructListNoDuplicates[i].CurrencyRate, costsStructListNoDuplicates[i].CurrencyScale); } for (int i = 0; i < incomesStructListNoDuplicates.Count; i++) { double summa = 0; summa = incomesStructListNoDuplicates[i].Summa * incomesStructListNoDuplicates[i].CurrencyRate / incomesStructListNoDuplicates[i].CurrencyScale; incomesStructListNoDuplicates[i] = new IncomesStruct(incomesStructListNoDuplicates[i].Id, summa, incomesStructListNoDuplicates[i].DateOperation, incomesStructListNoDuplicates[i].PurseId, incomesStructListNoDuplicates[i].IncomeCategoriesId, incomesStructListNoDuplicates[i].IncomeCategoriesName, incomesStructListNoDuplicates[i].Comment, incomesStructListNoDuplicates[i].CurrencyId, incomesStructListNoDuplicates[i].CurrencyRate, incomesStructListNoDuplicates[i].CurrencyScale); } /* Все в BYN */ for (int i = 0; i < costsStructListAll.Count; i++) { double summa = 0; summa = costsStructListAll[i].Summa * costsStructListAll[i].CurrencyRate / costsStructListAll[i].CurrencyScale; costsStructListAll[i] = new CostsStruct(costsStructListAll[i].Id, summa, costsStructListAll[i].DateOperation, costsStructListAll[i].PurseId, costsStructListAll[i].CostCategoriesId, costsStructListAll[i].CostCategoriesName, costsStructListAll[i].Comment, costsStructListAll[i].CurrencyId, costsStructListAll[i].CurrencyRate, costsStructListAll[i].CurrencyScale); } for (int i = 0; i < incomesStructListAll.Count; i++) { double summa = 0; summa = incomesStructListAll[i].Summa * incomesStructListAll[i].CurrencyRate / incomesStructListAll[i].CurrencyScale; incomesStructListAll[i] = new IncomesStruct(incomesStructListAll[i].Id, summa, incomesStructListAll[i].DateOperation, incomesStructListAll[i].PurseId, incomesStructListAll[i].IncomeCategoriesId, incomesStructListAll[i].IncomeCategoriesName, incomesStructListAll[i].Comment, incomesStructListAll[i].CurrencyId, incomesStructListAll[i].CurrencyRate, incomesStructListAll[i].CurrencyScale); } /* Сумирование одинаковых категорий */ for (int i = 0; i < costsStructListNoDuplicates.Count; i++) { for (int j = 0; j < costsStructListAll.Count; j++) { if (costsStructListNoDuplicates[i].Id != costsStructListAll[j].Id) { if (costsStructListNoDuplicates[i].CostCategoriesId == costsStructListAll[j].CostCategoriesId) { double tempSumma = costsStructListAll[j].Summa + costsStructListNoDuplicates[i].Summa; costsStructListNoDuplicates[i] = new CostsStruct(costsStructListNoDuplicates[i].Id, tempSumma, costsStructListNoDuplicates[i].DateOperation, costsStructListNoDuplicates[i].PurseId, costsStructListNoDuplicates[i].CostCategoriesId, costsStructListNoDuplicates[i].CostCategoriesName, costsStructListNoDuplicates[i].Comment, costsStructListNoDuplicates[i].CurrencyId, costsStructListNoDuplicates[i].CurrencyRate, costsStructListNoDuplicates[i].CurrencyScale); } } } } for (int i = 0; i < incomesStructListNoDuplicates.Count; i++) { for (int j = 0; j < incomesStructListAll.Count; j++) { if (incomesStructListNoDuplicates[i].Id != incomesStructListAll[j].Id) { if (incomesStructListNoDuplicates[i].IncomeCategoriesId == incomesStructListAll[j].IncomeCategoriesId) { double tempSumma = incomesStructListAll[j].Summa + incomesStructListNoDuplicates[i].Summa; incomesStructListNoDuplicates[i] = new IncomesStruct(incomesStructListNoDuplicates[i].Id, tempSumma, incomesStructListNoDuplicates[i].DateOperation, incomesStructListNoDuplicates[i].PurseId, incomesStructListNoDuplicates[i].IncomeCategoriesId, incomesStructListNoDuplicates[i].IncomeCategoriesName, incomesStructListNoDuplicates[i].Comment, incomesStructListNoDuplicates[i].CurrencyId, incomesStructListNoDuplicates[i].CurrencyRate, incomesStructListNoDuplicates[i].CurrencyScale); } } } } List <CostsIncomeStatistic> statistic = new List <CostsIncomeStatistic>(); statistic.Add(new CostsIncomeStatistic() { Name = "Расходы", Summa = GetSumma(costsStructListNoDuplicates) }); statistic.Add(new CostsIncomeStatistic() { Name = "Доходы", Summa = GetSumma(incomesStructListNoDuplicates) }); (PieChart.Series[0] as PieSeries).ItemsSource = statistic; (ColumnChart.Series[0] as ColumnSeries).ItemsSource = statistic; }