public void AssemlyResolverTest() { // OrderBoxCoreLib test Customer customer = new Customer(); // OrderBoxDomainsLib test DomOrder domOrder = new DomOrder(); }
public void TestOrderMap() { //Arrange DomOrder testDOrder1 = new DomOrder("test", 0, DateTime.Now, 0, new List <DomPizza>()); List <DomPizza> pizzaList1 = new List <DomPizza>(); pizzaList1.Add(new DomPizza(0, 0, new List <DomPizzaTopping>())); DomOrder testDOrder2 = new DomOrder("test", 0, DateTime.Now, 0, pizzaList1); List <DomPizza> pizzaList2 = new List <DomPizza>(); List <DomPizzaTopping> toppingList1 = new List <DomPizzaTopping>(); toppingList1.Add(new DomPizzaTopping(0)); pizzaList2.Add(new DomPizza(0, 0, toppingList1)); DomOrder testDOrder3 = new DomOrder("test", 0, DateTime.Now, 0, pizzaList2); //Act var testOrder1 = DataDomainMapper.DomOrder2Order(testDOrder1); var testOrder2 = DataDomainMapper.DomOrder2Order(testDOrder2); var testOrder3 = DataDomainMapper.DomOrder2Order(testDOrder3); //Assert Assert.IsInstanceOfType(testOrder1, typeof(Order)); Assert.IsInstanceOfType(testOrder2, typeof(Order)); Assert.IsInstanceOfType(testOrder3, typeof(Order)); }
public void TestAboveMaxCost() { //Arrange List <DomPizzaTopping> top = new List <DomPizzaTopping>(); top.Add(new DomPizzaTopping()); top.Add(new DomPizzaTopping()); top.Add(new DomPizzaTopping()); top.Add(new DomPizzaTopping()); top.Add(new DomPizzaTopping()); List <DomPizza> pizzas1 = new List <DomPizza>(); for (int i = 0; i < 100; i++) { pizzas1.Add(new DomPizza(3, 2, top)); } DomOrder testOrder = new DomOrder("Test", 0, DateTime.Now, 0, pizzas1); bool isTooMuch; //Act isTooMuch = testOrder.IsAboveMaximumCost(); //Assert Assert.IsFalse(isTooMuch); }
public void AddOrder(DomOrder o) { Order newOrder = DataDomainMapper.DomOrder2Order(o); _db.Order.Add(newOrder); _db.SaveChanges(); }
public void RemoveOrder(DomOrder o) { Order remOrder = DataDomainMapper.DomOrder2Order(o); Pizza[] pizzas = _db.Pizza.Where(p => p.OrderId == remOrder.Id).ToArray(); _db.Pizza.RemoveRange(pizzas); _db.Order.Remove(remOrder); _db.SaveChanges(); }
public IActionResult Index() { string username = HttpContext.Session.GetString("Username"); if (string.IsNullOrEmpty(username)) { return(View()); } DomOrder actOrder = ORepo.GetActiveOrder(username); if (actOrder == null) { return(View()); } actOrder.Pizzas = PRepo.GetOrderPizzas(actOrder); foreach (var p in actOrder.Pizzas) { p.PizzaToppings = PRepo.GetPizzaToppings(p); p.CalculateCost(); } OrderModel order = new OrderModel(); order.cost = actOrder.Cost; switch ((OrderStatus)actOrder.OrderStatus) { case OrderStatus.Sent: order.OrderStatus = "sent"; break; case OrderStatus.Received: order.OrderStatus = "received"; break; case OrderStatus.Cooking: order.OrderStatus = "in the oven"; break; case OrderStatus.Delivering: order.OrderStatus = "on the way"; break; } order.locationAddress = LRepo.GetLocation(actOrder.LocationId).Address; foreach (var p in actOrder.Pizzas) { PizzaModel inPizza = new PizzaModel(); inPizza.Cost = p.Cost; inPizza.Crust = p.Crust; inPizza.Size = p.Size; foreach (var t in p.PizzaToppings) { inPizza.toppings.Add(PRepo.GetTopping(t.ToppingId).ToppingName); } order.Pizzas.Add(inPizza); } return(View(order)); }
public void OrderCostTest() { //arrange List <DomPizzaTopping> top1 = new List <DomPizzaTopping>(); top1.Add(new DomPizzaTopping()); top1.Add(new DomPizzaTopping()); List <DomPizzaTopping> top2 = new List <DomPizzaTopping>(); top2.Add(new DomPizzaTopping()); top2.Add(new DomPizzaTopping()); top2.Add(new DomPizzaTopping()); List <DomPizzaTopping> top3 = new List <DomPizzaTopping>(); top3.Add(new DomPizzaTopping()); top3.Add(new DomPizzaTopping()); top3.Add(new DomPizzaTopping()); top3.Add(new DomPizzaTopping()); top3.Add(new DomPizzaTopping()); List <DomPizza> pizzas1 = new List <DomPizza>(); pizzas1.Add(new DomPizza(0, 0, top1)); List <DomPizza> pizzas2 = new List <DomPizza>(); pizzas2.Add(new DomPizza(1, 1, top2)); pizzas2.Add(new DomPizza(2, 2, top3)); decimal Result1; decimal Result2; decimal Result3; //Act //Empty order DomOrder order1 = new DomOrder("test", 0, DateTime.Now, 0, new List <DomPizza>()); Result1 = order1.Cost; //Order with one pizza DomOrder order2 = new DomOrder("test", 0, DateTime.Now, 0, pizzas1); Result2 = order2.Cost; //Order with two pizzas DomOrder order3 = new DomOrder("test", 0, DateTime.Now, 0, pizzas2); Result3 = order3.Cost; //Assert Assert.AreEqual(0.0m, Result1); Assert.AreEqual(5.0m, Result2); Assert.AreEqual(11.75m + 17.0m, Result3); }
public void OrderInitializationTest() { //arrange List <DomPizza> pizzas = new List <DomPizza>(); // act DomOrder domOrder = new DomOrder("test", 1, DateTime.Now, 0, pizzas); // Assert Assert.IsInstanceOfType(domOrder, typeof(DomOrder)); }
public List <DomPizza> GetOrderPizzas(DomOrder o) { List <Pizza> inPizzas = _db.Pizza.Where <Pizza>(p => p.OrderId == o.OrderID).ToList(); List <DomPizza> outPizzas = new List <DomPizza>(); foreach (var p in inPizzas) { outPizzas.Add(DataDomainMapper.Pizza2DomPizz(p)); } return(outPizzas); }
public IActionResult MakePizza() { //Should add price and number of pizzas validation here. OrderModel order = TempData.peek("Order"); DomOrder dOrder = new DomOrder(); dOrder.Cost = order.cost; if (dOrder.IsAtMaxPizzas()) { return(View("WarningMessage", "You've reached the pizza limit. Please remove a pizza to add a different one.")); } return(View()); }
public static DomOrder Order2DomOrder(Order inOrder) { List <DomPizza> domPizzas = new List <DomPizza>(); foreach (var p in inOrder.Pizza) { domPizzas.Add(Pizza2DomPizz(p)); } DomOrder outOrder = new DomOrder(inOrder.Username, inOrder.LocationId, inOrder.OrderDate, inOrder.OrderStatus, domPizzas); outOrder.Cost = inOrder.Cost; outOrder.OrderID = inOrder.Id; return(outOrder); }
static void CheckOut() { if (currOrder == null || currOrder.Pizzas.Count == 0) { Console.WriteLine("Add pizzas to your order before you checkout!"); WaitForInput(); return; } if (currUser == null) { Console.WriteLine("Can't check out unless you're signed in."); WaitForInput(); return; } currOrder.CalculateCost(); currOrder.OrderDate = DateTime.Now; currOrder.OrderStatus = (int)OrderStatus.Sent; DomOrder lastOrder = oRepo.GetMostRecentOrder(currUser); if (lastOrder != null) { if (currOrder.Within24Hours(lastOrder.OrderDate) && lastOrder.LocationId != currOrder.LocationId) { Console.WriteLine("You can't order from a location within 24 hours of ordering from a different location."); WaitForInput(); return; } if (currOrder.Within2Hours(lastOrder.OrderDate)) { Console.WriteLine("It's been less than 2 hours since your last order. Please wait to order again."); WaitForInput(); return; } } if (currOrder.IsAboveMaximumCost()) { Console.WriteLine("Your order costs too much. Please remove pizzas until it is less than $5,000."); WaitForInput(); return; } oRepo.AddOrder(currOrder); currOrder = null; Console.WriteLine("Your order has been sent! Enjoy your pizza!"); WaitForInput(); }
public void Within2HoursTest() { //Arrange DateTime passDate = DateTime.Now - TimeSpan.FromHours(3); DateTime failDate = DateTime.Now - TimeSpan.FromHours(.5); DomOrder order1 = new DomOrder("test", 0, DateTime.Now, 0, new List <DomPizza>()); //Act bool result1 = order1.Within2Hours(passDate); bool result2 = order1.Within2Hours(failDate); //Assert Assert.IsFalse(result1); Assert.IsTrue(result2); }
public IActionResult Checkout() { string username = HttpContext.Session.GetString("Username"); if (string.IsNullOrEmpty(username)) { return(View("WarningMessage", "You must be logged in to place an order.")); } int locId = (int)HttpContext.Session.GetInt32("LocationId"); OrderModel order = TempData.get("Order"); if (order.Pizzas.Count == 0) { return(View("WarningMessage", "Can't place an order with no pizzas. Please add pizzas to your order.")); } List <DomPizza> pList = new List <DomPizza>(); foreach (var p in order.Pizzas) { List <DomPizzaTopping> ptList = new List <DomPizzaTopping>(); foreach (var t in p.toppings) { int id = PRepo.GetToppingID(t); DomPizzaTopping pt = new DomPizzaTopping(id); ptList.Add(pt); } DomPizza pizza = new DomPizza(p.Crust, p.Size, ptList); pList.Add(pizza); } DomOrder DOrder = new DomOrder(username, locId, DateTime.Now, 0, pList); DomOrder lastOrder = ORepo.GetMostRecentOrder(URepo.GetUser(username)); DateTime lastDate = (lastOrder != null) ? lastOrder.OrderDate : DateTime.MinValue; if (DOrder.Within24Hours(lastDate) && DOrder.LocationId != lastOrder.LocationId) { TempData.Keep(); return(View("WarningMessage", "You ordered at a different location within the past 24 hours. Please order there again or wait to order from us.")); } if (DOrder.Within2Hours(lastDate)) { TempData.Keep(); return(View("WarningMessage", "You ordered within the last two hours.")); } ORepo.AddOrder(DOrder); TempData.Remove("Order"); return(RedirectToAction("Index", "Home")); }
static void OrderOptions() { if (currOrder == null) { currOrder = new DomOrder(); if (currUser != null) { UpdateOrderInfo(currUser.LocationId, currUser.Username); } } char choice; do { Console.Clear(); Console.WriteLine("Select what you'd like to do with your order: "); Console.WriteLine("(A)dd a Pizza | (R)emove a Pizza | (V)iew Your Order | (C)ancel Your Order | R(E)turn to Main Options"); string inp = Console.ReadLine(); if (inp == "") { inp = "a"; } choice = inp[0]; choice = char.ToLower(choice); switch (choice) { case 'a': AddPizza(); break; case 'r': RemovePizza(); break; case 'v': ViewOrder(); break; case 'c': CancelOrder(); break; } } while (choice != 'e'); }
public void AddPizzaTest() { //Arrange DomOrder testOrder = new DomOrder(); bool pizzaAdded = false; bool pizzaNotAdded = true; //Act for (int i = 0; i < 100; i++) { pizzaAdded = testOrder.AddPizza(new DomPizza(0, 0, new List <DomPizzaTopping>())); } pizzaNotAdded = testOrder.AddPizza(new DomPizza(0, 0, new List <DomPizzaTopping>())); //Assert Assert.IsTrue(pizzaAdded); Assert.IsFalse(pizzaNotAdded); }
public void RemovePizzaTest() { //Arrange DomOrder testOrder1 = new DomOrder(); DomPizza pizza1 = new DomPizza(0, 0, new List <DomPizzaTopping>()); testOrder1.AddPizza(pizza1); DomOrder testOrder2 = new DomOrder(); testOrder2.AddPizza(new DomPizza(0, 0, new List <DomPizzaTopping>())); //Act testOrder1.RemovePizza(pizza1); testOrder2.RemovePizza(0); //Assert Assert.AreEqual(0, testOrder1.Pizzas.Count); Assert.AreEqual(0, testOrder2.Pizzas.Count); }
public void MaxPizzaTest() { //Arrange DomOrder testOrder = new DomOrder(); bool atLimit = false; bool belowLimit = true; for (int i = 0; i < 99; i++) { testOrder.AddPizza(new DomPizza(0, 0, new List <DomPizzaTopping>())); } //Act belowLimit = testOrder.IsAtMaxPizzas(); testOrder.AddPizza(new DomPizza(0, 0, new List <DomPizzaTopping>())); atLimit = testOrder.IsAtMaxPizzas(); //Assert Assert.IsTrue(atLimit); Assert.IsFalse(belowLimit); }
public static Order DomOrder2Order(DomOrder inOrder) { Order outOrder = new Order() { Username = inOrder.Username, LocationId = inOrder.LocationId, OrderDate = inOrder.OrderDate, OrderStatus = inOrder.OrderStatus, Cost = inOrder.Cost }; if (inOrder.OrderID != null) { outOrder.Id = (int)inOrder.OrderID; } foreach (var p in inOrder.Pizzas) { outOrder.Pizza.Add(DomPizza2Pizza(p)); } return(outOrder); }