Beispiel #1
0
        // 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)
            {
                _logger.Error($"ExecuteTaskSequence method: {ex.Message}\n {ex.StackTrace}");
                _messageBoxService.ShowMessage(PluginResources.ProjectTemplateSequenceSelection_Message, string.Empty);
            }
        }
Beispiel #2
0
        private FileBasedProject CreateProject(ProjectRequest request)
        {
            ProjectInfo projectInfo = new ProjectInfo
            {
                Name = request.Name,
                LocalProjectFolder = GetProjectFolderPath(request.Name),
            };
            FileBasedProject project = new FileBasedProject(projectInfo,
                                                            new ProjectTemplateReference(request.ProjectTemplate.Uri));

            // new ProjectTemplateReference(ProjectTemplate.Uri));

            OnMessageReported(project, String.Format("Creating project {0}", request.Name));

            //path to subdirectory
            var subdirectoryPath =
                request.Files[0].Substring(0, request.Files[0].IndexOf(request.Name, StringComparison.Ordinal)) +
                request.Name;

            ProjectFile[] projectFiles = project.AddFolderWithFiles(subdirectoryPath, true);
            project.RunAutomaticTask(projectFiles.GetIds(), AutomaticTaskTemplateIds.Scan);

            //when a template is created from a Single file project, task sequencies is null.
            try
            {
                TaskSequence taskSequence = project.RunDefaultTaskSequence(projectFiles.GetIds(),
                                                                           (sender, e)
                                                                           =>
                {
                    OnProgressChanged(_currentProgress + (double)e.PercentComplete / Requests.Count);
                }
                                                                           , (sender, e)
                                                                           =>
                {
                    OnMessageReported(project, e.Message);
                });

                project.Save();

                if (taskSequence.Status == TaskStatus.Completed)
                {
                    SuccessfulRequests.Add(Tuple.Create(request, project));
                    OnMessageReported(project, String.Format("Project {0} created successfully.", request.Name));
                    return(project);
                }
                else
                {
                    OnMessageReported(project, String.Format("Project {0} creation failed.", request.Name));
                    return(null);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(
                    @"Please go to File -> Setup -> Project templates -> Select a template -> Edit -> Default Task Sequence -> Ok after that run again Content connector");
                TelemetryService.Instance.AddException(ex);
            }

            return(project);
        }
Beispiel #3
0
        private FileBasedProject CreateProject(ProjectRequest request)
        {
            ProjectInfo projectInfo = new ProjectInfo
            {
                Name = request.Name,
                LocalProjectFolder = GetProjectFolderPath(request.Name)
            };
            FileBasedProject project = new FileBasedProject(projectInfo, new ProjectTemplateReference(ProjectTemplate.Uri));

            OnMessageReported(project, string.Format("Creating project {0}", request.Name));

            ProjectFile[] projectFiles = project.AddFiles(request.Files.ToArray());
            project.RunAutomaticTask(projectFiles.GetIds(), AutomaticTaskTemplateIds.Scan);
            TaskSequence taskSequence = project.RunDefaultTaskSequence(projectFiles.GetIds(),
                                                                       (sender, e)
                                                                       =>
            {
                OnProgressChanged(_currentProgress + (double)e.PercentComplete / Requests.Count);
            }
                                                                       , (sender, e)
                                                                       =>
            {
                OnMessageReported(project, e.Message);
            });

            project.Save();

            if (taskSequence.Status == TaskStatus.Completed)
            {
                SuccessfulRequests.Add(Tuple.Create(request, project));
                OnMessageReported(project, string.Format("Project {0} created successfully.", request.Name));
                return(project);
            }
            else
            {
                OnMessageReported(project, string.Format("Project {0} creation failed.", request.Name));
                return(null);
            }
        }
        private FileBasedProject CreateProject(ProjectRequest request)
        {
            try
            {
                if (request?.ProjectTemplate != null)
                {
                    var projectInfo = new ProjectInfo
                    {
                        Name = request.Name,
                        LocalProjectFolder = GetProjectFolderPath(request.Name, request.ProjectTemplate.Uri?.LocalPath)
                    };
                    var project = new FileBasedProject(projectInfo,
                                                       new ProjectTemplateReference(request.ProjectTemplate.Uri));

                    OnMessageReported(project, $"Creating project {request.Name}");

                    if (request.Files != null)
                    {
                        //path to subdirectory
                        var subdirectoryPath = Path.GetDirectoryName(request.Files[0]);

                        var projectFiles = project.AddFolderWithFiles(subdirectoryPath, true);
                        project.RunAutomaticTask(projectFiles.GetIds(), AutomaticTaskTemplateIds.Scan);

                        //when a template is created from a Single file project, task sequencies is null.
                        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 == TaskStatus.Completed)
                            {
                                if (SuccessfulRequests != null)
                                {
                                    SuccessfulRequests.Add(Tuple.Create(request, project));
                                    OnMessageReported(project, $"Project {request.Name} created successfully.");
                                    return(project);
                                }
                            }
                            else
                            {
                                OnMessageReported(project, $"Project {request.Name} creation failed.");
                                return(null);
                            }
                        }
                        catch (Exception ex)
                        {
                            Log.Logger.Error($"ProjectCreator-> CreateProject method: {ex.Message}\n {ex.StackTrace}");
                            MessageBox.Show(
                                @"Please go to File -> Setup -> Project templates -> Select a template -> Edit -> Default Task Sequence -> Ok after that run again Content connector");
                        }
                    }
                    return(project);
                }

                MessageBox.Show(@"Please select a project template from InSource view", @"Project template is missing",
                                MessageBoxButtons.OK);
            }
            catch (Exception e)
            {
                Log.Logger.Error($"ProjectCreator-> CreateProject method: {e.Message}\n {e.StackTrace}");
            }
            return(null);
        }