Example #1
0
        public void TestInvalidVoucherCode()
        {
            string  voucherCode = "NotARealVoucherCode";
            Voucher voucher     = new Voucher();

            voucher.VoucherCode = voucherCode;
            voucher.CheckValidVoucher(VR.GetWhere(voucherCode, null, true));
            Assert.AreEqual(false, voucher.IsValid);
        }
Example #2
0
        public void TestValidVoucherCode()
        {
            string  voucherCode = "2MEDIUMCOLL";
            Voucher voucher     = new Voucher();

            voucher.VoucherCode = voucherCode;
            voucher.CheckValidVoucher(VR.GetWhere(voucherCode, null, true));
            Assert.AreEqual(true, voucher.IsValid);
        }
Example #3
0
        public void TestInvalidDayVoucher()
        {
            // var today = DateTime.Today.DayOfWeek.ToString();
            string  today       = "Monday";
            string  voucherCode = "FAMFRIDAYCOLL";
            Voucher voucher     = new Voucher();

            voucher.VoucherCode = voucherCode;
            voucher.CheckValidVoucher(VR.GetWhere(voucherCode, null, true));
            Assert.AreNotEqual(today, voucher.ValidDay);
        }
Example #4
0
        public ActionResult Menu(string basePizza, string baseSize, List <string> Toppings, string voucherCode)
        {
            ViewBag.pizzaList   = PizzaRepository.ToPropertyList("Name");
            ViewBag.sizeList    = PizzaRepository.ToPropertyList("Size");
            ViewBag.toppingList = ToppingRepository.ToPropertyList("Name");

            Basket  basket  = GetSessionBasket();
            Voucher Voucher = new Voucher();

            if (voucherCode != null)
            {
                Voucher.VoucherCode = voucherCode;
                Voucher.CheckValidVoucher(VoucherRepository.GetWhere(voucherCode, null, true));
                if (Voucher.IsValid)
                {
                    if (basket.Voucher == null)
                    {
                        basket.Voucher = Voucher;
                    }
                    else
                    {
                        Voucher currentVoucher = basket.Voucher;
                        if (currentVoucher.VoucherCode != voucherCode)
                        {
                            basket.Voucher = Voucher;
                        }
                    }
                }
                SetSessionBasket(basket);
            }
            else if (basket.Voucher != null)
            {
                Voucher = basket.Voucher;
            }
            ViewBag.VoucherMessage = Voucher.VoucherMessage;
            if (basePizza != null && baseSize != null)
            {
                Pizza pizza = GetBase(basePizza, baseSize);
                pizza.InMenu   = false;
                pizza.Toppings = GetToppings(Toppings, pizza);
                pizza.CalculateTotalCost();
                basket.AddToBasket(pizza);
                SetSessionBasket(basket);
                ViewBag.Basket    = basket;
                ViewBag.TotalCost = basket.GetTotalCost();
            }
            return(View());
        }
Example #5
0
        public void TestGetBasketCostWithVoucher()
        {
            Basket basket = new Basket();

            basket.AddToBasket(fakePizza1);
            basket.AddToBasket(fakePizza2);
            basket.SetBasketCost();
            string  voucherCode = "2SMALLCOLL";
            Voucher voucher     = new Voucher();

            voucher.VoucherCode = voucherCode;
            voucher.CheckValidVoucher(VR.GetWhere(voucherCode, null, true));
            basket.Voucher  = voucher;
            basket.Delivery = "Collection";
            basket.CheckVoucherConditions();
            Assert.AreEqual(12, basket.GetTotalCost());
        }
Example #6
0
        public IHttpActionResult PostPizza(Dictionary <string, object> json)
        {
            Pizza   pizza   = new Pizza();
            Basket  basket  = new Basket();
            Voucher voucher = new Voucher();

            foreach (KeyValuePair <string, object> item in json)
            {
                switch (item.Key)
                {
                case "Basket":
                    basket = JsonConvert.DeserializeObject <Basket>(item.Value.ToString());
                    break;

                case "Pizza":
                    var    p    = JsonConvert.DeserializeObject <Dictionary <string, object> >(item.Value.ToString());
                    string Name = "";
                    string Size = "";
                    foreach (KeyValuePair <string, object> keyVal in p)
                    {
                        switch (keyVal.Key)
                        {
                        case "Name":
                            Name = keyVal.Value.ToString();
                            break;

                        case "Size":
                            Size = keyVal.Value.ToString();
                            break;
                        }
                    }
                    pizza = GetBase(Name, Size);

                    break;

                case "Toppings":
                    var toppings = JsonConvert.DeserializeObject <List <string> >(item.Value.ToString());
                    pizza.Toppings = GetToppings(toppings, pizza);
                    break;

                case "VoucherCode":
                    var VoucherCode = item.Value.ToString();

                    voucher.VoucherCode = VoucherCode;
                    voucher.CheckValidVoucher(VoucherRepository.GetWhere(VoucherCode, null, true));
                    if (voucher.IsValid)
                    {
                        if (basket.Voucher == null)
                        {
                            basket.Voucher = voucher;
                        }
                        else
                        {
                            Voucher currentVoucher = basket.Voucher;
                            if (currentVoucher.VoucherCode != VoucherCode)
                            {
                                basket.Voucher = voucher;
                            }
                        }
                    }
                    break;
                }
            }

            pizza.InMenu = false;
            pizza.CalculateTotalCost();
            basket.AddToBasket(pizza);
            basket.SetBasketCost();
            double totalCost = basket.GetTotalCost();

            Dictionary <string, object> basketJson = new Dictionary <string, object>()
            {
                ["Basket"]    = basket,
                ["TotalCost"] = totalCost,
            };

            return(Ok(basketJson));
        }