Exemple #1
0
 /// <summary>
 /// helper for calculating average pace that is safe when input is null
 /// </summary>
 /// <param name="activities">collection of activities</param>
 /// <returns></returns>
 private string _averagePace(IEnumerable <HalbotActivity> activities)
 {
     try
     {
         return($"{HalbotActivity.PaceForSpeed(activities.Average(d => d.Speed))}m/km");
     }
     catch (Exception)
     {
         //unable to return an average, return hyphen
         return("-");
     }
 }
Exemple #2
0
        private ColumnChart GetLastMonthPace(int x)
        {
            if (x > Activities.Count)
            {
                x = Activities.Count;
            }

            ColumnChart chart  = new ColumnChart("monthpace", 200);
            var         months = Activities.OrderByDescending(run => run.Date).GroupBy(run => new { run.Date.Year, run.Date.Month }).Take(x).Reverse().ToList();

            ColumnChart.DataSet pace = new ColumnChart.DataSet("pace");

            foreach (var month in months)
            {
                double avg_speed = month.Average <HalbotActivity>(run => run.Speed);
                pace.Add(month.First <HalbotActivity>().Date.ToString("MMM"), $"{HalbotActivity.PaceForSpeed(avg_speed)}", avg_speed * avg_speed * avg_speed * avg_speed);
            }

            chart.AddDataSet(pace);
            return(chart);
        }
Exemple #3
0
        private ColumnChart GetLastWeekPace(int x)
        {
            if (x > Activities.Count)
            {
                x = Activities.Count;
            }

            ColumnChart chart = new ColumnChart("weekpace", 200);
            var         weeks = Activities.OrderByDescending(run => run.Date).GroupBy(run => new { run.Date.Year, run.Week }).Take(x).Reverse().ToList();

            ColumnChart.DataSet pace = new ColumnChart.DataSet("pace");

            foreach (var week in weeks)
            {
                double avg_speed = week.Average <HalbotActivity>(run => run.Speed);
                pace.Add(week.First <HalbotActivity>().Week.ToString(), $"{HalbotActivity.PaceForSpeed(avg_speed)}", avg_speed * avg_speed * avg_speed * avg_speed);
            }

            chart.AddDataSet(pace);
            return(chart);
        }