public List <Sales> Filter() { var itemsSource = new List <Sales>(); using (var db = new SalesDbModel()) { if (FilterColumns.Count == 0 || Grouped) { return(db.Sales.Local.ToList()); } var items = new List <List <Sales> >(); items = RecursiveGroupBy(db.Sales.ToList(), FilterColumns); foreach (var item in items) { var representativeRow = item[0]; for (int i = 1; i < item.Count; i++) { representativeRow.SalesSum += item[i].SalesSum; representativeRow.Amount += item[i].Amount; } itemsSource.Add(representativeRow); } } Grouped = true; RaisePropertyChanged("Grouped"); Sales = new ObservableCollection <Sales>(itemsSource); RaisePropertyChanged("Sales"); return(itemsSource); }
public void Reset() { for (int i = 0; i < VisibleColumns.Count; i++) { VisibleColumns[i] = true; } Grouped = false; RaisePropertyChanged("Grouped"); FilterColumns = new List <string>(); RaisePropertyChanged("VisibleColumns"); using (var db = new SalesDbModel()) { db.Sales.Load(); Sales = new ObservableCollection <Sales>(db.Sales.Local.ToList()); } RaisePropertyChanged("Sales"); }
public ViewModel() { FilterCommand = new FilterCommand(); ResetCommand = new ResetCommand(); VisibleColumns = new ObservableCollection <ObservableProp <bool> >() { true, true, true, true, true }; FilterColumns = new List <string>(); try { using (var db = new SalesDbModel()) { db.Sales.Load(); Sales = db.Sales.Local; } } catch (Exception e) { Debug.WriteLine(e.Message); } }