/// <summary> /// Метод возвращает экземпляр класса <see cref="RailRoad"/> или, если в таблице нет такой записи, создаёт её /// </summary> /// <param name="name">Название железной дороги</param> /// <param name="countryName">Название страны</param> /// <returns>Экземпляр класса <see cref="RailRoad"/></returns> public RailRoad GetRailRoad(string name, string countryName) { var railRoad = RailRoads.FirstOrDefault(r => r.Name.Equals(name) && r.Country.Name.Equals(countryName)); if (railRoad == null) { railRoad = new RailRoad { Name = name, Country = GetCountry(countryName) }; RailRoads.Add(railRoad); SaveChanges(); } return(railRoad); }
/// <summary> /// Calculates the railroads that will be in play /// </summary> /// <param name="useMeRandomly"></param> /// <param name="queueListItems"></param> /// <param name="numberOfPlayers"></param> private void CalculateRailroads(Random useMeRandomly, List <int> queueListItems, int numberOfPlayers) { // local var List <RailRoads> inPlayRailroads = new List <RailRoads>(); // what do we need to do based on players switch (numberOfPlayers) { // pick which railroad to add case (3): // figure out which company is in play RailRoads railroad = (RailRoads)useMeRandomly.Next(1, 4); inPlayRailroads.Add(railroad); break; // do what's needed for 4 players (only take out 1 railroad) case (4): // which railroad is taken out? RailRoads outOfPlayRailroad = (RailRoads)useMeRandomly.Next(1, 4); // add the railroads that werent taken out List <RailRoads> railroadsToAdd = new List <RailRoads>() { RailRoads.Chesapeak_And_Ohio, RailRoads.Erie, RailRoads.Pennsylvania }.Except(new List <RailRoads>() { outOfPlayRailroad }).ToList(); // add them to the list inPlayRailroads.AddRange(railroadsToAdd); break; // add in all 5 privates case (5): // simple for loop to add all of the privates. for (int I = 1; I < 4; I++) { inPlayRailroads.Add((RailRoads)I); } break; default: // throw a new exception since this should never get here throw new Exception("Invalid number of players was received"); } // notify the user(s) Console.WriteLine("The railroad(s) chosen for play are:"); foreach (RailRoads railroad in inPlayRailroads) { Console.WriteLine($"{railroad.ToString().Replace('_', ' ')}"); } // buffer space Console.WriteLine(Environment.NewLine); }