Esempio n. 1
0
        public async Task <List <ParsedBeer> > GetAsync(int venueId)
        {
            // GET FROM DB
            List <ParsedBeer> beersFromDB = await DatabaseHandler.GetBeersFromDbForVenue(beerContext, venueId);

            // if no venue found get beers from api by venueId
            if (beersFromDB.Count == 0)
            {
                _logger.LogInformation($"No beers found from DB with venue id: {venueId}");

                // GET FROM API
                List <ParsedBeer> beersFromAPI = await UntappdApiCaller.GetBeersFromAPI(venueId);

                if (beersFromAPI.Count != 0)
                {
                    _logger.LogInformation($"Adding these beers to DB:");
                    beersFromAPI.ForEach(beer =>
                    {
                        _logger.LogInformation($"     name: {beer.BeerName},     id: {beer.BeerID}");
                    });

                    // PUT BEER TO DB
                    DatabaseHandler.PutBeersToDatabase(beerContext, venueId, beersFromAPI);
                }
                return(beersFromAPI);
            }
            return(beersFromDB);
        }
Esempio n. 2
0
        public async Task <List <ParsedVenue> > GetAsync(string latlng)
        {
            string[] coords = latlng.Split('&');
            double   lat    = Convert.ToDouble(coords[0]);
            double   lng    = Convert.ToDouble(coords[1]);

            // GET FROM DB
            List <ParsedVenue> venuesFromDB = await DatabaseHandler.GetVenuesFromDB(venueContext);

            // GET FROM API
            _logger.LogInformation($"Fetching venues close to your location: lat: {lat} and lng: {lng}");
            List <ParsedVenue> venuesFromAPI = await UntappdApiCaller.GetVenuesFromAPI(lat, lng, 0);

            // COMBINE VENUES FROM DB AND API
            List <ParsedVenue> allVenues           = new List <ParsedVenue>();
            List <ParsedVenue> missingVenuesFromDB = new List <ParsedVenue>();

            allVenues.AddRange(venuesFromDB);
            for (int i = 0; i < venuesFromAPI.Count; i++)
            {
                if (!allVenues.Exists(v => v.VenueID == venuesFromAPI[i].VenueID))
                {
                    allVenues.Add(venuesFromAPI[i]);
                    missingVenuesFromDB.Add(venuesFromAPI[i]);
                }
            }

            // // PUT VENUES FROM API TO DB IF MISSING
            if (missingVenuesFromDB.Count != 0)
            {
                await DatabaseHandler.PutVenuesToDatabase(venueContext, missingVenuesFromDB);
            }


            _logger.LogInformation($"DB venues with lat: {lat} and lng: {lng}");
            venuesFromDB.ForEach(venue =>
            {
                _logger.LogInformation($"     name: {venue.VenueName},     address: {venue.Address}");
            });

            _logger.LogInformation($"API venues with lat: {lat} and lng: {lng}");
            venuesFromAPI.ForEach(venue =>
            {
                _logger.LogInformation($"     name: {venue.VenueName},     address: {venue.Address}");
            });
            return(allVenues);
        }