void KeywordProInclude(List <string> pro, List <RecipeObj> results) { bool added = false; if (pro.Count > 0) { foreach (string recipeName in Model.recipes.Keys) { RecipeObj r = Model.recipes[recipeName]; foreach (string word in pro) {//need to match all pro to pass recipe to results if (WordInRecipe(r, word) && !results.Contains(r) && !added) { results.Add(r); Trace.WriteLine(string.Format("adding recipe {0} because it contains {1} and results.contains() is {2}", r.name, word, results.Contains(r))); added = true; } added = false; } } } else { foreach (string name in Model.recipes.Keys) { results.Add(Model.recipes[name]); } } }
// TODO: filter the results via favorited. public void FavoriteRecipes() { string imagePath = Constants.Paths_Images.getImagesRecipesBasePath(); paneLabel.Content = "Your Favorites"; recipeList.Children.Clear(); noRecipe("", false); Trace.WriteLine(string.Format("root = {0} and Recipes = {1}", Constants.GetRootFolder(), imagePath)); if (Model.user.favorites.Count > 0) { foreach (string recipe in Model.user.favorites) { if (Model.recipes.ContainsKey(recipe)) { RecipeObj recipeObj = Model.recipes[recipe]; recipeList.Children.Add(new ViewRecipeListElement(recipeObj.name, imagePath + recipeObj.image_thumb, recipeObj.difficulty, recipeObj.ethnicity, recipeObj.steps.Count())); } } } else { noRecipe("You Have No Favorites", true); } paneLabel.Content = "Your Favorites"; }
public ViewRecipeListElement(RecipeObj r) { InitializeComponent(); RecipeName = r.name; ImgPath = r.image; Difficulty = r.difficulty; Ethnicity = r.ethnicity; Steps = r.totalSteps; }
public void ConfigRecipe() { RecipeObj recipe = Model.recipe; Trace.WriteLine(string.Format("config Recipe called with current step= {0}", recipe.currentStep)); RecipeEndLabel.Text = String.Format("Recipe Complete : {0}\n{1}", recipe.name, recipe.steps[recipe.totalSteps - 1][1]); string path = Constants.Paths_Images.getImagesRecipesBasePath() + recipe.steps[recipe.totalSteps - 1][0]; RecipeEndImage.Source = Constants.PathToSource(path); Uid = recipe.Uids[recipe.totalSteps]; }
public void ConfigRecipe() { RecipeObj recipe = Model.recipe; progress.Value = 0; progress.Maximum = recipe.totalSteps; string path = Constants.Paths_Images.getImagesRecipesBasePath() + recipe.steps[0][0]; RecipeStepImage.Source = Constants.PathToSource(path); RecipeStepTitle.Text = recipe.steps[0][1]; RecipeStepText.Text = recipe.steps[0][2]; }
public void RefreshStep() { RecipeObj recipe = Model.recipe; double stepNum = recipe.currentStep; string[] step = recipe.steps[(int)stepNum]; Trace.WriteLine(string.Format("configure recipeStep {0} for stepName {1} and stepText {2}", Model.recipe.currentStep, step[1], step[2])); RecipeStepTitle.Text = step[1]; Trace.Write(string.Format("refresh Uid from {0}", Uid)); Trace.WriteLine(string.Format("to {0}", Uid)); Uid = Model.recipe.Uids[Model.recipe.currentStep]; MainWindow._viewRecipe.SwapGuid(this); string path = Constants.Paths_Images.getImagesRecipesBasePath() + step[0]; RecipeStepImage.Source = Constants.PathToSource(path); RecipeStepText.Text = step[2]; progress.Value = stepNum + 1; }
Boolean WordInRecipe(RecipeObj r, string word) { //get fully upercase variants of all relevant text fields string NAME = r.name.ToUpper(); string ETH = r.ethnicity.ToUpper(); string DIFF = r.difficulty.ToUpper(); List <string> INGRED = new List <string>(); foreach (string[] i in r.ingredients) { INGRED.Add(i[1].ToUpper()); } string WORD = word.ToUpper(); //test keyword matching now; if (NAME.Contains(WORD)) { Trace.WriteLine(string.Format("recipe {0} contains {1} in name", r.name, WORD)); return(true); } if (ETH.Contains(WORD)) { Trace.WriteLine(string.Format("recipe {0} contains {1} in ethnicity", r.name, WORD)); return(true); } if (DIFF.Contains(WORD)) { Trace.WriteLine(string.Format("recipe {0} contains {1} in difficulty", r.name, WORD)); return(true); } foreach (string I in INGRED) { Trace.WriteLine(string.Format("testing ingredient {0} or .contains() {1}", I, WORD)); if (I.Contains(WORD)) { Trace.WriteLine(string.Format("recipe {0} contains {1} in ingredients", r.name, WORD)); return(true); } } return(false); }
public void PopularRecipes() { Trace.WriteLine("entry of PopularRecipes() in viewHomeTemplate"); recipeList.Children.Clear(); noRecipe("", false); Trace.WriteLine(string.Format("Recipes = {0}", Constants.Paths_Images.getImagesRecipesBasePath())); if (Model.recipes.ToArray().Length > 0) { foreach (string recipe in Model.recipes.Keys) { RecipeObj recipeObj = Model.recipes[recipe]; Trace.WriteLine(String.Format("assigning {0} image {1} at {2}", recipeObj.name, recipeObj.image_thumb, Constants.Paths_Images.getImagesRecipesBasePath() + recipeObj.image_thumb)); recipeList.Children.Add(new ViewRecipeListElement(recipeObj.name, Constants.Paths_Images.getImagesRecipesBasePath() + recipeObj.image_thumb, recipeObj.difficulty, recipeObj.ethnicity, recipeObj.steps.Count())); } } else { noRecipe("No Recipes Available", true); } paneLabel.Content = "Dishes of the Day"; Trace.WriteLine(String.Format("size of recipeList = {0}", this.ActualHeight)); Trace.WriteLine(" exit from PopularRecipes() in viewHomeTemplate"); }
public void GetRecipesFromFile() { // String path = Constants.root + Constants.Paths_Data.Recipes; String[] directories = Directory.GetDirectories(Constants.Paths_Data.GetDatabaseRecipeFolderPath()); string recipeFile = "\\recipe"; Trace.WriteLine("loading recipes from file"); foreach (string dir in directories) { Trace.Write(String.Format("loading {0} which splits to ", dir)); foreach (string piece in dir.Split('\\')) { Trace.Write(piece + ", "); } Trace.WriteLine(String.Format(" with {0} elements", dir.Split('\\').Length)); Trace.WriteLine(String.Format(" Last element is element {0}", dir.Split('\\').Length - 1)); string recipeName = dir.Split('\\')[dir.Split('\\').Length - 1]; Trace.Write(String.Format("found {0}, loading file {1}", recipeName, dir + recipeFile)); StreamReader file = new StreamReader(Constants.Paths_Data.GetDatabaseRecipeFilePath(recipeName)); RecipeObj r = new RecipeObj(file); recipes.Add(r.name, r); } }