/// <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);
            }
        }
예제 #2
0
        public DockerScaffoldingViewModel(DockerScaffoldingModel model)
        {
            SelectedTargetOS = model.DefaultTargetOS;
            _availableDockerComposeProjects = new ObservableCollection <DockerComposeProject>(model.DockerComposeProjects);

            _showComposeProjectsList = AvailableDockerComposeProjects.Count > 1;
            SaveCommand = new RelayCommand(OnSave);
        }