コード例 #1
0
        private void CreateProject_UEFXML_CreateProjectButton_Click(object sender, EventArgs e)
        {
            using (var dialog = DialogEx.SelectFolder())
            {
                var result = dialog.ShowDialog();

                if (result == CommonFileDialogResult.Ok)
                {
                    var projectPath = dialog.FileName;

                    if (Directory.GetFiles(projectPath, "*", SearchOption.AllDirectories).Length > 0)
                    {
                        MessageBox.Show("Directory must be empty.", "Error");

                        return;
                    }

                    Task.Factory.StartNew(() =>
                    {
                        try
                        {
                            using (var progress = _progressFactory.NewInstance("Creating and saving project..."))
                            {
                                var project = WsdProject.CreateAndSave(
                                    _projectCreateInfoUEFXML, projectPath, progress);

                                this.InvokeIfRequired(() =>
                                {
                                    RefreshUI();
                                    AddProjectTab(project);
                                });
                            }
                        }
                        catch (OperationCanceledException)
                        {
                            this.InvokeIfRequired(RefreshUI);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.ToString(), "Error");
                        }
                    }, TaskCreationOptions.LongRunning);
                }
            }
        }