示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }