/**************************************************************************************************** * 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(); }
/**************************************************************************************************** * 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."); }
/**************************************************************************************************** * 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(); }
/**************************************************************************************************** * 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); }
/**************************************************************************************************** * 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(); }
/**************************************************************************************************** * 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); }
/**************************************************************************************************** * 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); }
/**************************************************************************************************** * 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(); }
/**************************************************************************************************** * 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(); }