private List <NotificationMessage> GetDataFromDb() { var ret = new List <NotificationMessage>(); var paramsInitialCounter = _params.InitialCounter; var recsToTake = RowsHelper.MaxRowsToGet(Count, ref paramsInitialCounter); _params.InitialCounter = paramsInitialCounter; if (recsToTake.Equals(0)) { _counterReader.Save(_params.InitialCounter); return(ret); } _container.Clear(); foreach (var r in _db[_params.Schema][_params.TableName].All().Take(recsToTake).OrderByDescending(_db[_params.Schema][_params.TableName][_params.OrderByColumnName])) { _container.Clear(); GetColumnsByColumnsNames(r); if (_validator?.Validate(_container) == true) { continue; } if (_aggregator?.AggregateIfPossible(ret, _container) != false) { continue; } ret.Add(CreateMessage()); } _counterReader.Save(_params.InitialCounter); ret.Reverse(); return(ret); }