public frmRecords(RecordsManager recordsManager, AthletesManager athletesManager, int year) { InitializeComponent(); this.RecordsManager = recordsManager; this.athletesManager = athletesManager ?? throw new ArgumentNullException(nameof(athletesManager)); this.year = year; this.ucAthletesCombo1.Initialize(athletesManager); RefreshAthleteList(); }
public async Task CreateNewAsync(string seasonFilePath) { GetBasePath(seasonFilePath); this.AthletesManager = new AthletesManager(); await this.AthletesManager.PopulateWithParkrunList(this.basePath, false); this.root = Root.CreateDefault(Year); var raceFinder = new Finder(this.root); this.RaceManager = new RaceManager(raceFinder); this.RecordsManager = new RecordsManager(this.root.Records); await RecordsManager.PopulateWithAthletesAsync(this.AthletesManager, Year); }
public async Task InitAsync(string seasonFilePath) { GetBasePath(seasonFilePath); this.AthletesManager = new AthletesManager(); await this.AthletesManager.PopulateWithParkrunList(this.basePath, false); this.root = await RaceData.ReadAsync(seasonFilePath); if (this.root == null) { throw new Exception($"Unable to set the root object from '{seasonFilePath}'"); } var raceFinder = new Finder(this.root); this.RaceManager = new RaceManager(raceFinder); this.RecordsManager = new RecordsManager(this.root.Records); }
public async Task PopulateWithAthletesAsync(AthletesManager athletesManager, int year) { this.Records.Clear(); foreach (var athlete in athletesManager.Athletes) { var record = new Record(athlete.Name); var fastestParkrun5km = athletesManager.GetQuickestParkrunLastYear(athlete, year); record.FiveKm.SetTime(fastestParkrun5km); record.TenKm = await AthletesManager.GetTimeAsync(RaceDistance.TenKm, fastestParkrun5km); record.TenMiles = await AthletesManager.GetTimeAsync(RaceDistance.TenMiles, fastestParkrun5km); record.HalfMarathon = await AthletesManager.GetTimeAsync(RaceDistance.HalfMarathon, fastestParkrun5km); this.Records.Add(record); } }
private async Task UpdateAsync() { var record = this.GetSelectedRecord(); if (record == null) { return; } var fastestParkrun5km = this.ucTime5km.Time; if (fastestParkrun5km == TimeSpan.Zero) { var startDate = new DateTime(year - 1, 1, 1); var endDate = new DateTime(year - 1, 12, 31); try { fastestParkrun5km = athletesManager.GetQuickestParkrun(record.Name, startDate, endDate); } catch { MessageBox.Show($"Unable to get parkrun times for {record.Name} between {startDate} and {endDate}"); return; } } record.FiveKm = await AthletesManager.GetTimeAsync(RaceDistance.FiveKm, fastestParkrun5km, fastestParkrun5km); record.TenKm = await AthletesManager.GetTimeAsync(RaceDistance.TenKm, fastestParkrun5km, this.ucTime10km.Time); record.TenMiles = await AthletesManager.GetTimeAsync(RaceDistance.TenMiles, fastestParkrun5km, this.ucTime10m.Time); record.HalfMarathon = await AthletesManager.GetTimeAsync(RaceDistance.HalfMarathon, fastestParkrun5km, this.ucTimeHalfM.Time); UpdateSelectedRecordUI(); }
public void Initialize(AthletesManager athletesManager) { this.athletesManager = athletesManager; }