public ParkingCharges CaclulateParkingCharges(DateTime CarEntryTime, DateTime CarExistTime)
        {
            ChargeCalcUtils.InitializeRates();
            double        charge      = 0;
            double        ParkingRate = 0;
            NameoftheRate chargetype  = NameoftheRate.Standard;
            var           type        = ChargeCalcUtils.GetNameOfRate(CarEntryTime, CarExistTime);

            if (type == NameoftheRate.Standard)
            {
                //Apply charges based on duration
                chargetype = type;
                var t = ChargeCalcUtils.GetChargesforStandard(CarEntryTime, CarExistTime);
                ParkingRate = t.ParkingRate;
                charge      = t.Charge;
            }
            else
            {
                //Get rates based on Night/EarlyBirad/Week end.
                chargetype  = type;
                charge      = ChargeCalcUtils.chargeRatelookup.Where(x => x.RateType == type).Select(y => y.ParkingRate).FirstOrDefault();
                ParkingRate = charge;
            }
            ParkingCharges TotalchargeObj = new ParkingCharges();

            TotalchargeObj.ParkingRate         = ParkingRate;
            TotalchargeObj.TotalCcharges       = charge;
            TotalchargeObj.CarParkingStartTime = CarEntryTime;
            TotalchargeObj.CarParkingEndTime   = CarExistTime;
            return(TotalchargeObj);
        }
コード例 #2
0
    static void Main(string[] args)
    {
        float charge = ParkingCharges.Charge(100);

        Console.WriteLine(charge.ToString("000.00"));
        Console.ReadKey();
    }
コード例 #3
0
 public async Task <JsonResult> UpdateParkingCharges([FromBody] ParkingCharges parkingCharges)
 {
     try
     {
         RepositoryWrapper.ExitGateRepository.UpdateParkingCharges(parkingCharges);
         return(await base.FinalizeMessage("Vehicle exit succesfully"));
     }
     catch (Exception ex)
     {
         return(await base.FinalizStatusCodeeMessage("Error: Failure in ParkingCharges Update : " + ex, 401));
     }
 }
コード例 #4
0
        public void GetParkingChargeTest()
        {
            ParkingCharges ctr = new ParkingCharges();
            //Rule week end

            var charge = ctr.GetParkingCharge(DateTime.Parse("2020-07-18 T18:00:00"), DateTime.Parse("2020-07-18T20:00:00"));

            //Rule early bird
            // charge =ctr.GetParkingCharge(DateTime.Now.AddHours(-9), DateTime.Now.AddHours(2));

            //Rule night
            charge = ctr.GetParkingCharge(DateTime.Parse("2020-07-01T18:00:00"), DateTime.Parse("2020-07-01T20:00:00"));

            //Rule standard
            //https://localhost:44336/ParkingCharges?CarEntryTime=2020-07-01T09:00:00&CarExistTime=2020-07-01T12:00:00

            // ctr.GetParkingCharge( DateTime.Parse("2020-07-01T09:00:00"), DateTime.Parse("2020-07-01T12:00:00"));

            //Exception Testing.
            // charge = ctr.GetParkingCharge(DateTime.Now.AddHours(-9),DateTime.Now.AddHours(2));

            Assert.Fail();
        }
コード例 #5
0
    static void Main()
    {
        ParkingCharges parkingCharges = new ParkingCharges();

        Console.WriteLine("\n================== Greetings at the Parking meter ==================");

        double total = 0;

        do
        {
            Console.Write("\n\n\nPlease enter the lenght of your parking or 0 to exit: ");
            double parkingChargestheParkingLength = double.Parse(Console.ReadLine());
            parkingCharges.SetParkingLength(parkingChargestheParkingLength);


            Console.WriteLine($"Your charges for the given parking parking lenght is: {parkingCharges.CalculateCharges()}");

            total += parkingCharges.CalculateCharges();
        } while (parkingCharges.GetParkingLength() != 0);

        Console.WriteLine($"\n\nThe total parking spend is: {total}");

        Console.WriteLine("\n\n====== Thank you and good bye! ======");
    }