public async Task Crawler_SimpleData_Load_Test() { var crawler = new CompetitionsDataReader(new FileLoader()); var result = await crawler.LoadUsedCompetitionsPageAsync(@"H:\workspace\PGRating\SampleData\AllCopmetitionsPageData.txt"); Assert.IsTrue(result != null); }
public async Task Crawler_NationPilotsTable_Load_Test() { var crawler = new CompetitionsDataReader(new FileLoader()); var resultTable = await crawler.LoadNationPilotsTableAsync(@"H:\workspace\PGRating\SampleData\UkrainianPilotsTable.txt"); Assert.IsTrue(resultTable != null); Assert.IsTrue(resultTable.Rows.Count > 0); }
public async Task <TablesCombinationModel> GetParticipantsAsync() { var loader = new WebLoader(); var crawler = new CompetitionsDataReader(loader); var executionRootPath = Path.GetFullPath(HostingEnvironment.ApplicationPhysicalPath); var projectRootPath = Directory.GetParent(Directory.GetParent(executionRootPath).FullName).FullName; //var competitionsDataPath = $"{projectRootPath}\\SampleData\\AllCopmetitionsPageData.txt"; //var participantsDataPath = $"{projectRootPath}\\SampleData\\UkrainianPilotsTable.txt"; var competitionsDataPath = $"http://civlrankings.fai.org/?a=327&ladder_id=3&ranking_date=2017-09-01&"; var participantsDataPath = $"http://civlrankings.fai.org/?a=326&ladder_id=3&ranking_date=2017-09-01&nation_id=230&"; var competitionsTable = await crawler.LoadUsedCompetitionsTableAsync(competitionsDataPath); var participantsTable = await crawler.LoadNationPilotsTableAsync(participantsDataPath); var competitions = new Dictionary <int, Competition>(); foreach (DataRow competitionRow in competitionsTable.Rows) { var competitionId = GetCellValue(competitionRow, "CompetitionId"); var pq = GetCellValue(competitionRow, "Pq"); var name = GetCellValue(competitionRow, "Name"); int parsedId = GeInt(competitionId); if (competitions.ContainsKey(parsedId)) { continue; } var parsedPq = GetDouble(pq); competitions.Add( parsedId, new Competition { Id = parsedId, Name = name.ToString(), Quality = parsedPq }); } var participants = new List <NationTeamParticipant>(); foreach (DataRow participantRow in participantsTable.Rows) { var rank = GetCellValue(participantRow, "Rank").ToString(); rank = rank.Substring(0, rank.IndexOf('w')); var name = GetCellValue(participantRow, "Name").ToString(); name = name.Substring(0, name.IndexOf("CIVL")); var rating = GetCellValue(participantRow, "Points"); var cr1 = GetCellValue(participantRow, "CompetitionRating1"); var cr2 = GetCellValue(participantRow, "CompetitionRating2"); var cr3 = GetCellValue(participantRow, "CompetitionRating3"); var cr4 = GetCellValue(participantRow, "CompetitionRating4"); var cid1 = GetCellValue(participantRow, "CompetitionId1"); var cid2 = GetCellValue(participantRow, "CompetitionId2"); var cid3 = GetCellValue(participantRow, "CompetitionId3"); var cid4 = GetCellValue(participantRow, "CompetitionId4"); var cid1Parsed = GeInt(cid1); var cid2Parsed = GeInt(cid2); var cid3Parsed = GeInt(cid3); var cid4Parsed = GeInt(cid4); var cq1 = GetCq(competitions, cid1Parsed); var cq2 = GetCq(competitions, cid2Parsed); var cq3 = GetCq(competitions, cid3Parsed); var cq4 = GetCq(competitions, cid4Parsed); var cr1Parsed = GetDouble(cr1); var cr2Parsed = GetDouble(cr2); var cr3Parsed = GetDouble(cr3); var cr4Parsed = GetDouble(cr4); var rankParsed = GeInt(rank); var ratingParsed = GetDouble(rating); participants.Add( new NationTeamParticipant { Rank = rankParsed, Name = name.ToString(), Rating = ratingParsed, CQ1 = cq1, CQ2 = cq2, CQ3 = cq3, CQ4 = cq4, CR1 = cr1Parsed, CR2 = cr2Parsed, CR3 = cr3Parsed, CR4 = cr4Parsed }); } CalculateQuivalentRankings(participants); var equivalentRatingOrderList = participants.OrderByDescending(part => part.EquivalentRating).ToList(); var model = new TablesCombinationModel { DirectList = participants, EquivalentList = equivalentRatingOrderList }; return(model); }