public decimal CalculateFare(FareCalculatorDataModel model) { return( EntryFee() + NewYorkTax() + PeakTimeSurcharge(model.Date, model.Time) + NightTimeSurcharge(model.Time) + PriceFromMinutesAboveSixMph(model.MinutesAboveSixMph) + PriceFromDistanceUnitsBelowSixMph(model.DistanceUnitsBelowSixMph) ); }
//[Route("CalculateFare")] public JsonResult CalculateFare(FareCalculatorViewModel model) { var calculator = new FareCalculatorService(); //Call service method with Model var dataModel = new FareCalculatorDataModel { Date = model.Date, Time = model.Time, DistanceUnitsBelowSixMph = model.DistanceUnitsBelowSixMph, MinutesAboveSixMph = model.MinutesAboveSixMph, }; return(Json(new { totalFare = calculator.CalculateFare(dataModel) }, JsonRequestBehavior.AllowGet)); }
public void CalculateFareTest() { //Arrange FareCalculatorService calculator = new FareCalculatorService(); FareCalculatorDataModel model = new FareCalculatorDataModel { Date = new DateTime(2018, 9, 20, 16, 0, 0), // Thursday Time = new DateTime(2018, 9, 20, 16, 0, 0), // Peak Time DistanceUnitsBelowSixMph = 10, MinutesAboveSixMph = 5, }; //Act var fare = calculator.CalculateFare(model); //Assert Assert.AreEqual((decimal)fare, (decimal)9.75); }