public SolversHolder(NodeCollectionStorage<FullConnectedGraph> storage, GeneticSolverBuilder geneticSolverBuilder, 
     BruteForceSolverBuilder bruteForceSolverBuilder, OptionsWindow optionsWindow)
 {
     _storage = storage;
     _geneticSolverBuilder = geneticSolverBuilder;
     _bruteForceSolverBuilder = bruteForceSolverBuilder;
     _storage.CollectionChanged += StorageChangedHandler;
     optionsWindow.Changed += OptionsChangedHandler;
     InitializeSolvers();
     InitializeFlagDictionarys();
 }
 public MainWindow()
 {
     InitializeComponent();
     var bruteForceSolverBuilder = new BruteForceSolverBuilder();
     var geneticSolverBuilder = new GeneticSolverBuilder();
     _optionsWindow = new OptionsWindow(geneticSolverBuilder, bruteForceSolverBuilder);
     _solversHolder = new SolversHolder(_nodeCollectionStorage,geneticSolverBuilder,bruteForceSolverBuilder,_optionsWindow);
     _resultsWindow = new ResultsWindow(_solversHolder, _nodeCollectionStorage);
     _nodeCountWindow = new ConfirmNodeCountWindow();
     _nodeCountWindow.ConfirmEvent += NodeCountWindowConfirmed;
     _render = new Render(MainCanvas, _nodeCollectionStorage, _solversHolder);
 }