Ejemplo n.º 1
0
        public void TestPremium()
        {
            IInvoiceCalculator calc = new InvoiceCalculator();

            Client client = new PremiumClient();
            client.Id = 1;

            var parkingTimeList = new[]
            {
                new ParkingTimeInfo()
                {
                    StartTime = DateTime.Today.AddHours(8).AddMinutes(12),
                    EndTime = DateTime.Today.AddHours(10).AddMinutes(45),
                },
                new ParkingTimeInfo()
                {
                    StartTime = DateTime.Today.AddHours(7).AddMinutes(2),
                    EndTime = DateTime.Today.AddHours(11).AddMinutes(56),
                },
                new ParkingTimeInfo()
                {
                    StartTime = DateTime.Today.AddHours(22).AddMinutes(10),
                    EndTime = DateTime.Today.AddHours(22).AddMinutes(35),
                },
                new ParkingTimeInfo()
                {
                    StartTime = DateTime.Today.AddHours(19).AddMinutes(40),
                    EndTime = DateTime.Today.AddHours(20).AddMinutes(35),
                },
            };
            var invoice = calc.CalculateInvoice(client, parkingTimeList);
            Assert.AreEqual(invoice.Price,38.25m);
            Assert.IsTrue(invoice.ClientId > 0);

        }
Ejemplo n.º 2
0
        private Invoice CalculateInvoice(PremiumClient premiumClient, IList<ParkingTimeInfo> parkingTimes)
        {
            decimal MaxInvoice = 300.0m;
            decimal monthlyFee = 20.0m;
            decimal timeRangePriceDay = 1.0m;
            decimal timeRangePriceNight = 0.75m;
            var invoice = new Invoice(premiumClient.Id);
            Calculate(invoice, parkingTimes, timeRangePriceDay, timeRangePriceNight);

            invoice.Price += monthlyFee;

            if (invoice.Price > MaxInvoice)
                invoice.Price = MaxInvoice;
            return invoice;
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            BasicClient         basic = new BasicClient("Christina", "Nastevska", "15/05/2016", 60);
            BusinessType1Client businessType1Client = new BusinessType1Client("Mark", "Markson", "14/05/2016", 70);
            BusinessType2Client businessType2Client = new BusinessType2Client("Homer", "Simpson", "15/05/2016", 80);
            FamilyClient        famulyClient        = new FamilyClient("Marge", "Simpson", "14/05/2016", 100, 5);
            PremiumClient       premiumClient       = new PremiumClient("Bart", "Simpson", "15/05/2016", 150);

            basic.displayInfo();
            basic.set(new PromotionType1());
            basic.promotions();
            basic.services();

            Console.Out.WriteLine("\n");

            businessType1Client.displayInfo();
            businessType1Client.services();
            businessType1Client.promote();

            Console.Out.WriteLine("\n");

            premiumClient.displayInfo();
            premiumClient.promote();
            premiumClient.services();

            Console.Out.WriteLine("\n");

            famulyClient.displayInfo();
            famulyClient.promote();
            famulyClient.services();

            Console.Out.WriteLine("\n");

            businessType2Client.displayInfo();
            businessType2Client.services();
            businessType2Client.promote();
        }