Exemple #1
0
        public ServiceResult <BeerDTO[]> SearchBeers(SearchBeerDTO searchData)
        {
            var allBeersResult = GetAllBeers();

            if (allBeersResult.IsError)
            {
                return(new ServiceResult <BeerDTO[]>("Error while getting beers"));
            }
            var matchingBeers = allBeersResult.SuccessResult.Where(b => MatchesSearch(b, searchData));

            return(new ServiceResult <BeerDTO[]>(matchingBeers.ToArray()));
        }
Exemple #2
0
        public IActionResult Search([FromBody] SearchBeerDTO searchData)
        {
            if (!ModelState.IsValid)
            {
                return(StatusCode(422, ModelState));
            }
            var result = _beerService.SearchBeers(searchData);

            if (result.IsError)
            {
                return(StatusCode(422, result.Errors));
            }
            return(Ok(result.SuccessResult));
        }
Exemple #3
0
 private bool MatchesSearch(BeerDTO beer, SearchBeerDTO searchData)
 {
     if (!String.IsNullOrWhiteSpace(searchData.Name))
     {
         if (!beer.Name.ToLower().Contains(searchData.Name.ToLower()))
         {
             return(false);
         }
     }
     return(((searchData.Style != null && beer.Style != searchData.Style) ||
             beer.Alcohol < searchData.AlcoholMin ||
             beer.Alcohol > searchData.AlcoholMax ||
             beer.Ibu < searchData.IbuMin ||
             beer.Ibu > searchData.IbuMax ||
             beer.Blg < searchData.BlgMin ||
             beer.Blg > searchData.BlgMax) ? false : true);
 }