Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }