public CostCreateHandler(GlobalSolusindoDb db, tblM_User user, CostValidator costValidator, CostFactory costFactory, CostQuery costQuery, AccessControl accessControl) : base(db, user) { this.costValidator = costValidator; this.costFactory = costFactory; this.costQuery = costQuery; this.costEntryDataProvider = new CostEntryDataProvider(db, user, accessControl, costQuery); }
public decimal Calculate(Ride ride) { cost = CostFactory.GetRateInstance(ride.State); var timed = ride.Minutes / cost.PerMinute; var traveled = ride.Miles / cost.PerDistance; var total = cost.BaseFee + cost.Tax + ((timed + traveled) * cost.Rate); if (ride.StartDateTime.IsPeakHour()) { total += cost.PeakCost; } if (ride.StartDateTime.IsNight()) { total += cost.NightTimeRate; } return(total); }
private void Initialize(CostValidator costValidator, CostFactory costFactory) { this.costValidator = costValidator; this.costFactory = costFactory; }