Exemplo n.º 1
0
 public void UpdateDefaultMenuRestaurant(DefaultMenuRestaurant rest)
 {
     log.DebugFormat("[UpdateDefaultMenuRestaurant] CuisineMap={0}.", rest.Name);
     using (Restaurants restaurantsDb = new Restaurants())
     {
         MongoEntityRepositoryBase<DefaultMenuRestaurant> basicData =
                       new MongoEntityRepositoryBase<DefaultMenuRestaurant>(restaurantsDb.DB);
         basicData.Update(rest);
     }
 }
Exemplo n.º 2
0
 public static void Update(RestaurantBasicData restaurant)
 {
     log.DebugFormat("[UpdateRestaurant(RestaurantBasicData)] RestaurantBasicData={0}.", restaurant.ToString());
     restaurant.UpdatedAt = DateTime.UtcNow;
     if (restaurant.Image == null)
     {
         RestaurantBasicData previousRest = GetRestaurantBasic.GetById(restaurant.Id.ToString());
         if (previousRest.Image != null)
         {
             restaurant.Image = previousRest.Image;
         }
     }
     using (Restaurants restaurantsDb = new Restaurants())
     {
         MongoEntityRepositoryBase<RestaurantBasicData> basicData =
                         new MongoEntityRepositoryBase<RestaurantBasicData>(restaurantsDb.DB);
         basicData.Update(restaurant);
     }
 }
Exemplo n.º 3
0
        public List<LoadDBStatus> DoLoad()
        {
            MongoEntityRepositoryBase<ProductBasicData> mongoRepository = new MongoEntityRepositoryBase<ProductBasicData>(m_db);

            List<LoadDBStatus> returnValue = new List<LoadDBStatus>();
            log.Info("[DoLoad] started.");
            foreach (var file in m_filesForLoadingToDB)
            {
                LoadDBStatus loadStat = new LoadDBStatus();

                loadStat.File = file;
                try
                {
                    string html = File.ReadAllText(file);
                    ProductBasicDataFetcher fetcher = new ProductBasicDataFetcher(html);
                    var products = fetcher.FetchProducts();
                    foreach (var item in products)
                    {
                        item.Category = file;
                        var producExistInDB = mongoRepository.GetSingle(item.Barcode);
                        if (producExistInDB == null)
                        {
                            log.DebugFormat("Inserts new product to DB ={0}.", item);
                            mongoRepository.Add(item);

                        }
                        else
                        {
                            log.DebugFormat("Updates {0}.", item);
                            mongoRepository.Update(item);
                        }
                    }

                }
                catch (Exception ex)
                {
                    log.ErrorFormat("[DoLoad] Problem on loading file={0}, exception={1}.", file, ex);
                    loadStat.ErrorException = ex;
                }
                returnValue.Add(loadStat);
            }
            return returnValue;
        }
Exemplo n.º 4
0
 public void UpdateIngredient(Ingredient ingredient)
 {
     log.DebugFormat("[UpdateIngredient] Ingredient={0}.", ingredient.LongDesc.GetDescription());
     //ingredient.UpdatedAt = DateTime.UtcNow;
     using (Restaurants restaurantsDb = new Restaurants())
     {
         MongoEntityRepositoryBase<Ingredient> basicData =
                       new MongoEntityRepositoryBase<Ingredient>(restaurantsDb.DB);
         basicData.Update(ingredient);
     }
 }
Exemplo n.º 5
0
 public void UpdateGeneralDish(GeneralDish generalDish)
 {
     log.DebugFormat("[UpdateGeneralDish] GeneralDish={0}.", generalDish.Dish.Name);
     //ingredient.UpdatedAt = DateTime.UtcNow;
     using (Restaurants restaurantsDb = new Restaurants())
     {
         MongoEntityRepositoryBase<GeneralDish> basicData =
                       new MongoEntityRepositoryBase<GeneralDish>(restaurantsDb.DB);
         basicData.Update(generalDish);
     }
 }
Exemplo n.º 6
0
 public void UpdateCoupon(CouponType coupon)
 {
     log.DebugFormat("[UpdateCoupon(CouponType)] couponId={0}.", coupon.Id.ToString());
     using (Restaurants restaurantsDb = new Restaurants())
     {
         MongoEntityRepositoryBase<CouponType> basicData =
                       new MongoEntityRepositoryBase<CouponType>(restaurantsDb.DB);
         basicData.Update(coupon);
     }
 }
Exemplo n.º 7
0
        private static void UpdateExtendedData()
        {
            CrawledProducts productsDb = new CrawledProducts();
            MongoEntityRepositoryBase<ProductBasicData> basicData = new MongoEntityRepositoryBase<ProductBasicData>(productsDb.DB);
            List<ProductBasicData> products = basicData.GetAll().ToList();

            log.InfoFormat("Found {0} products for fetching", products.Count);
            //foreach (var item in allFiles)
            //{
            //string html = File.ReadAllText(item);
            //ProductBasicDataFetcher fetcher = new ProductBasicDataFetcher(html);
            ProductFetcher extendDataFetcher = new ProductFetcher();
            ProductDataExtendedDataBuilder builder = new ProductDataExtendedDataBuilder();

            //act
            //products = fetcher.FetchProducts();
            int count = 0;
            foreach (var product in products)
            {
                try
                {
                    if (product.ExtendedData != null)
                        continue;
                    //product.Category = item;
                    string crawledHtml = extendDataFetcher.GetProductExtendedData(product);
                    product.ExtendedData = builder.Build(crawledHtml);
                    basicData.Update(product);
                    count++;
                    int nutritionTableCount = 0;
                    if (product.ExtendedData != null && product.ExtendedData.NutritionTable != null)
                    {
                        nutritionTableCount = product.ExtendedData.NutritionTable.Count;
                        log.InfoFormat("Product fetched = {0} Product Name = {2} nutritionTableCount = {1}.", count, nutritionTableCount, product.ProductName);
                    }
                }
                catch (Exception ex)
                {
                    log.WarnFormat("Problem on updating extended data product={0}, ex={1}.", product, ex);

                }
                System.Threading.Thread.Sleep(400);
            }
        }
Exemplo n.º 8
0
 public void UpdateOperatorMap(OperatorMap map)
 {
     log.InfoFormat("[UpdateOperatorMap] OperatorMap={0}.", map.Name);
     using (Restaurants restaurantsDb = new Restaurants())
     {
         MongoEntityRepositoryBase<OperatorMap> basicData =
                       new MongoEntityRepositoryBase<OperatorMap>(restaurantsDb.DB);
         basicData.Update(map);
     }
 }
Exemplo n.º 9
0
 public void UpdateCuisineMap(CuisineMap map)
 {
     log.DebugFormat("[UpdateCuisineMap] CuisineMap={0}.", map.Name);
     using (Restaurants restaurantsDb = new Restaurants())
     {
         MongoEntityRepositoryBase<CuisineMap> basicData =
                       new MongoEntityRepositoryBase<CuisineMap>(restaurantsDb.DB);
         basicData.Update(map);
     }
 }
Exemplo n.º 10
0
 public void UpdateRestaurant(RestaurantBasicData restaurant)
 {
     log.DebugFormat("[UpdateRestaurant(RestaurantBasicData)] RestaurantBasicData={0}.", restaurant.ToString());
     restaurant.UpdatedAt = DateTime.UtcNow;
     using (Restaurants restaurantsDb = new Restaurants())
     {
         MongoEntityRepositoryBase<RestaurantBasicData> basicData =
                       new MongoEntityRepositoryBase<RestaurantBasicData>(restaurantsDb.DB);
         basicData.Update(restaurant);
     }
 }
Exemplo n.º 11
0
 public void UpdateRestaurantOsm(RestaurantOsm restaurant)
 {
     string restId = restaurant.Id != null ? restaurant.Id.ToString() : "";
     log.DebugFormat("[UpdateRestaurantOsm] restaurant.Id={0}.", restId);
     restaurant.UpdatedAt = DateTime.UtcNow;
     //using (ImportedRestaurants restaurantsDb = new ImportedRestaurants())
     using (FinlandSwedenOSMRestaurants restaurantsDb = new FinlandSwedenOSMRestaurants())
     {
         MongoEntityRepositoryBase<RestaurantOsm> basicData =
                       new MongoEntityRepositoryBase<RestaurantOsm>(restaurantsDb.DB);
         basicData.Update(restaurant);
     }
 }
Exemplo n.º 12
0
        public static void Extract(MongoEntityRepositoryBase<RecipeBasicData> mongoRepository, string recipeId)
        {
            RecipeBasicData recipe = mongoRepository.GetSingle(recipeId);
            if (recipe == null || recipe.RawHtmlResponse == null)
                return;

            try
            {
                HtmlDocument htmlDoc = new HtmlDocument();
                htmlDoc.LoadHtml(recipe.RawHtmlResponse);

                HtmlNode titleNode = htmlDoc.DocumentNode.SelectSingleNode("//span[@class='articletitle']");
                recipe.Name = titleNode.InnerText;

                HtmlNode descriptionNode = htmlDoc.DocumentNode.SelectSingleNode("//meta[@name='description']/@content");
                recipe.Description = descriptionNode.GetAttributeValue("content", null);

                HtmlNode autherNode = htmlDoc.DocumentNode.SelectSingleNode("//a[@id[contains(., 'lnkAuthor')]]");
                recipe.Author = autherNode.InnerText;

                HtmlNode directionsNode = htmlDoc.DocumentNode.SelectSingleNode("//span[@class='ArticleContent' and @id[contains(., 'lblArticle')]]");
                recipe.Directions = directionsNode.InnerHtml;

                HtmlNode ingredientsNode = htmlDoc.DocumentNode.SelectSingleNode("//span[@class='ArticleContent' and @id[contains(., 'lblIngredients')]]");
                recipe.Ingredients = ExtractIngredients(ingredientsNode);

                recipe.NutritionFacts = SumIngredientsNutritionFacts(recipe.Ingredients);

                HtmlNodeCollection tagsNodes = htmlDoc.DocumentNode.SelectNodes("//div[@id[contains(., 'TagsDiv')]]/a");
                recipe.Labels = ExtractLabels(tagsNodes);

                mongoRepository.Update(recipe);
            }
            catch (Exception e)
            {
                log.ErrorFormat("Failed to extract recipe {0}. Failed to load the document. {1}", recipeId, e);
            }
        }
Exemplo n.º 13
0
 public static void UpdateUserMealProfile(UserMealProfile userMealProfile)
 {
     using (Restaurants restaurantsDb = new Restaurants())
     {
         MongoEntityRepositoryBase<UserMealProfile> basicData =
                       new MongoEntityRepositoryBase<UserMealProfile>(restaurantsDb.DB);
         basicData.Update(userMealProfile);
     }
 }