コード例 #1
0
        public ActionResult Checkout(OrderDTO order, string start_time = null,
                                     string end_time = null, string start_place = null, string end_place = null)
        {
            List <OrderDTO> orders = DatAcessService.GetCarOrders(order.CarId);
            List <DateTime> dates  = new List <DateTime>();

            foreach (var ord in orders)
            {
                for (DateTime i = ord.StartTime.Date; DateTime.Compare(i, ord.EndTime) <= 0; i = i.AddDays(1))
                {
                    dates.Add(i);
                }
            }

            ViewBag.FullOrdered = dates;

            if (ModelState.IsValid)
            {
                var car = DatAcessService.FindCar(order.CarId);
                order.OrdSum     = PriceCalc.PricePerDays(car.Price, (order.EndTime - order.StartTime));
                order.Status     = "Pending";
                order.StartPlace = start_place;
                order.EndPlace   = end_place;
                order.Id         = 0;

                DatAcessService.CreateOrder(order);
                return(RedirectToAction("Index", "PersCab", new { res = "added" }));
            }

            order.Car = DatAcessService.FindCar(order.CarId);
            return(View(order));
        }
コード例 #2
0
        public void DiscountedItemDealSixteenItems()
        {
            DiscountedDealPrice discountedDeal = new DiscountedDealPrice();

            discountedDeal.DealPrice = 5;
            discountedDeal.ItemPrice = new ItemPrice();
            discountedDeal.ItemPrice.AmoundOfItems = 16;
            discountedDeal.ItemPrice.ItemInterval  = 5;
            discountedDeal.ItemPrice.PricePerItem  = (decimal)2.5;

            IPriceCalculator priceManager  = new PriceCalc();
            decimal          priceToBePaid = priceManager.CalculatePriceForDiscountDeal(discountedDeal);

            Assert.AreEqual((decimal)17.5, priceToBePaid);
        }
コード例 #3
0
        public void FreeItems()
        {
            FreeItemsDealPrice freeItemsDeal = new FreeItemsDealPrice();

            freeItemsDeal.ItemPrice = new ItemPrice();

            freeItemsDeal.AmountOfFreeItems       = 2;
            freeItemsDeal.ItemPrice.PricePerItem  = (decimal)2.5;
            freeItemsDeal.ItemPrice.ItemInterval  = 5;
            freeItemsDeal.ItemPrice.AmoundOfItems = 8;

            IPriceCalculator priceCalculator = new PriceCalc();

            decimal price = priceCalculator.CalculatePriceForFreeItemsDeal(freeItemsDeal);

            Assert.AreEqual(15, price);
        }
コード例 #4
0
ファイル: Form1.cs プロジェクト: nickky2010/Patterns_HW1
 private void buttonCostOfPurchase_Click(object sender, EventArgs e)
 {
     if (radioButtonPickup.Checked)
     {
         price = new RefinedPriceCalc(new PriceCalcBaseImpl(prices));
         productInCart.ForEach(a => price.AddProduct(a.Id, a.Quantity));
         textBoxCost.Text = price.GetTotalPrice("").ToString();
     }
     else if (radioButtonToBeDelivered.Checked)
     {
         price = new RefinedPriceCalc(new PriceCalcShippingImpl(prices));
         productInCart.ForEach(a => price.AddProduct(a.Id, a.Quantity));
         textBoxCost.Text = price.GetTotalPrice(comboBoxPointOfDelivery.SelectedItem.ToString()).ToString();
     }
     productInCart.Clear();
     buttonRemove.Visible = false;
 }