private ManifestsViewModel GetManifestsViewModel() { var manifestsModel = new ManifestsViewModel { AllowEdit = true, }; manifestsModel.EditTestCollectionCommand = new DelegateCommand(() => { manifestsModel.AllowEdit = false; _eventAggregator.GetEvent<EditTestCollectionEvent>().Publish(manifestsModel.SelectedManifest.Name); }, () => manifestsModel.AllowEdit && !manifestsModel.TestsRunning); manifestsModel.LoadManifestCommand = new DelegateCommand(() => { var dialog = new OpenFileDialog { Filter = "Manifest File|.manifests.json", }; var result = dialog.ShowDialog(); if (result == true) { _configurationService.TestScriptsPath = Path.GetDirectoryName(dialog.FileName); _manifestService.ReloadManifest(); LoadManifests(manifestsModel); } }, () => !manifestsModel.TestsRunning); manifestsModel.SelectedManifestChangedCommand = new DelegateCommand<ManifestViewModel>( selectedManifest => { _manifestService.SetActiveManifest(selectedManifest.Name); _eventAggregator.GetEvent<SelectedManifestChangedEvent>().Publish(selectedManifest.Name); }); LoadManifests(manifestsModel); return manifestsModel; }
public ManifestsView(ManifestsViewModel viewModel) { InitializeComponent(); DataContext = viewModel; }
private void LoadManifests(ManifestsViewModel manifestsModel) { manifestsModel.Manifests.Clear(); try { var manifests = _manifestService.GetManifestNames(); foreach (var manifestName in manifests) { var manifest = _manifestService.GetManifest(manifestName); manifestsModel.Manifests.Add(new ManifestViewModel { Name = manifestName, Description = manifest.Description, DomainOverride = manifest.OverrideDomain, TestCollections = new ObservableCollection<TestCollectionViewModel>(LoadTestCollections(manifestName)), DomainOverrideChangedCommand = new DelegateCommand<string>( param => _manifestService.SetActiveManifestDomain(param != null ? param.ToString() : string.Empty)) }); } var selectedManifestName = _manifestService.GetActiveManifestName(); manifestsModel.SelectedManifest = manifestsModel.Manifests.FirstOrDefault(m => m.Name == selectedManifestName); } catch (Exception e) { // TODO: Get rid of the messagebox, it's a nasty blocking call. MessageBox.Show(e.Message, "Error Loading Manifest List", MessageBoxButton.OK, MessageBoxImage.Error); } }