private void OpenNewSolution(OpenNewSolutionEvent @event)
      {
         Path.Value = @event.Path;
         _eventBus.Publish(new ShowContentEvent { ViewModel = this });
         _solution = Solution.Load(@event.Path);
         _settings = new SolutionSettings
                     {
                        MsBuild =
                        {
                           Configuration = _solution.Configurations.First(),
                           Platform = _solution.Platforms.First()
                        },
                        Path = @event.Path,
                        Projects = _solution.Select(x => new ProjectSettings
                                                         {
                                                            IsTestProject = x.IsTestProject(),
                                                            Path = x.Path
                                                         })
                                            .ToList()
                     };
         _solution.Changed += delegate { HasChanges.Value = true; };
         _onSettingsClosed = settingsAccepted =>
                             {
                                if (settingsAccepted)
                                {
                                   IsEnabled.Value = true;
                                   HasChanges.Value = true;
                                }
                                else
                                {
                                   Exit();
                                }
                             };

         _eventBus.Publish(new ShowSettingsEvent
                           {
                              Configurations = _solution.Configurations,
                              Platforms = _solution.Platforms,
                              Settings = _settings
                           });
      }
      private void OpenSolution(OpenSolutionEvent @event)
      {
         _eventBus.Publish(new ShowContentEvent { ViewModel = this });
         _settings = SolutionSettings.Load(@event.Id);
         Path.Value = _settings.Path;
         _solution = Solution.Load(_settings.Path);
         // TODO handle projects added/removed
         _solution.Changed += delegate { HasChanges.Value = true; };

         _onSettingsClosed = settingsAccepted =>
                             {
                                if (!settingsAccepted) return;
                                HasChanges.Value = true;
                                IsEnabled.Value = true;
                             };

         if (@event.ShowSettings)
         {
            ShowSettings();
         }
         else
         {
            HasChanges.Value = true;
            IsEnabled.Value = true;
         }
      }