public double ApplyRule(cabRide cabRide, string loggedInUserName) { double dummyHolder; var newYorkStateSurcharge = double.TryParse(_settingService.GetSettingValueBySettingKey("newYorkStateSurcharge"), out dummyHolder) ? dummyHolder : .50; return(newYorkStateSurcharge); }
public double ApplyRule(cabRide cabRide, string loggedInUserName) { double dummyHolder; var peakHourSurcharge = double.TryParse(_settingService.GetSettingValueBySettingKey("peakHourSurcharge"), out dummyHolder) ? dummyHolder : 1; return(peakHourSurcharge); }
public bool IsMatch(cabRide cabRide, string loggedInUserName) { if (cabRide.minutesAboveSixMph.HasValue) { return(true); } return(false); }
public double ApplyRule(cabRide cabRide, string loggedInUserName) { double dummyHolder; var fareUnit = double.TryParse(_settingService.GetSettingValueBySettingKey("fareUnit"), out dummyHolder) ? dummyHolder : 0.35; var result = cabRide.minutesAboveSixMph * fareUnit; return(result.Value); }
public bool IsMatch(cabRide cabRide, string loggedInUserName) { if (cabRide.dateTime.TimeOfDay.Hours > 20 && cabRide.dateTime.TimeOfDay.Hours < 6) { return(true); } return(false); }
public bool IsMatch(cabRide cabRide, string loggedInUserName) { var state = _settingService.GetSettingValueBySettingKey("state") ?? "NY"; if (state == "NY" || state == "New York") { return(true); } return(false); }
public IHttpActionResult GetFare(cabRide cabRide) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var result = _cabRideService.GetFare(cabRide, User?.Identity?.Name); return(Ok(result)); }
public bool IsMatch(cabRide cabRide, string loggedInUserName) { if (cabRide.dateTime.DayOfWeek != DayOfWeek.Saturday && cabRide.dateTime.DayOfWeek != DayOfWeek.Sunday && cabRide.dateTime.TimeOfDay.Hours > 16 && cabRide.dateTime.TimeOfDay.Hours < 20) { return(true); } return(false); }
public double ApplyRules(cabRide cabRide, string loggedInUserName) { // Use strategy pattern to implement fare calculations rules. var result = _meteredStrategyRules.Sum(r => r.IsMatch(cabRide, loggedInUserName) ? r.ApplyRule(cabRide, loggedInUserName) : 0); // Get the fare upon entry and add it to te calculated sum. double dummyHolder; var fareUponEntry = double.TryParse(_settingService.GetSettingValueBySettingKey("fareUponEntry"), out dummyHolder) ? dummyHolder : 3; result = result + fareUponEntry; return(result); }
public void ReturnTheCorrectFareIfInNewYorkAndOnlyEnteredCab() { // Arrange. var container = IoC.Initialize(); var meteredRateStrategyService = container.GetInstance <IMeteredRateStrategyService>(); var cabRide = new cabRide(); // Act. var result = meteredRateStrategyService.ApplyRules(cabRide, "User1"); // Assert. Assert.IsTrue(result == 3.5); }
public void ReturnTheCorrectFareForGuggScenario() { // Arrange. var container = IoC.Initialize(); var meteredRateStrategyService = container.GetInstance <IMeteredRateStrategyService>(); var cabRide = new cabRide() { dateTime = DateTime.Parse("10-8-2010 5:30pm"), milesBelowSixMph = 2, minutesAboveSixMph = 5 }; // Act. var result = meteredRateStrategyService.ApplyRules(cabRide, "User1"); // Assert. Assert.IsTrue(result == 9.75); }