Пример #1
0
 public PowerZone(Rider rider,
                  IMaxHeartRateStrategy maxHrStrategy,
                  PowerZoneDefinition zoneDefinition)
 {
     Definition    = zoneDefinition;
     WattsLow      = Definition.WattsLowPercent * rider.FunctionalThresholdPowerWatts;
     WattsHigh     = Definition.WattsHighPercent * rider.FunctionalThresholdPowerWatts;
     HeartRateLow  = Utilities.CalculateHeartRate(maxHrStrategy, rider, Definition.HeartRateLowPercent);
     HeartRateHigh = Utilities.CalculateHeartRate(maxHrStrategy, rider, Definition.HeartRateHighPercent);
 }
Пример #2
0
 public static double?CalculateHeartRate(IMaxHeartRateStrategy maxHrStrategy,
                                         Rider rider,
                                         double?targetPercent)
 {
     if (targetPercent.HasValue == false)
     {
         return(new double?());
     }
     return(((maxHrStrategy.Calculate(rider) - rider.RestingHeartRateBpm) * targetPercent) + rider.RestingHeartRateBpm);
 }
Пример #3
0
 public PowerChart(Rider rider,
                   IMaxHeartRateStrategy maxHrStrategy,
                   IEnumerable <PowerZoneDefinition> zoneDefinitions)
 {
     Rider = rider;
     Zones = new List <PowerZone>();
     foreach (var powerZoneDef in zoneDefinitions.OrderBy(x => x.Zone))
     {
         Zones.Add(new PowerZone(rider, maxHrStrategy, powerZoneDef));
     }
 }