Esempio n. 1
0
        public async override Task ExecuteAsync()
        {
            Services.Log.Info("Hello from scheduled job!");

            if (!BreweryDBHelper.InsureBreweryDBIsInitialized(Services))
            {
                Services.Log.Error("Could not init BreweryDB API");
                return;
            }

            Services.Log.Info("BreweryDB is initialized");

            var context = new BeerDrinkinContext();

            foreach (var beerItem in context.BeerItems)
            {
                Services.Log.Info("updating beer " + beerItem.Name);
                var beer = await new BreweryDB.BreweryDBClient().QueryBeerById(beerItem.Id);
                if (beer == null)
                {
                    Services.Log.Error(string.Format("Could not get beer {0} with id {1}", beerItem.Name, beerItem.BreweryDBId));
                    continue;
                }
                //this call updates beerItem form BreweryDB beer object
                var newBeerItem = beer.ToBeerItem(beerItem);
            }
            await context.SaveChangesAsync();

            Services.Log.Info("UpdateBeerJob is completed!");
        }
Esempio n. 2
0
        // GET api/SearchBeer
        public async Task <List <Brewery> > Get(string keyword)
        {
            Services.Log.Info(string.Format("Search brewery call with keyword {0}", keyword));
            var rv = new List <Brewery>();

            if (!BreweryDBHelper.InsureBreweryDBIsInitialized(Services))
            {
                return(rv);
            }

            try
            {
                var results = await new BreweryDB.BreweryDBClient().SearchForBeer(keyword);
                if (results != null && results.Any())
                {
                    foreach (var r in results)
                    {
                        var brewery = new Brewery
                        {
                            Id          = r.Id,
                            Name        = r.Name,
                            Description = r.Description
                        };
                        rv.Add(brewery);
                    }
                }
            }
            catch (Exception ex)
            {
                Services.Log.Error(ex.Message);
            }

            return(rv);
        }
Esempio n. 3
0
        // GET api/SearchBeer
        public async Task <List <Beer> > Get(string keyword)
        {
            tracer.Info(string.Format("Search beer call with keyword {0}", keyword));
            var  rv       = new List <Beer>();
            bool needSave = false;

            if (!BreweryDBHelper.InsureBreweryDbIsInitialized(settings, tracer))
            {
                return(rv);
            }

            try
            {
                var results = await new BreweryDB.BreweryDBClient().SearchForBeer(keyword);

                if (results != null && results.Any())
                {
                    tracer.Info(string.Format("Found {0} beers", results.Count()));

                    var context = new BeerDrinkinContext();
                    foreach (var r in results)
                    {
                        //check if we already have beer in db
                        var beer = context.Beers.FirstOrDefault(f => f.BreweryDbId == r.Id);
                        if (beer == null)
                        {
                            tracer.Info(string.Format("Beer {0} wasn't logged yet", r.Name));
                            needSave = true;
                            try
                            {
                                beer = r.ToBeerItem();

                                context.Beers.Add(beer);
                            }
                            catch (Exception ex)
                            {
                                tracer.Error(string.Format("Exception creating beer: {0}", ex.Message));
                            }
                        }
                        rv.Add(beer);
                    }
                }
            }
            catch (Exception ex)
            {
                tracer.Error(ex.Message);
            }
            finally
            {
                if (needSave)
                {
                    await context.SaveChangesAsync();
                }
            }

            return(rv);
        }
 void ParseHelper_OnGotFavorites(bool success, List <string> result)
 {
     ParseHelper.OnGotFavorites         -= ParseHelper_OnGotFavorites;
     BreweryDBHelper.OnRequestCompleted += GotResults;
     BreweryDBHelper.GetBeerByIds(result);
 }
 public void Search(string query)
 {
     BreweryDBHelper.OnRequestCompleted += GotResults;
     BreweryDBHelper.Search(query);
 }