/// <summary>
 /// Constructor.  Used by unit tests
 /// </summary>
 public WaterWarsController(
     Persister persister, Recorder recorder, IWaterForecaster forecaster, IRainfallGenerator rainfallGenerator,
     IWaterDistributor distributor, IWaterAllocator allocator,
     IEconomicForecaster economicForecaster, IEconomicGenerator economicGenerator, IEconomicDistributor economicDistributor,
     UserAccount economyUserAccount)
     : this(new List <Scene>(), persister, recorder, forecaster, rainfallGenerator, distributor, allocator,
            economicForecaster, economicGenerator, economicDistributor, economyUserAccount)
 {
 }
        public WaterWarsController(
            List <Scene> scenes, Persister persister, Recorder recorder, IWaterForecaster forecaster,
            IRainfallGenerator rainfallGenerator, IWaterDistributor distributor, IWaterAllocator allocator,
            IEconomicForecaster economicForecaster, IEconomicGenerator economicGenerator, IEconomicDistributor economicDistributor,
            UserAccount economyUserAccount)
        {
            Scenes              = scenes;
            EconomyUserAccount  = economyUserAccount;
            Persister           = persister;
            m_recorder          = recorder;
            Forecaster          = forecaster;
            RainfallGenerator   = rainfallGenerator;
            WaterDistributor    = distributor;
            WaterAllocator      = allocator;
            EconomicForecaster  = economicForecaster;
            EconomicGenerator   = economicGenerator;
            EconomicDistributor = economicDistributor;

            // We have to do this in the constructor so that when the Dispatcher is set before initialize it has
            // a valid class on which to start listening for events
            EventManager = new WaterWarsEventManager();
        }
        public WaterWarsController(
            List<Scene> scenes, Persister persister, Recorder recorder, IWaterForecaster forecaster,
            IRainfallGenerator rainfallGenerator, IWaterDistributor distributor, IWaterAllocator allocator,
            IEconomicForecaster economicForecaster, IEconomicGenerator economicGenerator, IEconomicDistributor economicDistributor, 
            UserAccount economyUserAccount)
        {
            Scenes = scenes;
            EconomyUserAccount = economyUserAccount;
            Persister = persister;
            m_recorder = recorder;
            Forecaster = forecaster;
            RainfallGenerator = rainfallGenerator;
            WaterDistributor = distributor;
            WaterAllocator = allocator;
            EconomicForecaster = economicForecaster;
            EconomicGenerator = economicGenerator;
            EconomicDistributor = economicDistributor;

            // We have to do this in the constructor so that when the Dispatcher is set before initialize it has
            // a valid class on which to start listening for events
            EventManager = new WaterWarsEventManager();
        }
 /// <summary>
 /// Constructor.  Used by unit tests
 /// </summary>
 public WaterWarsController(
     Persister persister, Recorder recorder, IWaterForecaster forecaster, IRainfallGenerator rainfallGenerator, 
     IWaterDistributor distributor, IWaterAllocator allocator, 
     IEconomicForecaster economicForecaster, IEconomicGenerator economicGenerator, IEconomicDistributor economicDistributor, 
     UserAccount economyUserAccount)
     : this(new List<Scene>(), persister, recorder, forecaster, rainfallGenerator, distributor, allocator, 
           economicForecaster, economicGenerator, economicDistributor, economyUserAccount)
 {
 }