Esempio n. 1
0
 public void AssemlyResolverTest()
 {
     // OrderBoxCoreLib test
     Customer customer = new Customer();
     // OrderBoxDomainsLib test
     DomOrder domOrder = new DomOrder();
 }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
        public void AddOrder(DomOrder o)
        {
            Order newOrder = DataDomainMapper.DomOrder2Order(o);

            _db.Order.Add(newOrder);
            _db.SaveChanges();
        }
Esempio n. 5
0
        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());
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        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"));
        }
Esempio n. 15
0
        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);
        }
Esempio n. 19
0
        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);
        }
Esempio n. 20
0
		public void AssemlyResolverTest()
		{
			// OrderBoxCoreLib test
			Customer customer = new Customer();
			// OrderBoxDomainsLib test
			DomOrder domOrder = new DomOrder();
		}