public static Step GetStep(int stepId) { var db = new YesChefContext(); return db.Steps .Include(s => s.Recipe) .Single(s => s.Id == stepId); }
public static RecipeInstanceStep FinishedChef(int recipeInstanceStepId) { var db = new YesChefContext(); var recipeInstanceStep = RecipeInstanceStepHandler.GetRecipeInstanceStep(recipeInstanceStepId, db); if (recipeInstanceStep == null) throw new Exception("Cannot find recipeInstanceStep"); //Make sure it's started if (recipeInstanceStep.Started == null) throw new Exception("Step not yet started!"); recipeInstanceStep.Finished = DateTime.Now; //can the recipe be marked as completed? var uncompletedRecipeInstanceSteps = (from ris in recipeInstanceStep.RecipeInstance.RecipeInstanceSteps where ris.Finished == null select ris).ToList(); if (uncompletedRecipeInstanceSteps.Count == 0) recipeInstanceStep.RecipeInstance.IsCompleted = true; //can the meal be marked as completed? var uncompletedRecipeInstances = (from x in recipeInstanceStep.RecipeInstance.Meal.RecipeInstances where !x.IsCompleted select x).ToList(); if (uncompletedRecipeInstances.Count == 0) recipeInstanceStep.RecipeInstance.Meal.IsCompleted = true; db.SaveChanges(); return recipeInstanceStep; }
public static List<Step> GetChildSteps(int recipeInstanceStepId) { var recipeInstanceStep = RecipeInstanceStepHandler.GetRecipeInstanceStep(recipeInstanceStepId); var db = new YesChefContext(); var steps = (from sd in db.StepDependancies where sd.ParentStepId == recipeInstanceStep.StepId select sd.ChildStep) .ToList(); //Pertinant recipe dependancies? if (recipeInstanceStep.Step.ChildStepDependancies.Count == 0) { //Is a dependancy on main recipe? if (recipeInstanceStep.RecipeInstance.RecipeId != recipeInstanceStep.Step.RecipeId) { var recipeDependancy = (from srd in db.StepRecipeDependancies where srd.RecipeId == recipeInstanceStep.Step.RecipeId && srd.DependantStep.RecipeId == recipeInstanceStep.RecipeInstance.RecipeId select srd).SingleOrDefault(); if (recipeDependancy != null) steps.Add(recipeDependancy.DependantStep); } } return steps; }
public static QuantityType CreateQuantityType(string name) { var db = new YesChefContext(); var qt = db.QuantityTypes.Add(new QuantityType { Name = name }); db.SaveChanges(); return qt; }
public static Recipe CreateRecipe(string name) { var db = new YesChefContext(); var recipe = db.Recipies.Add(new Recipe { Name = name }); db.SaveChanges(); return recipe; }
public static Ingredient GetIngredient(int ingredientId) { var db = new YesChefContext(); var ingredient = db.Ingredients .Include(i=>i.QuantityType) .Include(i=>i.Recipe) .Single(i=>i.Id==ingredientId); return ingredient; }
public static RecipeInstanceStep CreateRecipeInstanceStep(int recipeInstanceId, int stepId) { var db = new YesChefContext(); var recipeInstanceStep = db.RecipeInstanceSteps.Add(new RecipeInstanceStep { RecipeInstanceId = recipeInstanceId, StepId = stepId }); db.SaveChanges(); return recipeInstanceStep; }
public static Meal CreateMeal(string name, int sousChefId) { var db = new YesChefContext(); var meal = db.Meals.Add(new Meal { CreatedAt = DateTime.Now, Name = name, SousChefId = sousChefId }); db.SaveChanges(); return GetMeal(meal.Id); }
public static StepRecipeDependancy CreateStepRecipeDependancy(int stepId, int recipeId) { var db = new YesChefContext(); var stepRecipeDependancy = db.StepRecipeDependancies.Add(new StepRecipeDependancy { StepId = stepId, RecipeId = recipeId }); db.SaveChanges(); stepRecipeDependancy = GetstepRecipeDependancy(stepRecipeDependancy.Id); return stepRecipeDependancy; }
public static Ingredient CreateIngredient(int recipeId, int quantityTypeId, string name, int quantity) { var db = new YesChefContext(); var ingredient = db.Ingredients.Add(new Ingredient { RecipeId = recipeId, Name = name, QuantityTypeId = quantityTypeId, Quantity = quantity }); db.SaveChanges(); return GetIngredient(ingredient.Id); }
public static Step CreateStep(string description, int minutesDuration, int recipeId, bool isFreeTime = false) { var db = new YesChefContext(); var step = db.Steps.Add(new Step { Description = description, MinutesDuration = minutesDuration, RecipeId = recipeId, IsFreeTime = isFreeTime }); db.SaveChanges(); step = GetStep(step.Id); return step; }
public static SousChef CreateSousChef(string Name, string Email, string PlainTextPassword) { var db = new YesChefContext(); var sousChef = db.SousChefs.Add(new SousChef { Name = Name, EmailAddress = Email, PasswordHash = "spaceSaver" }); db.SaveChanges(); sousChef.PasswordHash = EncryptionHandler.CreateHash(PlainTextPassword, sousChef.Id); db.SaveChanges(); return sousChef; }
public static List<Step> GetParentSteps(int recipeInstanceStepId) { var recipeInstanceStep = RecipeInstanceStepHandler.GetRecipeInstanceStep(recipeInstanceStepId); var db = new YesChefContext(); var parentSteps = (from sd in db.StepDependancies where sd.ChildStepId == recipeInstanceStep.Step.Id select sd.ParentStep).ToList(); //Any parent recipies? var stepRecipeDependancies = (from srd in db.StepRecipeDependancies where srd.StepId == recipeInstanceStep.StepId select srd).ToList(); if (stepRecipeDependancies.Count > 1) throw new Exception("Can have only 1 or 0 parent recipe dependancies per step"); if (stepRecipeDependancies.Count == 1) { //Get terminating steps parentSteps.AddRange((from s in stepRecipeDependancies[0].Recipe.Steps where s.ChildStepDependancies.Count == 0 select s).ToList()); } return parentSteps; }
public static StepDependancy CreateStepDependancy(int parentStepId, int childStepId) { var db = new YesChefContext(); //Ensure dependancy doesn't already exist var existingStepDependancies = (from sd in db.StepDependancies where sd.ParentStepId == parentStepId && sd.ChildStepId == childStepId select sd).ToList(); if (existingStepDependancies.Count > 0) throw new Exception("This Step Dependancy already exists"); var stepDependancy = db.StepDependancies.Add(new StepDependancy { ParentStepId = parentStepId, ChildStepId = childStepId }); db.SaveChanges(); return stepDependancy; }
public static RecipeInstance CreateRecipeInstance(int recipeId, int mealId) { var db = new YesChefContext(); var recipeInstance = db.RecipeInstances.Add(new RecipeInstance { MealId = mealId, RecipeId = recipeId }); //Add steps from recipe var recipe = RecipeHandler.GetRecipe(recipeId); foreach (var step in recipe.Steps) { recipeInstance.RecipeInstanceSteps.Add(new RecipeInstanceStep() { StepId = step.Id }); //Add steps from connected recipies var parentRecipe = (from x in db.StepRecipeDependancies where x.StepId==step.Id select x.Recipe).SingleOrDefault(); if (parentRecipe != null) { foreach (var parentRecipeStep in parentRecipe.Steps) { recipeInstance.RecipeInstanceSteps.Add(new RecipeInstanceStep() { StepId = parentRecipeStep.Id }); } } } db.SaveChanges(); recipeInstance = GetRecipeInstance(recipeInstance.Id); return recipeInstance; }
private static StepRecipeDependancy GetstepRecipeDependancy(int stepRecipeDependancyId) { var db = new YesChefContext(); var stepRecipeDependancy = db.StepRecipeDependancies.Find(stepRecipeDependancyId); return stepRecipeDependancy; }
public static SousChef GetSousChef(int sousChefId) { var db = new YesChefContext(); var sousChef = db.SousChefs.Find(sousChefId); return sousChef; }
public static Recipe GetRecipe(int recipeId) { var db = new YesChefContext(); var recipe = db.Recipies.Find(recipeId); return recipe; }
public static List<Recipe> GetAllRecipies() { var db = new YesChefContext(); return db.Recipies.ToList(); }
public static QuantityType GetQuantityType(int quantityTypeId) { var db = new YesChefContext(); return db.QuantityTypes.Find(quantityTypeId); }
public static List<QuantityType> GetAllQuantityTypes() { var db = new YesChefContext(); return db.QuantityTypes.ToList(); }
public static RecipeInstanceStep GetRecipeInstanceStep(int recipeInstanceStepId) { var db = new YesChefContext(); return GetRecipeInstanceStep(recipeInstanceStepId, db); }
public static RecipeInstanceStep GetRecipeInstanceStep(int recipeInstanceStepId, YesChefContext db) { return db.RecipeInstanceSteps.Find(recipeInstanceStepId); }
public static Meal GetMeal(int mealId) { var db = new YesChefContext(); var meal = db.Meals.Single(m => m.Id == mealId); return meal; }
public static RecipeInstanceStep YesChef(int recipeInstanceStepId) { var db = new YesChefContext(); var recipeInstanceStep = RecipeInstanceStepHandler.GetRecipeInstanceStep(recipeInstanceStepId, db); if (recipeInstanceStep == null) throw new Exception("Cannot find recipeInstanceStep"); recipeInstanceStep.Started = DateTime.Now; db.SaveChanges(); return recipeInstanceStep; }
public static RecipeInstance GetRecipeInstance(int recipeInstanceId) { var db = new YesChefContext(); var recipeInstance = db.RecipeInstances .Single(ri => ri.Id == recipeInstanceId); return recipeInstance; }