/// <summary> /// Instantiates the performance data object from the database data. /// </summary> /// <param name="data"> /// The database data. Could be either time or distance. /// </param> /// <param name="event"> /// The <see cref="TrackAndFieldEvent" /> that the data is set to. /// </param> /// <returns> /// The instantiated performance data. /// </returns> public static PerformanceData FromData(double data, TrackAndFieldEvent @event) { if (@event.IsRunningEvent) { return(new PerformanceData { Distance = default(Distance), Time = TimeSpan.FromSeconds(data) }); } return(new PerformanceData { Distance = new Distance { Feet = (int)Math.Floor(data / 12), Inches = data % 12 }, Time = default(TimeSpan) }); }
private static void PopulateAthletesAndPerformances(IList <EventResult> eventResults, TrackAndFieldEvent dbEvent, Meet meet) { foreach (var result in eventResults) { var school = result.SchoolName.TranslateSchool(SchoolLookup); if (school != "SKIP") { var dbSchool = GetSchool(school); var performance = GetOrCreatePerformance(dbEvent.Id, dbSchool.Id, meet.Id, (decimal)result.Performance.Data, meet.Date, dbEvent.IsRunningEvent); if (dbEvent.IsRelayEvent) { if (result is RelayResult relayResult) { // go through the legs foreach (var leg in relayResult.LegInfo.Legs) { var firstName = leg.AthleteName.GetFirstName(); var lastName = leg.AthleteName.GetLastName(); var year = leg.AthleteYear.ParseYear(); var athlete = GetOrCreateAthlete(firstName, lastName, year, dbSchool, dbEvent.Gender); var athletePerformance = GetOrCreateAthletePerformance(athlete.Id, performance.Id); } } } else { if (result is IndividualResult individualResult) { var firstName = individualResult.AthleteName.GetFirstName(); var lastName = individualResult.AthleteName.GetLastName(); var year = individualResult.AthleteYear.ParseYear(); var athlete = GetOrCreateAthlete(firstName, lastName, year, dbSchool, dbEvent.Gender); var athletePerformance = GetOrCreateAthletePerformance(athlete.Id, performance.Id); } } } } }