public ProjectCreator(ProjectRequest projectRequest, ProjectTemplateInfo projectTemplate, IMessageBoxService messageBoxService) { _projectRequest = projectRequest; _messageBoxService = messageBoxService; ProjectTemplate = projectTemplate; }
// Execute the default task sequence on the project. // When a template is created from a Single file project, task sequencies is null. private void ExecuteTaskSequence(FileBasedProject project, ProjectFile[] projectFiles, ProjectRequest request) { try { var taskSequence = project.RunDefaultTaskSequence(projectFiles.GetIds(), (sender, e) => { if (Requests != null) { OnProgressChanged(_currentProgress + (double)e.PercentComplete / Requests.Count); } }, (sender, e) => { OnMessageReported(project, e.Message); }); project.Save(); if (taskSequence.Status.Equals(TaskStatus.Completed)) { if (SuccessfulRequests != null) { SuccessfulRequests.Add(Tuple.Create(request, project)); OnMessageReported(project, $"Project {request.Name} created successfully."); } } else { OnMessageReported(project, $"Project {request.Name} creation failed."); } } catch (Exception ex) { Log.Logger.Error($"ExecuteTaskSequence method: {ex.Message}\n {ex.StackTrace}"); _messageBoxService.ShowMessage(PluginResources.ProjectTemplateSequenceSelection_Message, string.Empty); } }