Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 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");
 }
Ejemplo n.º 3
0
 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);
     }
 }