/// <summary> /// This function is the callback used to execute the command when the menu item is clicked. /// See the constructor to see how the menu item is associated with this function using /// OleMenuCommandService service and MenuCommand class. /// </summary> /// <param name="sender">Event sender.</param> /// <param name="e">Event args.</param> private void MenuItemCallback(object sender, EventArgs e) { var projects = GenerateDockerComposeProjects(ReadCountFromFile()); var setting = GetSettingsStore(TargetOS.NanoServer, projects); var model = new DockerScaffoldingModel(setting.LastSelectedTargetOS.Value, setting.LastSelectedComposeProjects); var viewModel = new DockerScaffoldingViewModel(model); var dialog = new DockerScaffoldingDialog(viewModel); if (dialog.ShowDialog() == true) { var selectedDockerComposeProjects = viewModel.AvailableDockerComposeProjects.Where(p => p.ApplyTo).Select(p => p.ProjectName).ToArray(); string displayProjects = string.Empty; foreach (var p in selectedDockerComposeProjects) { displayProjects += p + Environment.NewLine; } SaveSettings(viewModel.SelectedTargetOS, selectedDockerComposeProjects); MessageBox.Show("Window is closed: " + viewModel.SelectedTargetOS.ToString() + Environment.NewLine + displayProjects); } }
public DockerScaffoldingViewModel(DockerScaffoldingModel model) { SelectedTargetOS = model.DefaultTargetOS; _availableDockerComposeProjects = new ObservableCollection <DockerComposeProject>(model.DockerComposeProjects); _showComposeProjectsList = AvailableDockerComposeProjects.Count > 1; SaveCommand = new RelayCommand(OnSave); }