Exemplo n.º 1
0
/****************************************************************************************************
 * Test Excercise 4
 * Modify the EmydexFarmSystem.ReleaseAllAnimals() so that all animals are released (simply clear the collection )
 * Expose an event on the FarmSystem FarmEmpty which is invoked once all the animals are released
 * Subscribe to that event in the main to get the expected output
 *
 * Expected Test 4 Program Output
 *
 * Exercise 4: Press any key to free all animals
 * Cow has entered the farm
 * Hen has entered the farm
 * Horse has entered the farm
 * Sheep has entered the farm
 * Cow has left the farm
 * Hen has left the farm
 * Horse has left the farm
 * Sheep has left the farm
 * Emydex Farm is now empty
 ********************************************************************************************************************/
        private static void Excercise4()
        {
            Console.WriteLine("Exercise 4: Press any key to free all animals");
            Console.ReadKey();

            var farm = new EmydexFarmSystem();

            Cow cow = new Cow();

            farm.Enter(cow);

            Hen hen = new Hen();

            farm.Enter(hen);

            Horse horse = new Horse();

            farm.Enter(horse);

            Sheep sheep = new Sheep();

            farm.Enter(sheep);

            farm.ReleaseAllAnimals();

            Console.ReadKey();
        }
        /****************************************************************************************************
         * Test Excercise 4
         * Modify the EmydexFarmSystem.ReleaseAllAnimals() so that all animals are released (simply clear the collection )
         * Expose an event on the FarmSystem FarmEmpty which is invoked once all the animals are released
         * Subscribe to that event in the main to get the expected output
         *
         * Expected Test 4 Program Output
         *
         * Exercise 4: Press any key to free all animals
         * Cow has entered the farm
         * Hen has entered the farm
         * Horse has entered the farm
         * Sheep has entered the farm
         * Cow has left the farm
         * Hen has left the farm
         * Horse has left the farm
         * Sheep has left the farm
         * Emydex Farm is now empty
         ********************************************************************************************************************/
        private static void Excercise4()
        {
            //TODO : Apply OOP concepts and modify the code below to get the required output
            Console.WriteLine("Exercise 4: Press any key to free all animals");
            Console.ReadKey();

            using (EmydexFarmSystem farm = new EmydexFarmSystem())
            {
                // Subscribe to the farmempty event
                farm.FarmEmpty += (s, e) => { Console.WriteLine("Emydex Farm is now empty"); };

                //List<IAnimal> animals = new List<IAnimal>() { new Cow(), new Hen(), new Horse(), new Sheep() };

                animals.ForEach(animal =>
                {
                    // Assign an Id to each animal,
                    // the NoOfLegs can be predefined within the class as they do not change, but still can be changed setting the property
                    animal.Id = Guid.NewGuid().ToString();
                    // Enter the farm
                    farm.Enter(animal);
                });
                farm.ReleaseAllAnimals();
            }
            Console.ReadKey();
        }
Exemplo n.º 3
0
/****************************************************************************************************
 * Test Excercise 4
 * Modify the EmydexFarmSystem.ReleaseAllAnimals() so that all animals are released (simply clear the collection )
 * Expose an event on the FarmSystem FarmEmpty which is invoked once all the animals are released
 * Subscribe to that event in the main to get the expected output
 *
 * Expected Test 4 Program Output
 *
 * Exercise 4: Press any key to free all animals
 * Cow has entered the farm
 * Hen has entered the farm
 * Horse has entered the farm
 * Sheep has entered the farm
 * Cow has left the farm
 * Hen has left the farm
 * Horse has left the farm
 * Sheep has left the farm
 * Emydex Farm is now empty
 ********************************************************************************************************************/
        private static void Excercise4()
        {
            //TODO : Apply OOP concepts and modify the code below to get the required output
            Console.WriteLine("Exercise 4: Press any key to free all animals");
            Console.ReadKey();
            var farm = new EmydexFarmSystem();
            Cow cow  = new Cow();

            cow.Id = Guid.NewGuid().ToString();
            farm.Enter(cow);

            Hen hen = new Hen();

            hen.Id       = Guid.NewGuid().ToString();
            hen.NoOfLegs = 2;
            farm.Enter(hen);

            Horse horse = new Horse();

            horse.Id = Guid.NewGuid().ToString();
            farm.Enter(horse);

            Sheep sheep = new Sheep();

            sheep.Id = Guid.NewGuid().ToString();
            farm.Enter(sheep);

            farm.ReleaseAllAnimals();

            Console.WriteLine("Press any key to close the app.");
        }
Exemplo n.º 4
0
/****************************************************************************************************
 * Test Excercise 4
 * Modify the EmydexFarmSystem.ReleaseAllAnimals() so that all animals are released (simply clear the collection )
 * Expose an event on the FarmSystem FarmEmpty which is invoked once all the animals are released
 * Subscribe to that event in the main to get the expected output
 *
 * Expected Test 4 Program Output
 *
 * Exercise 4: Press any key to free all animals
 * Cow has entered the farm
 * Hen has entered the farm
 * Horse has entered the farm
 * Sheep has entered the farm
 * Cow has left the farm
 * Hen has left the farm
 * Horse has left the farm
 * Sheep has left the farm
 * Emydex Farm is now empty
 ********************************************************************************************************************/
        private static void Excercise4()
        {
            //TODO : Apply OOP concepts and modify the code below to get the required output
            Console.WriteLine("Exercise 4: Press any key to free all animals");
            Console.ReadKey();
            var farm = new EmydexFarmSystem();
            Cow cow  = new Cow();

            farm.Enter(cow); // can pass constructor too, ex. farm.Enter(new Cow());

            Hen hen = new Hen();

            farm.Enter(hen);

            Horse horse = new Horse();

            farm.Enter(horse);

            Sheep sheep = new Sheep();

            farm.Enter(sheep);

            farm.ReleaseAllAnimals();
            Console.ReadKey();
        }
Exemplo n.º 5
0
        /****************************************************************************************************
         * Test Excercise 4
         * Modify the EmydexFarmSystem.ReleaseAllAnimals() so that all animals are released (simply clear the collection )
         * Expose an event on the FarmSystem FarmEmpty which is invoked once all the animals are released
         * Subscribe to that event in the main to get the expected output
         *
         * Expected Test 4 Program Output
         *
         * Exercise 4: Press any key to free all animals
         * Cow has entered the farm
         * Hen has entered the farm
         * Horse has entered the farm
         * Sheep has entered the farm
         * Cow has left the farm
         * Hen has left the farm
         * Horse has left the farm
         * Sheep has left the farm
         * Emydex Farm is now empty
         ********************************************************************************************************************/
        private static void Excercise4()
        {
            //TODO : Apply OOP concepts and modify the code below to get the required output
            Console.WriteLine("Exercise 4: Press any key to free all animals");
            Console.ReadKey();
            var farm = new EmydexFarmSystem();
            Cow cow  = new Cow();

            cow.Id       = Guid.NewGuid().ToString();
            cow.NoOfLegs = 4;
            cow.Name     = "Cow";
            farm.Enter(cow);

            Hen hen = new Hen();

            hen.Id       = Guid.NewGuid().ToString();
            hen.NoOfLegs = 4;
            hen.Name     = "Hen";
            farm.Enter(hen);

            Horse horse = new Horse();

            horse.Id       = Guid.NewGuid().ToString();
            horse.NoOfLegs = 4;
            horse.Name     = "Horse";
            farm.Enter(horse);

            Sheep sheep = new Sheep();

            sheep.Id       = Guid.NewGuid().ToString();
            sheep.NoOfLegs = 4;
            sheep.Name     = "Sheep";
            farm.Enter(sheep);

            Animal animal1 = new Animal {
                Id = cow.Id
            };
            Animal animal2 = new Animal {
                Id = hen.Id
            };
            Animal animal3 = new Animal {
                Id = horse.Id
            };
            Animal animal4 = new Animal {
                Id = sheep.Id
            };

            List <Animal> listOfAnimals = new List <Animal>();

            listOfAnimals.Add(animal1);
            listOfAnimals.Add(animal2);
            listOfAnimals.Add(animal3);
            listOfAnimals.Add(animal4);
            farm.ReleaseAllAnimals(listOfAnimals);
        }
Exemplo n.º 6
0
/****************************************************************************************************
 * Test Excercise 4
 * Modify the EmydexFarmSystem.ReleaseAllAnimals() so that all animals are released (simply clear the collection )
 * Expose an event on the FarmSystem FarmEmpty which is invoked once all the animals are released
 * Subscribe to that event in the main to get the expected output
 *
 * Expected Test 4 Program Output
 *
 * Exercise 4: Press any key to free all animals
 * Cow has entered the farm
 * Hen has entered the farm
 * Horse has entered the farm
 * Sheep has entered the farm
 * Cow has left the farm
 * Hen has left the farm
 * Horse has left the farm
 * Sheep has left the farm
 * Emydex Farm is now empty
 ********************************************************************************************************************/
        private static void Excercise4()
        {
            //TODO : Apply OOP concepts and modify the code below to get the required output
            Console.WriteLine("Exercise 4: Press any key to free all animals");
            Console.ReadKey();
            var farm = new EmydexFarmSystem();

            AnimalsInFarm(farm);

            //Subscribe FarmEmpty event
            FarmEmptyEventSubscriber subscriber = new FarmEmptyEventSubscriber(farm);

            farm.ReleaseAllAnimals();
            Console.ReadKey();
        }
Exemplo n.º 7
0
        /****************************************************************************************************
         * Test Excercise 4
         * Modify the EmydexFarmSystem.ReleaseAllAnimals() so that all animals are released (simply clear the collection )
         * Expose an event on the FarmSystem FarmEmpty which is invoked once all the animals are released
         * Subscribe to that event in the main to get the expected output
         *
         * Expected Test 4 Program Output
         *
         * Exercise 4: Press any key to free all animals
         * Cow has entered the farm
         * Hen has entered the farm
         * Horse has entered the farm
         * Sheep has entered the farm
         * Cow has left the farm
         * Hen has left the farm
         * Horse has left the farm
         * Sheep has left the farm
         * Emydex Farm is now empty
         ********************************************************************************************************************/
        private static void Excercise4(EmydexFarmSystem farm)
        {
            //TODO : Apply OOP concepts and modify the code below to get the required output
            Console.WriteLine("Exercise 4: Press any key to free all animals");
            Console.ReadKey();

            farm.ShowFarmAnimals();


            farm.FarmEmpty += FarmEmptyWarning;
            farm.ReleaseAllAnimals();
            Console.WriteLine();
            Console.ReadKey();
            Environment.Exit(0);
        }
Exemplo n.º 8
0
        /****************************************************************************************************
         * Test Exercise 4
         * Modify the EmydexFarmSystem.ReleaseAllAnimals() so that all animals are released (simply clear the collection )
         * Expose an event on the FarmSystem FarmEmpty which is invoked once all the animals are released
         * Subscribe to that event in the main to get the expected output
         *
         * Expected Test 4 Program Output
         *
         * Exercise 4: Press any key to free all animals
         * Cow has entered the farm
         * Hen has entered the farm
         * Horse has entered the farm
         * Sheep has entered the farm
         * Cow has left the farm
         * Hen has left the farm
         * Horse has left the farm
         * Sheep has left the farm
         * Emydex Farm is now empty
         ********************************************************************************************************************/
        private static void Exercise4()
        {
            Console.WriteLine("Exercise 4: Press any key to free all animals");
            Console.ReadKey(true);

            var farm = new EmydexFarmSystem();

            farm.FarmCleared += OnFarmClearedHandler;

            farm.EnterMob
            (
                CreateMob()
            );
            farm.ReleaseAllAnimals();

            Console.WriteLine();
            Console.ReadKey(true);
        }
Exemplo n.º 9
0
/****************************************************************************************************
 * Test Excercise 4
 * Modify the EmydexFarmSystem.ReleaseAllAnimals() so that all animals are released (simply clear the collection )
 * Expose an event on the FarmSystem FarmEmpty which is invoked once all the animals are released
 * Subscribe to that event in the main to get the expected output
 *
 * Expected Test 4 Program Output
 *
 * Exercise 4: Press any key to free all animals
 * Cow has entered the farm
 * Hen has entered the farm
 * Horse has entered the farm
 * Sheep has entered the farm
 * Cow has left the farm
 * Hen has left the farm
 * Horse has left the farm
 * Sheep has left the farm
 * Emydex Farm is now empty
 ********************************************************************************************************************/
        private static void Excercise4()
        {
            // Local function to write out when the farm is empty
            void FarmEmptied()
            {
                Console.WriteLine("Emydex Farm is now empty");
            }

            //TODO : Apply OOP concepts and modify the code below to get the required output
            Console.WriteLine("Exercise 4: Press any key to free all animals");
            Console.ReadKey();
            var farm = new EmydexFarmSystem();

            // Subscribe To when the Farm is emptied
            farm.FarmEmpty += FarmEmptied;

            Cow cow = new Cow();

            cow.Id       = Guid.NewGuid().ToString();
            cow.NoOfLegs = 4;
            farm.Enter(cow);

            Hen hen = new Hen();

            hen.Id       = Guid.NewGuid().ToString();
            cow.NoOfLegs = 4;
            farm.Enter(hen);

            Horse horse = new Horse();

            horse.Id       = Guid.NewGuid().ToString();
            horse.NoOfLegs = 4;
            farm.Enter(horse);

            Sheep sheep = new Sheep();

            sheep.Id       = Guid.NewGuid().ToString();
            sheep.NoOfLegs = 4;
            farm.Enter(sheep);

            farm.ReleaseAllAnimals();
            Console.ReadKey();
        }
Exemplo n.º 10
0
/****************************************************************************************************
 * Test Excercise 4
 * Modify the EmydexFarmSystem.ReleaseAllAnimals() so that all animals are released (simply clear the collection )
 * Expose an event on the FarmSystem FarmEmpty which is invoked once all the animals are released
 * Subscribe to that event in the main to get the expected output
 *
 * Expected Test 4 Program Output
 *
 * Exercise 4: Press any key to free all animals
 * Cow has entered the farm
 * Hen has entered the farm
 * Horse has entered the farm
 * Sheep has entered the farm
 * Cow has left the farm
 * Hen has left the farm
 * Horse has left the farm
 * Sheep has left the farm
 * Emydex Farm is now empty
 ********************************************************************************************************************/
        private static void Excercise4()
        {
            //TODO : Apply OOP concepts and modify the code below to get the required output
            Console.WriteLine("Exercise 4: Press any key to free all animals");
            Console.ReadKey();
            var farm = new EmydexFarmSystem();
            var cow  = new Cow
            {
                Id       = Guid.NewGuid().ToString(),
                NoOfLegs = 4
            };

            farm.Enter(cow);

            var hen = new Hen
            {
                Id       = Guid.NewGuid().ToString(),
                NoOfLegs = 2
            };

            farm.Enter(hen);

            var horse = new Horse
            {
                Id       = Guid.NewGuid().ToString(),
                NoOfLegs = 4
            };

            farm.Enter(horse);

            var sheep = new Sheep
            {
                Id       = Guid.NewGuid().ToString(),
                NoOfLegs = 4
            };

            farm.Enter(sheep);

            farm.ReleaseAllAnimals();
            Console.ReadKey();
        }