コード例 #1
0
ファイル: Program.cs プロジェクト: glennlarson/Meal-planner
        private static void SelectOption(MealContext db)
        {
            Console.WriteLine("Please Select an option by enter number of selection:");
            Console.WriteLine("1. Create new Meal");
            Console.WriteLine("2. View All Meals");
            Console.WriteLine("3. Exit Application");
            int selection = int.Parse(Console.ReadLine());

            if (selection == 1)
            {
                Console.Clear();
                CreateNewMeal(db);
            }
            else if (selection == 2)
            {
                Console.Clear();
                SelectAllMeals(db);
            }
            else if (selection == 3)
            {
                ExitApplication();
            }
            else
            {
                Console.WriteLine("Invalid Selection");
                Console.Clear();
                SelectOption(db);
            }
        }
コード例 #2
0
        public void MyTestMethod()
        {
            var options = new DbContextOptionsBuilder <MealContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using (var memoryCtx = new MealContext(options))
            {
                //ARRANGE
                var IngredientToUseInTest = new IngredientTO
                {
                    Id         = 1,
                    IsAllergen = true,
                    Name       = new MultiLanguageString("Ingr1EN", "Ingr1FR", "Ingr1NL")
                };

                IRepositoryDO_NOT_USE <IngredientTO, int> ingredientRepository2 = new IngredientRepository2(memoryCtx);

                //ACT
                ingredientRepository2.Create(IngredientToUseInTest);
                memoryCtx.SaveChanges();
                //MealToUseInTest.Id = 1;
                IngredientToUseInTest.IsAllergen = false;
                ingredientRepository2.Edit(IngredientToUseInTest);
                var qtdEntriesToAssert = memoryCtx.SaveChanges();

                var IngredientToAssert = ingredientRepository2.GetById(1);
                //ASSERT
                Assert.AreEqual(1, qtdEntriesToAssert);
                Assert.AreEqual(1, ingredientRepository2.GetAll().Count());
                Assert.AreEqual(1, IngredientToAssert.Id);
                Assert.IsFalse(IngredientToAssert.IsAllergen);
                Assert.AreEqual("Ingr1EN", IngredientToAssert.Name.English);
            }
        }
コード例 #3
0
        public void IRepositoryDeleteByTransfertObject_ShouldDelete_WhenValidTOIsProvided()
        {
            //ASSERT
            var options = new DbContextOptionsBuilder <MealContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using (var memoryCtx = new MealContext(options))
            {
                //ARRANGE
                var MealToUseInTest1 = new MealTO
                {
                    Id          = 0,
                    Name        = new MultiLanguageString("Meal1EN", "Meal1FR", "Meal1NL"),
                    Ingredients = new List <IngredientTO> {
                        new IngredientTO {
                            Id   = 1,
                            Name = new MultiLanguageString("Ingr1EN", "Ingr1FR", "Ingr1NL"), IsAllergen = false
                        }
                    },
                    Supplier = new SupplierTO {
                        Name = "Fournisseur1"
                    },
                    MealType = MealType.Sandwich
                };

                var MealToUseInTest2 = new MealTO
                {
                    Id          = 0,
                    Name        = new MultiLanguageString("Meal2EN", "Meal2FR", "Meal2NL"),
                    Ingredients = new List <IngredientTO> {
                        new IngredientTO {
                            Id   = 2,
                            Name = new MultiLanguageString("Ingr1EN", "Ingr1FR", "Ingr1NL"), IsAllergen = false
                        }
                    },
                    Supplier = new SupplierTO {
                        Name = "Fournisseur1"
                    },
                    MealType = MealType.Sandwich
                };

                var mealRepository = new MealRepository(memoryCtx);

                //ACT
                mealRepository.Add(MealToUseInTest1);
                mealRepository.Add(MealToUseInTest2);
                memoryCtx.SaveChanges();
                MealToUseInTest2.Id = 2;
                mealRepository.Remove(MealToUseInTest2);
                memoryCtx.SaveChanges();

                var retrievedMeals = mealRepository.GetAll();

                Assert.AreEqual(1, retrievedMeals.Count());
                Assert.IsFalse(retrievedMeals.Any(x => x.Id == 2));
            }
        }
コード例 #4
0
        public void IRepositoryDeleteByTranfertObject_ShouldThrowException_WhenDeletingANonExistantMeal()
        {
            //ASSERT
            var options = new DbContextOptionsBuilder <MealContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using (var memoryCtx = new MealContext(options))
            {
                //ARRANGE
                var MealToUseInTest1 = new MealTO
                {
                    Id          = 0,
                    Name        = new MultiLanguageString("Meal1EN", "Meal1FR", "Meal1NL"),
                    Ingredients = new List <IngredientTO> {
                        new IngredientTO {
                            Id   = 1,
                            Name = new MultiLanguageString("Ingr1EN", "Ingr1FR", "Ingr1NL"), IsAllergen = false
                        }
                    },
                    Supplier = new SupplierTO {
                        Name = "Fournisseur1"
                    },
                    MealType = MealType.Sandwich
                };

                var MealToUseInTest2 = new MealTO
                {
                    Id          = 0,
                    Name        = new MultiLanguageString("Meal2EN", "Meal2FR", "Meal2NL"),
                    Ingredients = new List <IngredientTO> {
                        new IngredientTO {
                            Id   = 2,
                            Name = new MultiLanguageString("Ingr1EN", "Ingr1FR", "Ingr1NL"), IsAllergen = false
                        }
                    },
                    Supplier = new SupplierTO {
                        Name = "Fournisseur1"
                    },
                    MealType = MealType.Sandwich
                };

                var mealRepository = new MealRepository(memoryCtx);

                //ACT
                mealRepository.Add(MealToUseInTest1);
                mealRepository.Add(MealToUseInTest2);
                memoryCtx.SaveChanges();
                MealToUseInTest2.Id = 2;
                mealRepository.Remove(MealToUseInTest2);
                memoryCtx.SaveChanges();

                //ASSERT
                Assert.ThrowsException <Exception>(() => mealRepository.Remove(MealToUseInTest2));
            }
        }
コード例 #5
0
        public void IRepositoryGetAll_ShouldRetrieveMeals_WhenCalled()
        {
            //ASSERT
            var options = new DbContextOptionsBuilder <MealContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using (var memoryCtx = new MealContext(options))
            {
                //ARRANGE
                var MealToUseInTest1 = new MealTO
                {
                    Id          = 0,
                    Name        = new MultiLanguageString("Meal1EN", "Meal1FR", "Meal1NL"),
                    Ingredients = new List <IngredientTO> {
                        new IngredientTO {
                            Id   = 1,
                            Name = new MultiLanguageString("Ingr1EN", "Ingr1FR", "Ingr1NL"), IsAllergen = false
                        }
                    },
                    Supplier = new SupplierTO {
                        Name = "Fournisseur1"
                    },
                    MealType = MealType.Sandwich
                };

                var MealToUseInTest2 = new MealTO
                {
                    Id          = 0,
                    Name        = new MultiLanguageString("Meal2EN", "Meal2FR", "Meal2NL"),
                    Ingredients = new List <IngredientTO> {
                        new IngredientTO {
                            Id   = 2,
                            Name = new MultiLanguageString("Ingr1EN", "Ingr1FR", "Ingr1NL"), IsAllergen = false
                        }
                    },
                    Supplier = new SupplierTO {
                        Name = "Fournisseur1"
                    },
                    MealType = MealType.Sandwich
                };

                var mealRepository = new MealRepository(memoryCtx);

                //ACT
                mealRepository.Add(MealToUseInTest1);
                mealRepository.Add(MealToUseInTest2);
                memoryCtx.SaveChanges();

                var retrievedMeals = mealRepository.GetAll();

                Assert.AreEqual(2, retrievedMeals.Count());
                Assert.AreEqual(1, retrievedMeals.FirstOrDefault().Id);
            }
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: glennlarson/Meal-planner
        private static void SelectAllMeals(MealContext db)
        {
            var meals = from m in db.Meals select m;

            foreach (Meal meal in meals)
            {
                Console.WriteLine("Id: {0}. Meat: {1}. Vegetable: {2}. Other Item:{3}.",
                                  meal.id, meal.meat, meal.vegetable, meal.otherItem);
            }
            Console.ReadLine();
            SelectOption(db);
        }
コード例 #7
0
        public MealsController(MealContext context)
        {
            _context = context;

            if (_context.MealItems.Count() == 0)
            {
                _context.MealItems.Add(new MealItem {
                    Name = "Item1"
                });
                _context.SaveChanges();
            }
        }
コード例 #8
0
ファイル: Utils.cs プロジェクト: standuptall/MealOrder
        public static CartHead GetCart(MealContext context, HttpRequestBase request, HttpResponseBase response)
        {
            var cook = request.Cookies.Get("meal_id");

            if (cook != null)
            {
                var cart = context.Cart.Where(c => c.meal_id == cook.Value)
                           .Include(c => c.Items)
                           .FirstOrDefault();
                if (cart.Closed)
                {
                    response.Cookies["meal_id"].Expires = DateTime.Now.AddDays(-1);
                }
                return(cart);
            }
            return(null);
        }
コード例 #9
0
        public static IHtmlString CartNumberOfItems(this HtmlHelper htmlHelper, HttpRequestBase request, HttpResponseBase response)
        {
            var    context = new MealContext();
            var    cart    = Utils.GetCart(context, request, response);
            double number  = 0;

            if (cart != null)
            {
                number = cart.Items.Select(c => c.Quantity).Sum();
            }
            var divprice = new TagBuilder("span");

            divprice.AddCssClass("badge badge-light");
            divprice.InnerHtml = ((int)number).ToString();
            var html = divprice.ToString(TagRenderMode.Normal);

            return(MvcHtmlString.Create(html));
        }
コード例 #10
0
        public void IRepositoryUpdate_ShouldUpdateInDb_WhenValidMealIsProvided()
        {
            var options = new DbContextOptionsBuilder <MealContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using (var memoryCtx = new MealContext(options))
            {
                //ARRANGE
                var MealToUseInTest = new MealTO
                {
                    Id          = 1,
                    Name        = new MultiLanguageString("Meal1EN", "Meal1FR", "Meal1NL"),
                    Ingredients = new List <IngredientTO> {
                        new IngredientTO {
                            Id   = 2,
                            Name = new MultiLanguageString("Ingr1EN", "Ingr1FR", "Ingr1NL"), IsAllergen = false
                        }
                    },
                    Supplier = new SupplierTO {
                        Name = "Fournisseur1"
                    },
                    MealType = MealType.Salad
                };

                var mealRepository = new MealRepository(memoryCtx);

                //ACT
                mealRepository.Add(MealToUseInTest);
                memoryCtx.SaveChanges();
                //MealToUseInTest.Id = 1;
                MealToUseInTest.MealType = MealType.Sandwich;
                mealRepository.Update(MealToUseInTest);
                memoryCtx.SaveChanges();

                var MealToAssert = mealRepository.GetById(1);
                //ASSERT
                Assert.AreEqual(1, mealRepository.GetAll().Count());
                Assert.AreEqual(1, MealToAssert.Id);
                Assert.AreEqual(2, MealToAssert.Ingredients.FirstOrDefault().Id);
                Assert.AreEqual("Meal1EN", MealToAssert.Name.English);
                Assert.AreEqual(MealType.Sandwich, MealToAssert.MealType);
            }
        }
コード例 #11
0
ファイル: Program.cs プロジェクト: glennlarson/Meal-planner
        private static void CreateNewMeal(MealContext db)
        {
            Meal AMeal = new Meal();

            Console.Write("Enter Meat: ");
            AMeal.meat = Console.ReadLine();
            Console.Write("Enter Vegetable: ");
            AMeal.vegetable = Console.ReadLine();
            Console.Write("Other Item: ");
            AMeal.otherItem = Console.ReadLine();
            Console.Clear();
            Console.WriteLine("Adding Meal");
            db.Meals.Add(AMeal);
            Console.WriteLine("Meal Added, now Saving Changes");
            db.SaveChanges();
            Console.WriteLine("Changes Saved");
            Console.ReadLine();
            Console.Clear();
            SelectOption(db);
        }
コード例 #12
0
        public void IRepositoryGetByID_ShouldRetrieveMeal_WhenValidIdIsProvided()
        {
            //ARRANGE
            var options = new DbContextOptionsBuilder <MealContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using (var memoryCtx = new MealContext(options))
            {
                var MealToUseInTest = new MealTO
                {
                    Id          = 0,
                    Name        = new MultiLanguageString("Meal1EN", "Meal1FR", "Meal1NL"),
                    Ingredients = new List <IngredientTO> {
                        new IngredientTO {
                            Id   = 1,
                            Name = new MultiLanguageString("Ingr1EN", "Ingr1FR", "Ingr1NL"), IsAllergen = false
                        }
                    },
                    Supplier = new SupplierTO {
                        Name = "Fournisseur1"
                    },
                    MealType = MealType.Sandwich
                };

                var mealRepository = new MealRepository(memoryCtx);

                //ACT
                mealRepository.Add(MealToUseInTest);
                memoryCtx.SaveChanges();
                var retrivedMeal = mealRepository.GetById(1);

                //ASSERT
                Assert.AreEqual(1, retrivedMeal.Id);
                Assert.AreEqual("Meal1EN", mealRepository.GetById(1).Name.English);
            }
        }
コード例 #13
0
 public IngredientRepository2(MealContext ContextIoC) : base(ContextIoC)
 {
     mealContext = ContextIoC ?? throw new ArgumentNullException($"{nameof(ContextIoC)} in IngredientRepository");
 }
コード例 #14
0
ファイル: Program.cs プロジェクト: glennlarson/Meal-planner
        static void Main(string[] args)
        {
            var db = new MealContext();

            SelectOption(db);
        }
コード例 #15
0
 public SupplierRepository2(MealContext ContextIoC) : base(ContextIoC)
 {
     mealContext = ContextIoC ?? throw new ArgumentNullException($"{nameof(ContextIoC)} in SupplierRepository");
     localRepo   = this;
 }
コード例 #16
0
        public static IHtmlString CartPreview(this HtmlHelper htmlHelper, HttpRequestBase request, HttpResponseBase response)
        {
            //    < div class="btn-group">
            //    <form class="p-4">
            //        <div class="dropdown-menu dropdown-menu-right p-4">
            //            <div class="row">
            //                <div class="col-md-6">Panino e panelle</div>
            //                <div class="col-md-6"><input type = "number" class="form-control" value="2" /></div>
            //            </div>
            //            <div class="dropdown-divider"></div>
            //            <div class="row">
            //                <div class="col-md-6">Coca cola</div>
            //                <div class="col-md-6"><input type = "number" class="form-control" value="2" onchange="cart_reload(1,this)" /></div>
            //            </div>
            //            <div class="dropdown-divider"></div>
            //        </div>
            //    </form>
            //</div>
            var context = new MealContext();
            var cart    = Utils.GetCart(context, request, response);
            var bd      = new StringBuilder();
            var divext  = new TagBuilder("div");

            divext.AddCssClass("btn-group");
            var form = new TagBuilder("div");

            form.Attributes.Add("style", "font-size:smaller!important;");
            form.AddCssClass("p-2");
            var divint = new TagBuilder("div");

            divint.AddCssClass("dropdown-menu dropdown-menu-right p-4");
            bd.Append(divext.ToString(TagRenderMode.StartTag));
            bd.Append(form.ToString(TagRenderMode.StartTag));
            bd.Append(divint.ToString(TagRenderMode.StartTag));
            if (cart == null || cart?.Items.Count == 0)
            {
                bd.Append("<div class=\"row\"><small>Nessun prodotto</small></div>");
            }
            else
            {
                var tb = "<table class=\"table table-borderless\">";
                tb += "<thead>";
                tb += "<tr>";
                tb += "<th scope=\"col\">Prodotto</th>";
                tb += "<th scope=\"col\">Quantità</th>";
                tb += "</tr></thead><tbody>";

                foreach (var row in cart.Items)
                {
                    tb += "<tr>";
                    tb += "<td>" + row.ItemName + "</td>";
                    tb += "<td>" + row.Quantity.ToString(CultureInfo.InvariantCulture) + "</td>";
                    tb += "</tr>";
                    //var divrow = new TagBuilder("div");
                    //divrow.AddCssClass("row");
                    //var col1 = new TagBuilder("div");
                    //col1.AddCssClass("col-md-6");
                    //col1.InnerHtml = "<small>"+row.ItemName+"</small>";
                    //var col2 = new TagBuilder("div");
                    //col2.AddCssClass("col-md-6");
                    //var input = new TagBuilder("input");
                    //input.AddCssClass("");
                    //input.Attributes.Add("type", "number");
                    //input.Attributes.Add("value", row.Quantity.ToString(CultureInfo.InvariantCulture));
                    //input.Attributes.Add("onchange", "cart_reload(" + row.CartRowId + ", this)");
                    //col2.InnerHtml = input.ToString(TagRenderMode.SelfClosing);
                    //bd.Append(divrow.ToString(TagRenderMode.StartTag));
                    //bd.Append(col1.ToString(TagRenderMode.Normal));
                    //bd.Append(col2.ToString(TagRenderMode.Normal));
                    //bd.Append(divrow.ToString(TagRenderMode.EndTag));
                }
                tb += "</tbody></table>";
                bd.Append(tb);
            }
            bd.Append(divext.ToString(TagRenderMode.EndTag));
            bd.Append(form.ToString(TagRenderMode.EndTag));
            bd.Append(divint.ToString(TagRenderMode.EndTag));
            return(MvcHtmlString.Create(bd.ToString()));
        }
コード例 #17
0
 public SupplierRepository(MealContext ContextIoC)
 {
     mealContext = ContextIoC ?? throw new ArgumentNullException($"{nameof(ContextIoC)} in SupplierRepository");
 }
コード例 #18
0
 public MealController(MealContext context)
 {
     Context = context;
 }