Example #1
0
 public VintriController(IBeerRepository beerRepository, BaseClassDataBaseRepository dataBaseRepository,
                         IUserResponseFactory userResponseFactory)
 {
     _beerRepository      = beerRepository;
     _dataBaseRepository  = dataBaseRepository;
     _userResponseFactory = userResponseFactory;
 }
Example #2
0
        public async Task <IList <Beer> > AddRatingToBeer(int id, Beer punkAPIBeer, UserJson userRating)
        {
            var beers = await BaseClassDataBaseRepository.ReadFromDataBase();

            var beer = beers.Where(beer => beer.Id == id).FirstOrDefault();

            //Beer doesn't exist in database yet, create a new record
            if (beer == null)
            {
                punkAPIBeer.UserRatings.Add(userRating);
                beers.Add(punkAPIBeer);
            }
            else
            {
                beer.UserRatings.Add(userRating);
            }

            return(beers);
        }
Example #3
0
        public async Task <IActionResult> GetBeerByName(string beerName)
        {
            try
            {
                if (string.IsNullOrEmpty(beerName))
                {
                    throw new ArgumentException();
                }

                var punkAPIBeers = await _beerRepository.FindByName(beerName);

                if (punkAPIBeers != null && punkAPIBeers.Count() > 0)
                {
                    var databaseBeers = await BaseClassDataBaseRepository.ReadFromDataBase();

                    if (databaseBeers != null && databaseBeers.Count() > 0)
                    {
                        var beersMatched = databaseBeers.Intersect(punkAPIBeers);

                        if (beersMatched != null && beersMatched.Count() > 0)
                        {
                            var ratings  = ConvertBeerListToRatingsList(beersMatched);
                            var response = JsonConvert.SerializeObject(ratings);
                            return(Ok(response));
                        }
                    }
                }

                return(NotFound($"No beer was found in the database with the name {beerName}."));
            }
            catch (ArgumentException)
            {
                var dictionaryResponse = new ModelStateDictionary();
                dictionaryResponse.AddModelError("beer_name", "Could not find a beer with the provided Name.");
                return(NotFound(dictionaryResponse));
            }
            catch (Exception ex)
            {
                return(ValidationProblem(ex.Message));
            }
        }