示例#1
0
        public IList <RacerPerson> GetFinishRanking()
        {
            Move();

            IList <RacerPerson> ranking = new List <RacerPerson>();

            foreach (var racer in _finishingPositions)
            {
                RacerPerson newRacerPerson = new RacerPerson();

                newRacerPerson.FirstName       = racer.FirstName;
                newRacerPerson.LastName        = racer.LastName;
                newRacerPerson.FlatAbility     = racer.FlatAbility;
                newRacerPerson.ClimbingAbility = racer.ClimbingAbility;
                newRacerPerson.DownhillAbility = racer.DownhillAbility;
                newRacerPerson.Age             = racer.Age;
                newRacerPerson.Nation          = racer.Nation;
                newRacerPerson.RacerPersonId   = racer.RacerPersonId;
                newRacerPerson.Team            = racer.Team;
                newRacerPerson.Jersey          = racer.Jersey;

                ranking.Add(newRacerPerson);
            }

            return(ranking);
        }
示例#2
0
        public async Task <IList <Team> > GenerateTeams(int numberOfPeoplePerTeam, int numberOfTeams)
        {
            var teamList = new List <Team>();

            for (int i = 0; i < numberOfTeams; i++)
            {
                teamList.Add(teams[teamIndex]);

                var firstNames = await _firstNamesRepository.GenerateNames(numberOfPeoplePerTeam);

                var lastNames = await _lastNamesRepository.GenerateNames(numberOfPeoplePerTeam);

                int index = 0;
                teams[teamIndex].RacerPeople = new List <RacerPerson>();

                foreach (var name in firstNames)
                {
                    RacerPerson newRacerPerson = new RacerPerson
                    {
                        FirstName       = name.FirstName,
                        LastName        = lastNames[index].LastName,
                        Nation          = lastNames[index].Nation,
                        FlatAbility     = _random.Next(10, 100),
                        ClimbingAbility = _random.Next(10, 100),
                        DownhillAbility = _random.Next(10, 100),
                        Age             = _random.Next(_minAge, _maxAge),
                        RacerPersonId   = Guid.NewGuid()
                    };
                    newRacerPerson.FlatPotentialAbility     = _random.Next(newRacerPerson.FlatAbility, 100);
                    newRacerPerson.ClimbingPotentialAbility = _random.Next(newRacerPerson.ClimbingAbility, 100);
                    newRacerPerson.DownhillPotentialAbility = _random.Next(newRacerPerson.DownhillAbility, 100);

                    if (teams[teamIndex] != null)
                    {
                        newRacerPerson.Team = teams[teamIndex];
                        teams[teamIndex].RacerPeople.Add(newRacerPerson);
                    }

                    index++;
                }

                //add facilityUpgradePreference
                if (_random.Next(1, 3) % 2 == 0)
                {
                    teams[teamIndex].FacilityUpgradePreference = FacilityUpgradePreference.Training;
                }
                else
                {
                    teams[teamIndex].FacilityUpgradePreference = FacilityUpgradePreference.Youth;
                }

                teamIndex++;
            }

            return(teamList);
        }
        public async Task <IList <RacerPerson> > GenerateRacerPeople(int numberOfPeople, int numberOfTeams)
        {
            while (numberOfPeople % numberOfTeams != 0)
            {
                numberOfPeople--;
            }

            var firstNames = await _firstNamesRepository.GenerateNames(numberOfPeople);

            var lastNames = await _lastNamesRepository.GenerateNames(numberOfPeople);

            var teams = await _teamRepository.Get();

            var generatedRacerPeople = new List <RacerPerson>();
            int teamIndex            = 0;
            int index = 0;

            foreach (var name in firstNames)
            {
                RacerPerson newRacerPerson = new RacerPerson
                {
                    FirstName       = name.FirstName,
                    LastName        = lastNames[index].LastName,
                    Nation          = lastNames[index].Nation,
                    FlatAbility     = _random.Next(10, 100),
                    ClimbingAbility = _random.Next(10, 100),
                    DownhillAbility = _random.Next(10, 100),
                    Age             = _random.Next(_minAge, _maxAge)
                };
                newRacerPerson.FlatPotentialAbility     = _random.Next(newRacerPerson.FlatAbility, 100);
                newRacerPerson.ClimbingPotentialAbility = _random.Next(newRacerPerson.ClimbingAbility, 100);
                newRacerPerson.DownhillPotentialAbility = _random.Next(newRacerPerson.DownhillAbility, 100);

                if (teams[teamIndex] != null)
                {
                    newRacerPerson.Team = teams[teamIndex];
                }

                generatedRacerPeople.Add(newRacerPerson);

                teamIndex++;
                index++;

                if (teamIndex >= numberOfTeams)
                {
                    teamIndex = 0;
                }
            }

            return(generatedRacerPeople);
        }
        public IList <Division> Load()
        {
            // to get nation, use the id and nationcontroller
            var divisions  = new List <Division>();
            var fileString = File.ReadAllText(Path.Combine(path, saveGameFile));

            if (string.IsNullOrWhiteSpace(fileString))
            {
                return(divisions);
            }

            using (var stringReader = new StringReader(fileString))
            {
                using (var xmlReader = XmlReader.Create(stringReader, new XmlReaderSettings()
                {
                    IgnoreWhitespace = true
                }))
                {
                    xmlReader.MoveToContent();
                    xmlReader.ReadStartElement(nameof(divisions));

                    do
                    {
                        var readDivision = new Division();

                        readDivision.DivisionId = int.Parse(xmlReader.GetAttribute(nameof(Division.DivisionId)));
                        readDivision.Tier       = int.Parse(xmlReader.GetAttribute(nameof(Division.Tier)));
                        readDivision.Name       = xmlReader.GetAttribute(nameof(Division.Name));

                        readDivision.TeamList = new List <Team>();

                        xmlReader.ReadStartElement(nameof(Division));

                        do
                        {
                            var readTeam = new Team();

                            readTeam.TeamId                    = int.Parse(xmlReader.GetAttribute(nameof(Team.TeamId)));
                            readTeam.Name                      = xmlReader.GetAttribute(nameof(Team.Name));
                            readTeam.Budget                    = int.Parse(xmlReader.GetAttribute(nameof(Team.Budget)));
                            readTeam.TrainingFacility          = int.Parse(xmlReader.GetAttribute(nameof(Team.TrainingFacility)));
                            readTeam.YouthFacility             = int.Parse(xmlReader.GetAttribute(nameof(Team.YouthFacility)));
                            readTeam.FacilityUpgradePreference = (FacilityUpgradePreference)Enum.Parse(typeof(FacilityUpgradePreference), xmlReader.GetAttribute(nameof(Team.FacilityUpgradePreference)));

                            readTeam.RacerPeople = new List <RacerPerson>();

                            xmlReader.ReadStartElement(nameof(Team));


                            do
                            {
                                var readRacerPerson = new RacerPerson();


                                readRacerPerson.RacerPersonId = Guid.Parse(xmlReader.GetAttribute(nameof(RacerPerson.RacerPersonId)));
                                readRacerPerson.FirstName     = xmlReader.GetAttribute(nameof(RacerPerson.FirstName));
                                readRacerPerson.LastName      = xmlReader.GetAttribute(nameof(RacerPerson.LastName));
                                readRacerPerson.Nation        = new Nation {
                                    NationId = int.Parse(xmlReader.GetAttribute(nameof(RacerPerson.Nation.NationId)))
                                };
                                readRacerPerson.FlatAbility              = int.Parse(xmlReader.GetAttribute(nameof(RacerPerson.FlatAbility)));
                                readRacerPerson.FlatPotentialAbility     = int.Parse(xmlReader.GetAttribute(nameof(RacerPerson.FlatPotentialAbility)));
                                readRacerPerson.ClimbingAbility          = int.Parse(xmlReader.GetAttribute(nameof(RacerPerson.ClimbingAbility)));
                                readRacerPerson.ClimbingPotentialAbility = int.Parse(xmlReader.GetAttribute(nameof(RacerPerson.ClimbingPotentialAbility)));
                                readRacerPerson.DownhillAbility          = int.Parse(xmlReader.GetAttribute(nameof(RacerPerson.DownhillAbility)));
                                readRacerPerson.DownhillPotentialAbility = int.Parse(xmlReader.GetAttribute(nameof(RacerPerson.DownhillPotentialAbility)));
                                readRacerPerson.Age = int.Parse(xmlReader.GetAttribute(nameof(RacerPerson.Age)));

                                readTeam.RacerPeople.Add(readRacerPerson);
                            } while (xmlReader.ReadToNextSibling(nameof(RacerPerson)));

                            readDivision.TeamList.Add(readTeam);
                        } while (xmlReader.ReadToNextSibling(nameof(Team)));

                        divisions.Add(readDivision);
                    } while (xmlReader.ReadToNextSibling(nameof(Division)));
                }
            }

            return(divisions);
        }