public static void UpdateStats(ShooterData shooter, ShooterMatchData data, MatchData match) { if (shooter.DatesOfMatches.All(d => d != match.Date)) { shooter.DatesOfMatches.Add(match.Date); if (match.Champions.Any(c => c.ShooterId == shooter.Id)) { ++shooter.DC; } if (data.DNF) { ++shooter.DNF; } shooter.FN += data.FN; shooter.NT += data.NT; shooter.PD += data.PD; shooter.PE += data.PE; ++shooter.TotalMatches; shooter.TotalTime += data.TotalTime; if (!data.DNF) { shooter.TotalTimeWithoutDnf += data.TotalTime; } } }
public static void UpdateShooter(ShooterData shooter, string division, string classification, MatchData match) { string value = division + " " + classification; if (shooter.UsedDivisionClassifications.All(d => d != value)) { shooter.UsedDivisionClassifications.Add(value); } }
public static ShooterData AddOrGet(string fullName, List<ShooterData> shooters, MatchData match) { var shooter = shooters.FirstOrDefault(s => s.FullName.Equals(fullName, StringComparison.CurrentCultureIgnoreCase)); if (shooter == null) { shooter = new ShooterData(); shooter.Id = 1; if (shooters.Count > 0) { shooter.Id = shooters.Max(s => s.Id) + 1; } shooter.FullName = fullName; shooters.Add(shooter); } return shooter; }
public List<ShooterData> GetAllShooters() { string text = ReadFileAsAnsi(RootFolder + "shooters.SHO.csv"); TextReader reader = new StringReader(text); CsvReader csv = new CsvReader(reader); List<ShooterData> list = new List<ShooterData>(); while (csv.Read()) { ShooterData data = new ShooterData(); data.Id = csv.GetField<int>("Shooterid"); data.IdpaNumber = csv.GetField<string>("Idpa Number").Trim(); data.Inactive = csv.GetField<bool>("Inactive"); DateTime date; string temp = csv.GetField<string>("Lastshoot"); if (DateTime.TryParse(temp, out date)) { data.LastShoot = date; } data.LastDivision = csv.GetField<string>("Lastdivision").Trim(); temp = csv.GetField<string>("Priormatch"); if (DateTime.TryParse(temp, out date)) { data.PriorMatch = date; } data.FirstName = csv.GetField<string>("Firstname").Trim(); data.LastName = csv.GetField<string>("Lastname").Trim(); data.FullName = csv.GetField<string>("Fullname").Trim(); data.Address = csv.GetField<string>("Address").Trim(); data.Zip = csv.GetField<string>("Zip").Trim(); data.State = csv.GetField<string>("State").Trim(); data.City = csv.GetField<string>("City").Trim(); data.Country = csv.GetField<string>("Country").Trim(); data.Email = csv.GetField<string>("Email").Trim(); data.CdpClass = csv.GetField<string>("Cdp Class").Trim(); data.EspClass = csv.GetField<string>("Esp Class").Trim(); data.SspClass = csv.GetField<string>("Ssp Class").Trim(); data.EsrClass = csv.GetField<string>("Esr Class").Trim(); data.SsrClass = csv.GetField<string>("Ssr Class").Trim(); data.HighClass = csv.GetField<string>("Highclass").Trim(); data.Industry = csv.GetField<bool>("Industry"); data.Junior = csv.GetField<bool>("Junior"); data.Lady = csv.GetField<bool>("Lady"); data.LawEnforcementOfficer = csv.GetField<bool>("Leo"); data.Military = csv.GetField<bool>("Military"); data.Press = csv.GetField<bool>("Press"); data.Senior = csv.GetField<bool>("Senior"); data.Staff = csv.GetField<bool>("Staff"); data.Veteran = csv.GetField<bool>("Veteran"); data.SecurityOfficer = csv.GetField<bool>("So"); list.Add(data); shooters.Add(data.Id, data); } return list; }