public decimal CalculateRacePoints(IDistance distance, int classificationWeight, TimeSpan classificationPrecision, IRaceResult result, IRaceTime time) { if (!CanCalculateRacePoints(distance, classificationWeight, classificationPrecision, result, time)) { throw new NotSupportedException(); } return(CalculatePoints(Length(distance), classificationWeight, classificationPrecision, time.Time)); }
public bool CanCalculateRacePoints(IDistance distance, int classificationWeight, TimeSpan classificationPrecision, IRaceResult result, IRaceTime time) { return(result != null && result.TimeInvalidReason == null && time != null && CanCalculatePoints(Length(distance), classificationWeight, classificationPrecision, time.Time)); }