private IList <ScoreDto> MakeScores( SwObjects.Race swRace, List <SwObjects.Competitor> competitors, BoatClassDto boatClass, FleetDto fleet) { var retList = new List <ScoreDto>(); foreach (var swScore in swRace.Results) { if (String.IsNullOrWhiteSpace(swScore.Code) && swScore.Place == 0) { continue; } // Not going to import DNCs. // Sailwave can leave DNC in some codes when type is changed to scored. if (swScore.Code == "DNC" && swScore.ResultType == 3) { continue; } var score = new ScoreDto { Place = swScore.Place, Code = swScore.ResultType == 3 ? swScore.Code : null }; var swComp = competitors.Single(c => c.Id == swScore.CompetitorId); score.CompetitorId = _competitors[swComp.Id].Id; retList.Add(score); } return(retList); }
private static IList <SsObjects.Score> MakeScores( SwObjects.Race swRace, IEnumerable <SwObjects.Competitor> swCompetitors, SsObjects.BoatClass boatClass, SsObjects.Fleet fleet) { var retList = new List <SsObjects.Score>(); foreach (var swScore in swRace.Results) { if (String.IsNullOrWhiteSpace(swScore.Code) && swScore.Place == 0) { continue; } // Not going to import DNCs. // Sailwave can leave DNC in some codes when type is changed to scored. if (swScore.Code == "DNC" && swScore.ResultType == 3) { continue; } var ssScore = new SsObjects.Score { Place = swScore.Place, Code = swScore.ResultType == 3 ? swScore.Code : null }; var swCompetitor = swCompetitors.Single(c => c.Id == swScore.CompetitorId); ssScore.Competitor = new SsObjects.Competitor { Name = swCompetitor.HelmName, SailNumber = swCompetitor.SailNumber, BoatName = swCompetitor.Boat, BoatClassId = boatClass.Id, BoatClass = boatClass }; if (fleet.FleetType == Api.Enumerations.FleetType.SelectedBoats) { if (ssScore.Competitor.Fleets == null) { ssScore.Competitor.Fleets = new List <SsObjects.Fleet>(); } ssScore.Competitor.Fleets.Add(fleet); fleet.Competitors.Add(ssScore.Competitor); } retList.Add(ssScore); } return(retList); }
private static int GetRaceRank(SwObjects.Race swRace) { // assume race name format of "6-22 R1" or "6-23" var parts = swRace.Name.Split(' '); if (parts.Length < 2) { return(1); } var numberString = new String(parts[1].Where(Char.IsDigit).ToArray()); int rank = swRace.Rank; Int32.TryParse(numberString, out rank); return(rank); }
private static DateTime GetDate(SwObjects.Race swRace, int year) { // assume race name format of "6-22 R1" or "6-23" var datepart = swRace.Name.Split(' ')[0]; if (String.IsNullOrWhiteSpace(datepart)) { return(DateTime.Today); } var parts = datepart.Split('-'); int month = DateTime.Today.Month; int day = DateTime.Today.Day; Int32.TryParse(parts[0], out month); Int32.TryParse(parts[1], out day); return(new DateTime(year, month, day)); }
private static DateTime GetDate(SwObjects.Race swRace, SeasonDto season) { // assume race name format of "6-22 R1" or "6-23" var datepart = swRace.Name.Split(' ')[0]; if (String.IsNullOrWhiteSpace(datepart)) { return(DateTime.Today); } var parts = datepart.Split(new[] { '-', '/' }); int month = season.Start.Month; int day = season.Start.Day; Int32.TryParse(parts[0], out month); Int32.TryParse(parts[1], out day); return(new DateTime(season.Start.Year, month, day)); }