public VintriController(IBeerRepository beerRepository, BaseClassDataBaseRepository dataBaseRepository, IUserResponseFactory userResponseFactory) { _beerRepository = beerRepository; _dataBaseRepository = dataBaseRepository; _userResponseFactory = userResponseFactory; }
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); }
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)); } }