private static void CategorizeMeal(Recipe recipe, CategorizationResult result, Analyzer analyzer)
        {
            IRecipeClassification trainedRecipe;
            if (analyzer.CheckIfTrained(recipe.Id, out trainedRecipe))
            {
                result.MealBreakfast = trainedRecipe.IsBreakfast;
                result.MealLunch = trainedRecipe.IsLunch;
                result.MealDinner = trainedRecipe.IsDinner;
                result.MealDessert = trainedRecipe.IsDessert;
            }
            else
            {
                var analysis = analyzer.GetPrediction(recipe);

                result.MealBreakfast =
                    analysis.FirstPlace.Equals(Category.Breakfast) ||
                    analysis.SecondPlace.Equals(Category.Breakfast);
                result.MealLunch =
                    analysis.FirstPlace.Equals(Category.Lunch) ||
                    analysis.SecondPlace.Equals(Category.Lunch);
                result.MealDinner =
                    analysis.FirstPlace.Equals(Category.Dinner) ||
                    analysis.SecondPlace.Equals(Category.Dinner);
                result.MealDessert =
                    analysis.FirstPlace.Equals(Category.Dessert) ||
                    analysis.SecondPlace.Equals(Category.Dessert);
            }
        }
 public CategorizationEngine(IDBLoader loader)
 {
     this.analyzer = new Analyzer();
     this.commonIngredients = (
         from i in loader.LoadCommonIngredients()
         select i)
         .ToDictionary(k => k.IngredientId);
     this.analyzer.LoadTrainingData(loader);
 }