public float GetFare(IFareRule ruleValues, float basicFare)
        {
            var otherFareRuleModel = ruleValues as OtherFareRuleModel;

            if (otherFareRuleModel == null)
            {
                return(basicFare);
            }

            float totalFare = basicFare + otherFareRuleModel.AdditionalFare;

            return(totalFare);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 4
0
 public float GetFareDetails(IFareRule fareRules, float basicFare)
 {
     return(this._fareStrategy.GetFare(fareRules, basicFare));
 }