/// <summary> /// Filters Pagasts list /// </summary> public IEnumerable <Pagasts> FilterPagastsList(int novadsId, FilterParameters filterParams) { Novads givenNovads = _repository.GetAllNovadsLoadedReadOnly() .FirstOrDefault(novads => novads.Id == novadsId); if (givenNovads == null) { throw new InvalidOperationException("Must pass novadsId."); } List <Func <Polygon1km, bool> > predicates = this.GetFiltrationPredicates(filterParams); List <Pagasts> pagastsList = givenNovads.PagastsList; foreach (var pagasts in pagastsList) { pagasts.Polygon1kmList = this.ApplyFiltersOnPolygonList(predicates, pagasts.Polygon1kmList); } return(pagastsList.Where(pagasts => pagasts.Polygon1kmList.Count > 0).ToList()); }
/// <summary> /// Filters Polygons lists /// </summary> public IEnumerable <Polygon1km> FilterPolygonList(int novadsId, int pagastsId, FilterParameters filterParams) { Novads givenNovads = _repository.GetAllNovadsLoadedReadOnly() .FirstOrDefault(novads => novads.Id == novadsId); if (givenNovads == null) { throw new InvalidOperationException("Must pass novadsId."); } Pagasts givenPagasts = givenNovads.PagastsList.FirstOrDefault(pagasts => pagasts.Id == pagastsId); if (givenPagasts == null) { throw new InvalidOperationException("Must pass pagastsId."); } List <Polygon1km> polygons = givenPagasts.Polygon1kmList; List <Func <Polygon1km, bool> > predicates = this.GetFiltrationPredicates(filterParams); return(this.ApplyFiltersOnPolygonList(predicates, polygons)); }