コード例 #1
0
        internal static IntervalDisplayData CreateIntervalDisplayData(WorkoutInterval interval)
        {
            var pace   = interval.Distance == 0 ? 0 : interval.Duration * 100 / interval.Distance;
            var swolf  = interval.Distance == 0 ? 0 : interval.Duration * 50 / interval.Distance + interval.StrokeCount;
            var result = new IntervalDisplayData
            {
                IntervalId           = interval.Id,
                IntervalNo           = interval.IntervalNo.GetValueOrDefault(),
                DistanceFormatted    = interval.Distance > 0 ? interval.Distance.ToStringInvariant() + " m" : "-",
                DurationFormatted    = DisplayValuesFormatter.FormatDuration(interval.Duration, true),
                StartTime            = DisplayValuesFormatter.FormatDuration(interval.TimeOffset, false),
                StrokeCountFormatted = interval.StrokeCount > 0 ? interval.StrokeCount.ToStringInvariant("0.#") : "-",
                PaceFormatted        = interval.Distance > 0 ? DisplayValuesFormatter.FormatDuration(pace, true) : "-",
                SwolfFormatted       = interval.StrokeTypeId != StrokeType.Drill && interval.StrokeCount > 0 ? swolf.ToStringInvariant("0.#") : "-",
                IntervalTypeId       = interval.WorkoutIntervalTypeId.GetValueOrDefault(),
                IntervalTypeName     = interval.WorkoutIntervalType?.Name
            };

            foreach (var length in interval.Lengths)
            {
                result.Lengths.Add(new IntervalLengthDisplayData
                {
                    LengthNo          = length.LengthNo.GetValueOrDefault(),
                    DurationFormatted = DisplayValuesFormatter.FormatDuration(length.Duration, true),
                    DistanceFormatted = $"{length.Distance} m",
                    PaceFormatted     = length.Distance > 0 ? DisplayValuesFormatter.FormatDuration(length.Duration * 100 / length.Distance, true) : "-",
                    StrokeCount       = length.StrokeCount,
                    StrokeTypeId      = length.StrokeTypeId,
                    StrokeTypeName    = length.StrokeTypeId.GetDisplayName()
                });
            }

            return(result);
        }
コード例 #2
0
        public static string GetDurationFormatted(this Workout workout)
        {
            if (workout == null)
            {
                throw new ArgumentNullException(nameof(workout));
            }

            return(DisplayValuesFormatter.FormatDuration(workout.Duration, false));
        }