Exemple #1
0
        public static Meals GetMealWithID(int MealID)
        {
            string str = DataAccess.CnnVal(DataAccess.currentDBname);

            using (IDbConnection connection = new SqlConnection(str))
            {
                var   toReturn = connection.QueryFirst <Meals>("SELECT * FROM dbo.Dishes WHERE id=@id", new { id = MealID });
                Meals meal     = Meals.GetMealClassWithDishType(toReturn.Dishtype, toReturn);


                if (meal.GetType() == typeof(Burger))
                {
                    dynamic burgerData = connection.QuerySingle("SELECT * FROM dbo.Dishes WHERE Id=@dishid", new { dishid = meal.Id });
                    (meal as Burger).Bun    = burgerData.Bun;
                    (meal as Burger).Cheese = burgerData.Cheese;
                    (meal as Burger).Patty  = burgerData.Patty;
                }

                if (meal.GetType() == typeof(Pizza))
                {
                    dynamic pizzaData = connection.QuerySingle("SELECT * FROM dbo.Dishes WHERE Id=@dishid", new { dishid = meal.Id });
                    (meal as Pizza).Toppings = pizzaData.Toppings;
                }

                if (meal.GetType() == typeof(Pasta))
                {
                    dynamic pastaData = connection.QuerySingle("SELECT * FROM dbo.Dishes WHERE Id=@dishid", new { dishid = meal.Id });
                    (meal as Pasta).Meat      = pastaData.Meat;
                    (meal as Pasta).Pastatype = pastaData.Pastatype;
                }

                if (meal.GetType() == typeof(Steak))
                {
                    dynamic steakData = connection.QuerySingle("SELECT * FROM dbo.Dishes WHERE Id=@dishid", new { dishid = meal.Id });
                    (meal as Steak).Steaktype = steakData.Steaktype;
                    (meal as Steak).Side      = steakData.Side;
                }

                if (meal.GetType() == typeof(Drinks))
                {
                    dynamic drinkData = connection.QuerySingle("SELECT * FROM dbo.Dishes WHERE Id=@dishid", new { dishid = meal.Id });
                    (meal as Drinks).Amount      = (int)drinkData.Amount;
                    (meal as Drinks).isAlcoholic = drinkData.isAlcoholic;
                }

                var allergens = connection.Query <Allergen.AllergenType>("SELECT AllergenId FROM AllergensInDishes WHERE DishId=@id", new { id = MealID }).ToArray();
                foreach (var allergenAsInt in allergens)
                {
                    meal.AddAllergen(allergenAsInt);
                }

                return(meal);
            }
        }