示例#1
0
        public void EarlyBird_Testing()
        {
            //Check-In at 8 a.m
            //Check-Out at 4 p.m
            var startDateString = "2019/11/08 08:00";
            var endDateString   = "2019/11/08 16:00";

            var charge = api.CalculateParkingFee(DateTime.Parse(startDateString),
                                                 DateTime.Parse(endDateString));

            var rateType = charge.ApplicableRates.FirstOrDefault();

            Assert.AreEqual(charge.TotalCharge, EarlyBirdRates.Rate);
            Assert.AreEqual(charge.ApplicableRates.Count, 1);
            Assert.AreEqual(rateType.Name, RateNames.EarlyBird);
        }
示例#2
0
        static void Main(string[] args)
        {
            DateTime start;
            DateTime end;

            Console.WriteLine("Enter a Start date (Format: YYYY/MM/DD HH:MM): ");

            if (DateTime.TryParse(Console.ReadLine(), out start))
            {
                Console.WriteLine("The day of the week is: " + start.DayOfWeek);
            }
            else
            {
                Console.WriteLine("You have entered an incorrect start value.");
                Console.ReadLine();
                return;
            }

            Console.WriteLine("Enter a End date (Format: YYYY/MM/DD HH:MM): ");

            if (DateTime.TryParse(Console.ReadLine(), out end))
            {
                Console.WriteLine("The day of the week is: " + end.DayOfWeek);
            }
            else
            {
                Console.WriteLine("You have entered an incorrect Enddate value.");
                Console.ReadLine();
                return;
            }



            if (start < end)
            {
                Console.WriteLine("Start Date " + start.ToLongDateString() + " Time " + start.ToShortTimeString());
                Console.WriteLine("End Date " + end.ToLongDateString() + " Time " + end.ToShortTimeString());

                try

                {
                    var Api     = new ParkingFeeCalculator();
                    var charges = Api.CalculateParkingFee(start, end);


                    //Display all the applied rates when a car is parked for more than 1 day.
                    Console.WriteLine("============ Parking Rates Applied ===================");
                    foreach (var rate in charges.ApplicableRates)
                    {
                        Console.WriteLine($" Rate Name : {rate.Name} ||  Charge : {rate.Charge}  || {(rate.ActualDate.HasValue ? "On " + rate.ActualDate.Value.DayOfWeek.ToString() : string.Empty)}");
                    }
                    Console.WriteLine("=======================================================");
                    Console.WriteLine("=======================================================");
                    Console.WriteLine($"Total Charges : {charges.TotalCharge.ToString()}");
                    Console.WriteLine("=======================================================");
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Fatal error occurred : { ex.Message}");
                    Console.ReadKey();
                    return;
                }
            }
            else
            {
                Console.WriteLine($"Start Date : {start} can not be greater than End Date : {end} ");
            }

            Console.ReadLine();
        }