public List <PlantType> Get(PlantTypeQueryParameters options) { IQueryable <PlantType> query = _dbContext.PlantType; if (!String.IsNullOrWhiteSpace(options.Term)) { query = query.Where(plant => plant.LatinName.Contains(options.Term) || plant.CommonName.Contains(options.Term) || plant.ScienceKingdom.Contains(options.Term) || plant.ScienceClade1.Contains(options.Term) || plant.ScienceClade2.Contains(options.Term) || plant.ScienceClade3.Contains(options.Term) || plant.ScienceFamily.Contains(options.Term) || plant.ScienceSubfamily.Contains(options.Term) || plant.ScienceGenus.Contains(options.Term) ); } if (!string.IsNullOrWhiteSpace(options.OrderBy)) { string[] sortArray = ValidateSortStrings(options.OrderBy); if (sortArray != null) { foreach (string field in sortArray) { query = query.OrderBy(field); } } } var list = query.Skip(options.PageIndex * options.Take).Take(options.Take).ToList(); return(list); }
public IActionResult Get([FromQuery] PlantTypeQueryParameters queryParams) { queryParams.Take = (queryParams.Take < 1 || queryParams.Take > 200) ? 50 : queryParams.Take; queryParams.PageIndex = (queryParams.PageIndex < 0) ? 0 : queryParams.PageIndex; List <PlantType> plantList = _plantData.Get(queryParams); if (plantList == null) { return(NotFound()); } IEnumerable <PlantTypeDisplayViewModel> models = plantList.Select(p => new PlantTypeDisplayViewModel(p)); return(Ok(models)); }