public float GetFare(IFareRule ruleValues, float basicFare) { var otherFareRuleModel = ruleValues as OtherFareRuleModel; if (otherFareRuleModel == null) { return(basicFare); } float totalFare = basicFare + otherFareRuleModel.AdditionalFare; return(totalFare); }
public float GetFare(IFareRule ruleValues, float basicFare) { var vipFareRuleModel = ruleValues as VIPFareRuleModel; if (vipFareRuleModel == null) { return(0); } var totalFare = basicFare - (basicFare * vipFareRuleModel.Discount); return(totalFare); }
public float GetFare(IFareRule ruleValues, float basicFare) { var stationFareRuleModel = ruleValues as StationFareRuleModel; if (stationFareRuleModel == null || stationFareRuleModel.StationDistance <= 0.0f) { return(0); } if (stationFareRuleModel.StationDistance < 6) { return(basicFare); } int restChargingStations = (int)Math.Ceiling((stationFareRuleModel.StationDistance - 6.0f) / 10.0f); var totalFare = basicFare + restChargingStations * stationFareRuleModel.IncrementalPrice; return(totalFare); }
public float GetFareDetails(IFareRule fareRules, float basicFare) { return(this._fareStrategy.GetFare(fareRules, basicFare)); }