private void InitializeChart() { //filter by currency OperationDtoFilter filter = GetChartFilter(); List <OperationDto> filteredList = _operationRepo.Filter(filter); //filter by category List <OperationTypeDto> categories = _operationTypeRepo.All(); List <ChartItem> values = new List <ChartItem>(); foreach (OperationTypeDto category in categories) { ChartItem chartItem = new ChartItem() { Name = category.Name, Value = filteredList .Where(d => d.IdOperationType == category.Id) .Sum(d => d.Ammount) }; values.Add(chartItem); } pieSeries.ItemsSource = values; }
private OperationDtoFilter GetChartFilter() { OperationDtoFilter filter = new OperationDtoFilter(); filter.IdCurrency = GetClickedCurrency().Id; filter.DateFrom = new DateTime(tbMonth.Date.Year, tbMonth.Date.Month, 1); filter.DateTo = filter.DateFrom.Value.AddMonths(1).AddSeconds(-1); return(filter); }
private void InitializeTransactions() { //unsub from events foreach (var item in spTransactions.Children) { EditableTransactionControl control = (EditableTransactionControl)item; control.btnEditOperation.Click -= BtnEditOperation_Click; control.btnDeleteOperation.Click -= BtnDeleteOperation_Click; } spTransactions.Children.Clear(); // Get present filter OperationDtoFilter filter = GetFilter(); List <OperationDto> operationDtos = _operationRepo.Filter(filter); operationDtos = operationDtos.OrderByDescending(d => d.Date).ToList(); foreach (OperationDto operationDto in operationDtos) { EditableTransactionControl transactionControl = new EditableTransactionControl(); transactionControl.IdOperation = operationDto.Id; transactionControl.dpTransaction.Text = operationDto.Date.ToString("dd/MMM/yyyy"); transactionControl.tbCurrency.Text = operationDto.Account.Currency.Name; transactionControl.tbAccount.Text = operationDto.Account.Name; transactionControl.tbAmmount.Text = operationDto.Ammount.ToString(); transactionControl.tbCategory.Text = operationDto.OperationType.Name; transactionControl.tbDescription.Text = operationDto.Description; transactionControl.btnEditOperation.Click += BtnEditOperation_Click; transactionControl.btnDeleteOperation.Click += BtnDeleteOperation_Click; spTransactions.Children.Add(transactionControl); } }
private OperationDtoFilter GetFilter() { OperationDtoFilter filter = new OperationDtoFilter(); // Currency filter if ((ComboItem)cbCurrency.SelectedItem != null) { int?idSelectedCurrency = ((ComboItem)cbCurrency.SelectedItem).Id; if (idSelectedCurrency == 0) { filter.IdCurrency = null; } else { filter.IdCurrency = idSelectedCurrency; } } // Account filter if ((ComboItem)cbAccount.SelectedItem != null) { int?idSelectedAccount = ((ComboItem)cbAccount.SelectedItem).Id; if (idSelectedAccount == 0) { filter.IdAccount = null; } else { filter.IdAccount = idSelectedAccount; } } // Category filter if ((ComboItem)cbCategory.SelectedItem != null) { int?idSelectedCategory = ((ComboItem)cbCategory.SelectedItem).Id; if (idSelectedCategory == 0) { filter.IdCategory = null; } else { filter.IdCategory = idSelectedCategory; } } // Ammount filter if (decimal.TryParse(tbFrom.Text, out decimal from)) { filter.AmmountFrom = from; } if (decimal.TryParse(tbTo.Text, out decimal to)) { filter.AmmountTo = to; } // Date filter filter.DateFrom = dpFrom.SelectedDate; filter.DateTo = dpTo.SelectedDate; return(filter); }