Beispiel #1
0
        /// <summary>
        /// Liefert die mit den aktuellen Einstellungen gefilterte und sortierte Menge zurück
        /// </summary>
        /// <param name="sortType"></param>
        /// <returns></returns>
        public IQueryable <TEntityView> selectSorted(string sortType)
        {
            try
            {
                int entityCount = selectCount("");
                if (entityCount > 0)
                {
                    var views = new List <TEntityView>(entityCount);

                    foreach (var entity in sort(filter(EntityCollection)))
                    {
                        views.Add(CreateView(entity));
                    }
                    return(views.AsQueryable());
                }
                else
                {
                    return((new List <TEntityView>()).AsQueryable());
                }
            }
            catch (Exception ex)
            {
                throw BoFilterAndSortEfEntitiesBaseException.Create("selectSorted", ex);
            }
        }
Beispiel #2
0
 /// <summary>
 /// Liefert die Anzahl der Datensätze, die nach der Filterung im Ergebnis verbleiben
 /// </summary>
 /// <param name="sortType"></param>
 /// <returns></returns>
 public int selectCount(string sortType)
 {
     try
     {
         return(filter(EntityCollection).Count());
     }
     catch (Exception ex)
     {
         throw BoFilterAndSortEfEntitiesBaseException.Create("selectCount", ex);
     }
 }
Beispiel #3
0
        /// <summary>
        /// Implementiert das Sortieren nach beliebiger Spalte für die Objektdatasource
        /// </summary>
        /// <param name="tab"></param>
        /// <returns></returns>
        public IQueryable <TEntity> sort(IQueryable <TEntity> tab)
        {
            if (string.IsNullOrEmpty(_sortColname))
            {
                _sortColname = _defaultSortCol;
            }

            if (tab == null)
            {
                return(null);
            }
            if (tab.Count() == 0)
            {
                return(tab);
            }
            if (string.IsNullOrEmpty(_sortColname))
            {
                // Fall: keine Sortierung erwünscht
                return(tab);
            }
            else if (typeof(TEntityView).GetProperty(_sortColname) != null)
            {
                // Fall: Die Spalte stammt aus der aktuellen View

                // Namen der Eigenschaft einer EntityView auf die Eigenschaft eines zugrundeliegenden Entity abbilden
                string Colname = mapPropertyToColName(typeof(TEntityView), _sortColname);

                // Sortieren bezüglich abgeleiteter Spalten in den Views
                IQueryable <TEntity> tabff;


                if (sortByDerivat(tab, Colname, _sortDesc, out tabff))
                {
                    return(tabff);
                }

                // Wenn die Spalte keine abgeleitete Spalte ist, dann sortieren nach den tatsächlichen Spalten
                return(OrderFunc <TEntity>(tab, Colname, _sortDesc));
            }
            throw BoFilterAndSortEfEntitiesBaseException.Create("sort", null);
        }