public List <StatisticsItem> GetStatistics(ICollection <IFilter> filters, SortingItem sorting)
        {
            var allStatistics = _statistics.GetAll();

            foreach (var filter in filters)
            {
                filter.ApplyFilter(ref allStatistics);
            }
            ApplySorting(ref allStatistics, sorting);
            return(allStatistics.ToList());
        }
        private void ApplySorting(ref IQueryable <StatisticsItem> statistics, SortingItem sorting)
        {
            bool directionAscending = sorting.SortingDirection == SortingDirection.Ascending;

            statistics = sorting.SortingType switch
            {
                SortingType.DateSorting => directionAscending
                ? statistics.OrderBy(si => si.GameDate)
                : statistics.OrderByDescending(si => si.GameDate),
                SortingType.RemainingShipsSorting => directionAscending
                ? statistics.OrderBy(si => si.RemainingShips)
                : statistics.OrderByDescending(si => si.GameDate),
            };
        }
Exemple #3
0
 public SortingSettings(SortingItem sorting) : this()
 {
     Items.Add(sorting);
 }