Example #1
0
 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;
        }
Example #3
0
        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;
        }
Example #5
0
        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;
        }
Example #8
0
        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;
        }
Example #10
0
        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);
        }
Example #11
0
        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;
        }
Example #12
0
        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;
        }
Example #13
0
        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;
 }
Example #17
0
 public static SousChef GetSousChef(int sousChefId)
 {
     var db = new YesChefContext();
     var sousChef = db.SousChefs.Find(sousChefId);
     return sousChef;
 }
Example #18
0
 public static Recipe GetRecipe(int recipeId)
 {
     var db = new YesChefContext();
     var recipe = db.Recipies.Find(recipeId);
     return recipe;
 }
Example #19
0
 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);
 }
Example #24
0
 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;
 }