public ToolWindowViewModel(InstallBakerEventAggregator eventAggregator, DependenciesRegistry dependenciesRegistry)
 {
     _eventAggregator = eventAggregator;
     _dependenciesRegistry = dependenciesRegistry;
     Initialize();
     HookEvents();
 }
 protected override void OnClose()
 {
     _toolWindowViewModel.Dispose();
     _dependenciesRegistry.Dispose();
     _buildProgressService.Dispose();
     _installerProjectManagementService.Dispose();
     _eventAggreagator = null;
     _toolWindowViewModel = null;
     _dependenciesRegistry = null;
     _buildProgressService = null;
     _installerProjectManagementService = null;
     base.OnClose();
 }
        protected override void Initialize()
        {
            base.Initialize();
            _basePackage = (InstallBakerPackage)Package;
            _eventAggreagator = new InstallBakerEventAggregator();
            _dependenciesRegistry = new DependenciesRegistry(_eventAggreagator);
            _toolWindowViewModel = new ToolWindowViewModel(_eventAggreagator, _dependenciesRegistry);
            ((ToolWindowView) Content).DataContext = _toolWindowViewModel;

            _installerProjectManagementService = new InstallerProjectManagementService(_eventAggreagator,
                                                                       _basePackage.IDE.Events.SolutionEvents, _basePackage.IDE.Solution);
            // TODO Find a better way
            _dependenciesRegistry.ItsInstallerProjectManagementService = _installerProjectManagementService;
            _buildProgressService = new BuildProgressService(_eventAggreagator, _basePackage.IDE.Events.BuildEvents, _basePackage.IDE.Solution);
        }