示例#1
0
        private void SaveExecute(object obj)
        {
            using (var db = new BreweryContext())
            {
                if (Evaluation.ID == 0)
                {
                    Recipe recipe = db.Recipes.FirstOrDefault(r => r.ID == recipeId);
                    Evaluation.Recipe   = recipe;
                    Evaluation.RecipeID = recipe.ID;

                    db.Evaluations.Add(Evaluation);
                    db.SaveChanges();
                }
                else
                {
                    foreach (var criteria in Evaluation.Criterias)
                    {
                        db.Entry(criteria).State = EntityState.Modified;
                        db.SaveChanges();
                    }


                    db.Entry(Evaluation).State = EntityState.Modified;
                    db.SaveChanges();
                }
            }
        }
示例#2
0
        public Brewery GetById(long id)
        {
            Brewery brewery = breweryContext.Breweries.Find(id);

            if (brewery == null)
            {
                return(null);
            }

            breweryContext.Entry(brewery).Collection(x => x.Beers).Query()
            .Include(x => x.BeerProviders)
            .ThenInclude(x => x.Provider)
            .Load();
            return(brewery);
        }
        public Provider GetById(long id)
        {
            Provider provider = breweryContext.Providers.Find(id);

            if (provider == null)
            {
                return(null);
            }

            breweryContext.Entry(provider).Collection(x => x.BeerProviders).Query()
            .Include(x => x.Beer)
            .Load();

            return(provider);
        }
示例#4
0
 private void DeleteExecute(object obj)
 {
     if (obj is OverviewModel overview)
     {
         using var db = new BreweryContext();
         var recipe = db.Recipes.FirstOrDefault(r => r.ID == overview.RecipeID);
         if (recipe != null)
         {
             db.Entry(recipe).State = Microsoft.EntityFrameworkCore.EntityState.Deleted;
             db.Recipes.Remove(recipe);
             db.SaveChanges();
             InitModel();
         }
     }
 }
示例#5
0
        private void SaveRecipeExecute(object obj)
        {
            using var db = new BreweryContext();
            //Rezept neu

            if (recipeId == 0)
            {
                foreach (var phase in RecipePhases)
                {
                    var pumpIntervall = db.PumpIntervals.FirstOrDefault(p => p.ID == phase.PumpInterval.ID);
                    if (pumpIntervall != null)
                    {
                        phase.PumpInterval   = pumpIntervall;
                        phase.PumpIntervalID = pumpIntervall.ID;
                    }
                }

                Recipe recipe = new Recipe()
                {
                    Description = RecipeDescription,
                    Name        = RecipeName,
                    Ingredients = new List <Ingredient>(RecipeIngredients),
                    Phases      = new List <Phase>(RecipePhases),
                    IsFavorite  = false
                };

                db.Recipes.Add(recipe);
                db.SaveChanges();
            }
            else
            {
                //Rezept schon vorhanden

                var recipe = db.Recipes.FirstOrDefault(r => r.ID == recipeId);

                if (recipe != null)
                {
                    foreach (var phase in RecipePhases)
                    {
                        var pumpIntervall = db.PumpIntervals.FirstOrDefault(p => p.ID == phase.PumpInterval.ID);
                        if (pumpIntervall != null)
                        {
                            phase.PumpInterval   = pumpIntervall;
                            phase.PumpIntervalID = pumpIntervall.ID;
                        }
                    }

                    recipe.Description = RecipeDescription;
                    recipe.Name        = RecipeName;
                    recipe.Ingredients = new List <Ingredient>(RecipeIngredients);
                    recipe.Phases      = new List <Phase>(RecipePhases);
                    recipe.IsFavorite  = false;

                    db.Entry(recipe).State = EntityState.Modified;
                    db.SaveChanges();

                    //Löschen der nicht mehr genutzten Ingredients in der DB
                    var dbRecipeIngredients = db.Ingredients.Where(i => i.RecipeID == recipe.ID);
                    foreach (var dbRecipeIngredient in dbRecipeIngredients)
                    {
                        var item = RecipeIngredients.FirstOrDefault(i => i.ID == dbRecipeIngredient.ID);
                        if (item == null)
                        {
                            db.Ingredients.Remove(dbRecipeIngredient);
                            db.SaveChanges();
                        }
                    }

                    //Löschen der nicht mehr genutzten Phases in der DB
                    var dbRecipePhases = db.Phases.Where(i => i.RecipeID == recipe.ID);
                    foreach (var dbRecipePhase in dbRecipePhases)
                    {
                        var item = RecipePhases.FirstOrDefault(i => i.ID == dbRecipePhase.ID);
                        if (item == null)
                        {
                            db.Phases.Remove(dbRecipePhase);
                            db.SaveChanges();
                        }
                    }
                }
            }
        }
示例#6
0
 public void Save(BeerProvider beerProvider)
 {
     breweryContext.Entry(beerProvider).State = EntityState.Modified;
 }