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); }
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); }