public void CreateMethodTree(GeneratedCodeInfo generatedCodeInfo)
        {
            AddItemTemplateToProjectNew(generatedCodeInfo.WrapperCodeInfo, false);

            var splittedByLinesArray = generatedCodeInfo.MethodCodeInfo.Code.Split(new string[] { "\r\n" }, StringSplitOptions.None);
            int index = 1;

            for (int i = 0; i < splittedByLinesArray.Length; i++)
            {
                if (splittedByLinesArray[i].Contains("#region MethodCode"))
                {
                    index = i + 2;
                }
            }
            AddItemTemplateToProjectNew(generatedCodeInfo.MethodCodeInfo, true, index);
            AddItemTemplateToProjectNew(generatedCodeInfo.TestsCodeInfo, false);

            foreach (var partialCodeInfo in generatedCodeInfo.PartialCodeInfoList)
            {
                AddItemTemplateToProjectNew(partialCodeInfo, false);
            }

            foreach (var externalItemsInfo in generatedCodeInfo.ExternalItemsInfoList)
            {
                AddItemTemplateToProjectNew(externalItemsInfo, false);
            }
        }
        public void CreateMethodTree(GeneratedCodeInfo generatedCodeInfo, PackageInfo packageInfo)
        {
            string packageMethodFolderPath = this.projectConfigurationManager.CurrentProjectConfiguraiton.UseCommonProjectStructure ? packageInfo.MethodFolderPath : string.Empty;

            AddItemTemplateToProjectNew(generatedCodeInfo.WrapperCodeInfo, packageMethodFolderPath, false);

            var splittedByLinesArray = generatedCodeInfo.MethodCodeInfo.Code.Split(new string[] { "\r\n" }, StringSplitOptions.None);
            int index = 1;

            for (int i = 0; i < splittedByLinesArray.Length; i++)
            {
                if (splittedByLinesArray[i].Contains(GlobalConsts.RegionMethodCode))
                {
                    index = i + 2;
                }
            }
            AddItemTemplateToProjectNew(generatedCodeInfo.MethodCodeInfo, packageMethodFolderPath, true, index);

            foreach (var partialCodeInfo in generatedCodeInfo.PartialCodeInfoList)
            {
                AddItemTemplateToProjectNew(partialCodeInfo, packageMethodFolderPath, false);
            }

            foreach (var externalItemsInfo in generatedCodeInfo.ExternalItemsInfoList)
            {
                AddItemTemplateToProjectNew(externalItemsInfo, packageMethodFolderPath, false);
            }
        }
        public override void ExecuteCommandImpl(object sender, EventArgs args)
        {
            var project = projectManager.SelectedProject;

            string projectConfigPath = projectManager.ProjectConfigPath;
            string methodConfigPath  = projectManager.MethodConfigPath;

            var projectConfiguration = projectConfigurationManager.Load(projectConfigPath);

            string     selectedMethodPath = projectManager.MethodPath;
            string     selectedMethodName = Path.GetFileNameWithoutExtension(selectedMethodPath);
            MethodInfo methodInformation  = projectConfiguration.MethodInfos.FirstOrDefault(m => m.MethodName == selectedMethodName);

            if (methodInformation == null)
            {
                throw new Exception();
            }

            var templateLoader = new TemplateLoader(this.dialogFactory);

            templateLoader.Load(methodConfigPath);

            var packageManager = new PackageManager(authManager);

            var updateView       = dialogFactory.GetUpdateFromArasView(projectConfigurationManager, projectConfiguration, templateLoader, packageManager, methodInformation, projectConfigPath, project.Name, project.FullName);
            var updateViewResult = updateView.ShowDialog();

            if (updateViewResult?.DialogOperationResult != true)
            {
                return;
            }

            var eventData = CommonData.EventSpecificDataTypeList.First(x => x.EventSpecificData == updateViewResult.EventSpecificData);

            ICodeProvider     codeProvider = codeProviderFactory.GetCodeProvider(project.CodeModel.Language, projectConfiguration);
            GeneratedCodeInfo codeInfo     = codeProvider.GenerateCodeInfo(updateViewResult.SelectedTemplate, eventData, updateViewResult.MethodName, false, updateViewResult.MethodCode, updateViewResult.IsUseVSFormattingCode);

            projectManager.CreateMethodTree(codeInfo);

            var methodInfo = new MethodInfo()
            {
                InnovatorMethodConfigId = updateViewResult.MethodConfigId,
                InnovatorMethodId       = updateViewResult.MethodId,
                MethodLanguage          = updateViewResult.MethodLanguage,
                MethodName                  = updateViewResult.MethodName,
                MethodType                  = updateViewResult.MethodType,
                PackageName                 = updateViewResult.PackageName,
                TemplateName                = updateViewResult.SelectedTemplate.TemplateName,
                EventData                   = updateViewResult.EventSpecificData,
                ExecutionAllowedToId        = updateViewResult.ExecutionIdentityId,
                ExecutionAllowedToKeyedName = updateViewResult.ExecutionIdentityKeyedName,
                MethodComment               = updateViewResult.MethodComment,
                PartialClasses              = codeInfo.PartialCodeInfoList.Select(pci => pci.Path).ToList(),
                ExternalItems               = codeInfo.ExternalItemsInfoList.Select(pci => pci.Path).ToList()
            };

            projectConfiguration.AddMethodInfo(methodInfo);
            projectConfiguration.UseVSFormatting = updateViewResult.IsUseVSFormattingCode;
            projectConfigurationManager.Save(projectConfigPath, projectConfiguration);
        }
Ejemplo n.º 4
0
        public void CreateTestsNew_ShouldReturnCorrectTestCode()
        {
            //Arrange
            var currentPath = System.AppDomain.CurrentDomain.BaseDirectory;

            projectManager.DefaultCodeTemplatesPath.Returns(Path.Combine(currentPath, "TestData"));
            var templateLoader = new TemplateLoader();

            templateLoader.Load(Path.Combine(currentPath, "TestData\\method-config.xml"));
            var template          = templateLoader.Templates.FirstOrDefault(tmp => tmp.TemplateName == "CSharp");
            var methodName        = "MethodTest";
            var eventData         = CommonData.EventSpecificDataTypeList.FirstOrDefault(ed => ed.EventSpecificData == EventSpecificData.None);
            var generatedCodeInfo = new GeneratedCodeInfo()
            {
                ClassName         = "ArasCLS" + methodName,
                IsUseVSFormatting = false,
                Namespace         = "ArasPKG" + methodName,
            };

            //Act
            var expected = codeProvider.CreateTestsNew(generatedCodeInfo, template, eventData, methodName, false);

            //Assert
            Assert.AreEqual(expected.TestsCodeInfo.Path, @"MethodTest\MethodTestTests.cs");
            Assert.AreEqual(expected.TestsCodeInfo.Code, File.ReadAllText(Path.Combine(currentPath, "Code\\TestData\\CreateTestsNew\\ExpectedTestCode.txt")));
        }
Ejemplo n.º 5
0
        public void CreatePartialClasses_ShouldReturnCorrectCodeWithTwoPartials()
        {
            // Arrange
            var curentPath        = System.AppDomain.CurrentDomain.BaseDirectory;
            var methodName        = "TestMethod";
            var generatedCodeInfo = new GeneratedCodeInfo()
            {
                ClassName                 = "ArasCLS" + methodName,
                IsUseVSFormatting         = false,
                Namespace                 = "ArasPKG" + methodName,
                MethodName                = methodName,
                MethodCodeParentClassName = "ItemMethod",
                MethodCodeInfo            = new CodeInfo
                {
                    Code = File.ReadAllText(Path.Combine(curentPath, "Code\\TestData\\CreatePartialClasses\\MethodCodeInfo2Partial.txt"))
                },
            };

            //Act
            var expected = codeProvider.CreatePartialClasses(generatedCodeInfo);

            //Assert
            Assert.AreEqual(expected.PartialCodeInfoList.Count, 2);
            Assert.AreEqual(expected.MethodCodeInfo.Code, File.ReadAllText(Path.Combine(curentPath, "Code\\TestData\\CreatePartialClasses\\ExpectedMainPartFor2Partial.txt")));
            Assert.AreEqual(expected.PartialCodeInfoList.First().Code, File.ReadAllText(Path.Combine(curentPath, "Code\\TestData\\CreatePartialClasses\\ExpectedFirstPartialClass.txt")));
            Assert.AreEqual(expected.PartialCodeInfoList.First().Path, "TestMethod\\FirstTestPartial");
            Assert.AreEqual(expected.PartialCodeInfoList.Last().Code, File.ReadAllText(Path.Combine(curentPath, "Code\\TestData\\CreatePartialClasses\\ExpectedSecondPartialClass.txt")));
            Assert.AreEqual(expected.PartialCodeInfoList.Last().Path, "TestMethod\\Second\\SeconfTestPartial");
        }
        public void CreateMainNew_ShouldReturnTemplateCode()
        {
            //Arrange
            var    currentPath  = System.AppDomain.CurrentDomain.BaseDirectory;
            string testDataPath = Path.Combine(currentPath, "TestData");

            projectManager.DefaultCodeTemplatesPath.Returns(testDataPath);

            this.iOWrapper.DirectoryExists(testDataPath).Returns(true);
            this.iOWrapper.DirectoryGetFiles(testDataPath).Returns(Directory.GetFiles(testDataPath));

            var templateLoader = new TemplateLoader(dialogFactory);

            templateLoader.Load(Path.Combine(currentPath, "TestData\\method-config.xml"));

            var template          = templateLoader.Templates.FirstOrDefault(tmp => tmp.TemplateName == "CSharp");
            var eventData         = CommonData.EventSpecificDataTypeList.FirstOrDefault(ed => ed.EventSpecificData == EventSpecificData.None);
            var methodName        = "TestMethod";
            var generatedCodeInfo = new GeneratedCodeInfo()
            {
                ClassName         = "ArasCLS" + methodName,
                IsUseVSFormatting = false,
                Namespace         = "ArasPKG" + methodName,
            };

            //Act
            var expected = codeProvider.CreateMainNew(generatedCodeInfo, template, eventData, methodName, false, "");

            //Assert
            Assert.AreEqual(expected.MethodCodeInfo.Code, File.ReadAllText(Path.Combine(currentPath, "Code\\TestData\\CreateMainNew\\DefaultTemplateCode.txt")));
        }
        public override void ExecuteCommandImpl(object sender, EventArgs args)
        {
            var project = projectManager.SelectedProject;
            var projectConfiguration = projectConfigurationManager.Load(projectManager.ProjectConfigPath);

            var templateLoader = new Templates.TemplateLoader(this.dialogFactory);

            templateLoader.Load(projectManager.MethodConfigPath);

            PackageManager packageManager = new PackageManager(authManager);
            ICodeProvider  codeProvider   = codeProviderFactory.GetCodeProvider(project.CodeModel.Language, projectConfiguration);

            var createView       = dialogFactory.GetCreateView(projectConfiguration, templateLoader, packageManager, projectManager, codeProvider, globalConfiguration);
            var createViewResult = createView.ShowDialog();

            if (createViewResult?.DialogOperationResult != true)
            {
                return;
            }

            GeneratedCodeInfo codeInfo = codeProvider.GenerateCodeInfo(createViewResult.SelectedTemplate, createViewResult.SelectedEventSpecificData, createViewResult.MethodName, createViewResult.UseRecommendedDefaultCode, createViewResult.SelectedUserCodeTemplate.Code, createViewResult.IsUseVSFormattingCode);

            projectManager.CreateMethodTree(codeInfo);

            string newInnovatorMethodId = authManager.InnovatorInstance.getNewID();
            var    methodInfo           = new MethodInfo()
            {
                InnovatorMethodConfigId = newInnovatorMethodId,
                InnovatorMethodId       = newInnovatorMethodId,
                MethodLanguage          = createViewResult.SelectedLanguage.Value,
                MethodName                  = createViewResult.MethodName,
                MethodType                  = createViewResult.SelectedActionLocation.Value,
                MethodComment               = createViewResult.MethodComment,
                PackageName                 = createViewResult.SelectedPackage,
                TemplateName                = createViewResult.SelectedTemplate.TemplateName,
                EventData                   = createViewResult.SelectedEventSpecificData.EventSpecificData,
                ExecutionAllowedToId        = createViewResult.SelectedIdentityId,
                ExecutionAllowedToKeyedName = createViewResult.SelectedIdentityKeyedName,
                PartialClasses              = codeInfo.PartialCodeInfoList.Select(pci => pci.Path).ToList(),
                ExternalItems               = codeInfo.ExternalItemsInfoList.Select(pci => pci.Path).ToList()
            };

            projectConfiguration.AddMethodInfo(methodInfo);
            projectConfiguration.UseVSFormatting = createViewResult.IsUseVSFormattingCode;
            projectConfigurationManager.Save(projectManager.ProjectConfigPath, projectConfiguration);
        }
Ejemplo n.º 8
0
        public override void ExecuteCommandImpl(object sender, EventArgs args)
        {
            TemplateLoader templateLoader = new TemplateLoader();

            templateLoader.Load(projectManager.MethodConfigPath);

            PackageManager packageManager = new PackageManager(authManager, this.messageManager);
            ICodeProvider  codeProvider   = codeProviderFactory.GetCodeProvider(projectManager.Language);

            var createView       = dialogFactory.GetCreateView(projectConfigurationManager.CurrentProjectConfiguraiton, templateLoader, packageManager, projectManager, codeProvider, globalConfiguration);
            var createViewResult = createView.ShowDialog();

            if (createViewResult?.DialogOperationResult != true)
            {
                return;
            }

            GeneratedCodeInfo codeInfo = codeProvider.GenerateCodeInfo(createViewResult.SelectedTemplate, createViewResult.SelectedEventSpecificData, createViewResult.MethodName, createViewResult.SelectedUserCodeTemplate.Code, createViewResult.IsUseVSFormattingCode);

            projectManager.CreateMethodTree(codeInfo, createViewResult.SelectedPackage);
            projectManager.AddSuppression("assembly: System.Diagnostics.CodeAnalysis.SuppressMessage", "Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", "namespace", codeInfo.Namespace);

            string newInnovatorMethodId = authManager.InnovatorInstance.getNewID();
            var    methodInfo           = new MethodInfo()
            {
                InnovatorMethodConfigId = newInnovatorMethodId,
                InnovatorMethodId       = newInnovatorMethodId,
                MethodLanguage          = createViewResult.SelectedLanguage.Value,
                MethodName                  = createViewResult.MethodName,
                MethodType                  = createViewResult.SelectedActionLocation.Value,
                MethodComment               = createViewResult.MethodComment,
                Package                     = createViewResult.SelectedPackage,
                TemplateName                = createViewResult.SelectedTemplate.TemplateName,
                EventData                   = createViewResult.SelectedEventSpecificData.EventSpecificData,
                ExecutionAllowedToId        = createViewResult.SelectedIdentityId,
                ExecutionAllowedToKeyedName = createViewResult.SelectedIdentityKeyedName
            };

            projectConfigurationManager.CurrentProjectConfiguraiton.AddMethodInfo(methodInfo);
            projectConfigurationManager.CurrentProjectConfiguraiton.UseVSFormatting = createViewResult.IsUseVSFormattingCode;
            projectConfigurationManager.Save(projectManager.ProjectConfigPath);
        }
Ejemplo n.º 9
0
        public override void ExecuteCommandImpl(object sender, EventArgs args)
        {
            var project = projectManager.SelectedProject;

            string projectConfigPath = projectManager.ProjectConfigPath;
            string methodConfigPath  = projectManager.MethodConfigPath;

            var           projectConfiguration = projectConfigurationManager.Load(projectConfigPath);
            ICodeProvider codeProvider         = codeProviderFactory.GetCodeProvider(project.CodeModel.Language, projectConfiguration);

            var templateLoader = new TemplateLoader(this.dialogFactory);

            templateLoader.Load(methodConfigPath);

            var openView = dialogFactory.GetOpenFromPackageView(templateLoader, codeProvider.Language, projectConfiguration);

            var openViewResult = openView.ShowDialog();

            if (openViewResult?.DialogOperationResult != true)
            {
                return;
            }

            MethodInfo methodInformation = projectConfiguration.MethodInfos.FirstOrDefault(m => m.MethodName == openViewResult.MethodName);
            bool       isMethodExist     = projectManager.IsMethodExist(openViewResult.MethodName);

            if (projectManager.IsMethodExist(openViewResult.MethodName))
            {
                var messageWindow = this.dialogFactory.GetMessageBoxWindow();
                var dialogReuslt  = messageWindow.ShowDialog("Method already added to project. Do you want replace method?",
                                                             "Warning",
                                                             MessageButtons.YesNo,
                                                             MessageIcon.None);

                if (dialogReuslt == MessageDialogResult.Yes)
                {
                    projectManager.RemoveMethod(methodInformation);
                    projectConfiguration.MethodInfos.Remove(methodInformation);
                }
                else
                {
                    return;
                }
            }

            GeneratedCodeInfo codeInfo = codeProvider.GenerateCodeInfo(openViewResult.SelectedTemplate, openViewResult.SelectedEventSpecificData, openViewResult.MethodName, false, openViewResult.MethodCode, openViewResult.IsUseVSFormattingCode);

            projectManager.CreateMethodTree(codeInfo);

            var methodInfo = new PackageMethodInfo()
            {
                InnovatorMethodConfigId = openViewResult.MethodConfigId,
                InnovatorMethodId       = openViewResult.MethodId,
                MethodLanguage          = openViewResult.MethodLanguage,
                MethodName                  = openViewResult.MethodName,
                MethodType                  = openViewResult.MethodType,
                MethodComment               = openViewResult.MethodComment,
                PackageName                 = openViewResult.Package,
                TemplateName                = openViewResult.SelectedTemplate.TemplateName,
                EventData                   = openViewResult.SelectedEventSpecificData.EventSpecificData,
                ExecutionAllowedToId        = openViewResult.IdentityId,
                ExecutionAllowedToKeyedName = openViewResult.IdentityKeyedName,
                PartialClasses              = codeInfo.PartialCodeInfoList.Select(pci => pci.Path).ToList(),
                ExternalItems               = codeInfo.ExternalItemsInfoList.Select(pci => pci.Path).ToList(),
                ManifestFileName            = openViewResult.SelectedManifestFileName
            };

            projectConfiguration.LastSelectedDir    = openViewResult.SelectedFolderPath;
            projectConfiguration.LastSelectedMfFile = openViewResult.SelectedManifestFullPath;
            projectConfiguration.UseVSFormatting    = openViewResult.IsUseVSFormattingCode;
            projectConfiguration.LastSelectedSearchTypeInOpenFromPackage = openViewResult.SelectedSearchType;
            projectConfiguration.AddMethodInfo(methodInfo);
            projectConfigurationManager.Save(projectConfigPath, projectConfiguration);
        }
        public override void ExecuteCommandImpl(object sender, EventArgs args)
        {
            ICodeProvider codeProvider = codeProviderFactory.GetCodeProvider(projectManager.Language);

            TemplateLoader templateLoader = new TemplateLoader();

            templateLoader.Load(projectManager.MethodConfigPath);

            var openView       = dialogFactory.GetOpenFromPackageView(templateLoader, codeProvider.Language, projectConfigurationManager.CurrentProjectConfiguraiton);
            var openViewResult = openView.ShowDialog();

            if (openViewResult?.DialogOperationResult != true)
            {
                return;
            }

            MethodInfo methodInformation = projectConfigurationManager.CurrentProjectConfiguraiton.MethodInfos.FirstOrDefault(m => m.MethodName == openViewResult.MethodName);

            if (projectManager.IsMethodExist(openViewResult.Package.MethodFolderPath, openViewResult.MethodName))
            {
                var messageWindow = this.dialogFactory.GetMessageBoxWindow();
                var dialogReuslt  = messageWindow.ShowDialog(this.messageManager.GetMessage("MethodAlreadyAddedToProjectDoYouWantReplaceMethod"),
                                                             this.messageManager.GetMessage("Warning"),
                                                             MessageButtons.YesNo,
                                                             MessageIcon.None);

                if (dialogReuslt == MessageDialogResult.Yes)
                {
                    projectManager.RemoveMethod(methodInformation);
                    projectConfigurationManager.CurrentProjectConfiguraiton.MethodInfos.Remove(methodInformation);
                }
                else
                {
                    return;
                }
            }

            GeneratedCodeInfo codeInfo = codeProvider.GenerateCodeInfo(openViewResult.SelectedTemplate, openViewResult.SelectedEventSpecificData, openViewResult.MethodName, openViewResult.MethodCode, openViewResult.IsUseVSFormattingCode);

            projectManager.CreateMethodTree(codeInfo, openViewResult.Package);

            var methodInfo = new PackageMethodInfo()
            {
                InnovatorMethodConfigId = openViewResult.MethodConfigId,
                InnovatorMethodId       = openViewResult.MethodId,
                MethodLanguage          = openViewResult.MethodLanguage,
                MethodName                  = openViewResult.MethodName,
                MethodType                  = openViewResult.MethodType,
                MethodComment               = openViewResult.MethodComment,
                Package                     = openViewResult.Package,
                TemplateName                = openViewResult.SelectedTemplate.TemplateName,
                EventData                   = openViewResult.SelectedEventSpecificData.EventSpecificData,
                ExecutionAllowedToId        = openViewResult.IdentityId,
                ExecutionAllowedToKeyedName = openViewResult.IdentityKeyedName,
                ManifestFileName            = openViewResult.SelectedManifestFileName
            };

            projectManager.AddSuppression("assembly: System.Diagnostics.CodeAnalysis.SuppressMessage", "Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", "namespace", codeInfo.Namespace);

            projectConfigurationManager.CurrentProjectConfiguraiton.LastSelectedDir    = openViewResult.SelectedFolderPath;
            projectConfigurationManager.CurrentProjectConfiguraiton.LastSelectedMfFile = openViewResult.SelectedManifestFullPath;
            projectConfigurationManager.CurrentProjectConfiguraiton.UseVSFormatting    = openViewResult.IsUseVSFormattingCode;
            projectConfigurationManager.CurrentProjectConfiguraiton.LastSelectedSearchTypeInOpenFromPackage = openViewResult.SelectedSearchType;
            projectConfigurationManager.CurrentProjectConfiguraiton.AddMethodInfo(methodInfo);
            projectConfigurationManager.Save(projectManager.ProjectConfigPath);
        }
Ejemplo n.º 11
0
        public override void ExecuteCommandImpl(object sender, EventArgs args)
        {
            var    project           = projectManager.SelectedProject;
            string projectConfigPath = projectManager.ProjectConfigPath;

            var projectConfiguration = projectConfigurationManager.Load(projectConfigPath);

            ICodeProvider codeProvider = codeProviderFactory.GetCodeProvider(project.CodeModel.Language, projectConfiguration);

            var templateLoader = new TemplateLoader(this.dialogFactory);

            templateLoader.Load(projectManager.MethodConfigPath);

            var packageManager = new PackageManager(authManager);
            var openView       = dialogFactory.GetOpenFromArasView(projectConfigurationManager, projectConfiguration, templateLoader, packageManager, projectConfigPath, project.Name, project.FullName, codeProvider.Language);

            var openViewResult = openView.ShowDialog();

            if (openViewResult?.DialogOperationResult != true)
            {
                return;
            }

            MethodInfo methodInformation = projectConfiguration.MethodInfos.FirstOrDefault(m => m.MethodName == openViewResult.MethodName);
            bool       isMethodExist     = projectManager.IsMethodExist(openViewResult.MethodName);

            if (projectManager.IsMethodExist(openViewResult.MethodName))
            {
                var messageWindow = this.dialogFactory.GetMessageBoxWindow();
                var dialogReuslt  = messageWindow.ShowDialog("Method already added to project. Do you want replace method?",
                                                             "Warning",
                                                             MessageButtons.YesNo,
                                                             MessageIcon.None);

                if (dialogReuslt == MessageDialogResult.Yes)
                {
                    projectManager.RemoveMethod(methodInformation);
                    projectConfiguration.MethodInfos.Remove(methodInformation);
                }
                else
                {
                    return;
                }
            }

            GeneratedCodeInfo codeInfo = codeProvider.GenerateCodeInfo(openViewResult.SelectedTemplate, openViewResult.SelectedEventSpecificData, openViewResult.MethodName, false, openViewResult.MethodCode, openViewResult.IsUseVSFormattingCode);

            projectManager.CreateMethodTree(codeInfo);

            var methodInfo = new MethodInfo()
            {
                InnovatorMethodConfigId = openViewResult.MethodConfigId,
                InnovatorMethodId       = openViewResult.MethodId,
                MethodLanguage          = openViewResult.MethodLanguage,
                MethodName                  = openViewResult.MethodName,
                MethodType                  = openViewResult.MethodType ?? "server",
                MethodComment               = openViewResult.MethodComment,
                PackageName                 = openViewResult.Package,
                TemplateName                = openViewResult.SelectedTemplate.TemplateName,
                EventData                   = openViewResult.SelectedEventSpecificData.EventSpecificData,
                ExecutionAllowedToId        = openViewResult.SelectedIdentityId,
                ExecutionAllowedToKeyedName = openViewResult.SelectedIdentityKeyedName,
                PartialClasses              = codeInfo.PartialCodeInfoList.Select(pci => pci.Path).ToList(),
                ExternalItems               = codeInfo.ExternalItemsInfoList.Select(pci => pci.Path).ToList()
            };

            projectManager.AddSuppression("assembly: System.Diagnostics.CodeAnalysis.SuppressMessage", "Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", "namespace", codeInfo.Namespace);

            projectConfiguration.AddMethodInfo(methodInfo);
            projectConfiguration.UseVSFormatting = openViewResult.IsUseVSFormattingCode;
            projectConfigurationManager.Save(projectConfigPath, projectConfiguration);
        }