/// <summary>
        /// Constructor
        /// </summary>
        public BruteOptimizationViewModel(Strategy strategy)
        {
            // Save Dispatcher reference to be used for UI modifications
            _currentDispatcher = Dispatcher.CurrentDispatcher;

            _selectedStrategy                = strategy;
            _bruteForceParameters            = new BruteForceParameters(_selectedStrategy.StrategyType);
            _managerBruteForce               = new OptimizationManagerBruteForce();
            OptimizationStatisticsCollection = new ObservableCollection <OptimizationStatistics>();

            DisplayParameterDetails();

            // Subscribe Event to Update UI for results
            EventSystem.Subscribe <OptimizationStatistics>(DisplayOptimizationStatistics);
        }
        protected virtual void Dispose(bool disposing)
        {
            if (!_disposed)
            {
                if (disposing)
                {
                    _managerBruteForce.Dispose();
                    _optimizationStatisticsCollection.Clear();

                    // Unsubscibe events
                    EventSystem.Unsubscribe <OptimizationStatistics>(DisplayOptimizationStatistics);
                }

                // Release unmanaged resources.
                _currentDispatcher = null;
                _managerBruteForce = null;
                _optimizationStatisticsCollection = null;
                _disposed = true;
            }
        }
 public void SetUp()
 {
     _optimizationManager = new OptimizationManagerBruteForce();
 }