private void RunWCFChanges()

in src/CTA.Rules.PortCore/ProjectSpecificPort/ProjectRewriters/WCFProjectRewriter.cs [73:139]


        private void RunWCFChanges()
        {
            var projectDir = Path.GetDirectoryName(ProjectConfiguration.ProjectPath);
            var programFile = Path.Combine(projectDir, FileTypeCreation.Program.ToString() + ".cs");

            WCFServicePort wcfServicePort = new WCFServicePort(projectDir, ProjectConfiguration.ProjectType, _analyzerResult);

            try
            {
                if (File.Exists(programFile))
                {
                    var programFileTree = CSharpSyntaxTree.ParseText(File.ReadAllText(programFile));

                    var newRootNode = wcfServicePort.ReplaceProgramFile(programFileTree);

                    File.WriteAllText(programFile, newRootNode.ToFullString());
                }
            }
            catch (Exception e)
            {
                LogHelper.LogError($"{Constants.WCFErrorTag}Error while writing to Program.cs file: ", e.Message);
            }

            var startupFile = Path.Combine(projectDir, FileTypeCreation.Startup.ToString() + ".cs");

            try
            {
                if (File.Exists(startupFile))
                {
                    var newStartupFileText = wcfServicePort.ReplaceStartupFile(startupFile);

                    File.WriteAllText(startupFile, newStartupFileText);
                }
            }
            catch (Exception e)
            {
                LogHelper.LogError($"{Constants.WCFErrorTag}Error while writing to Startup file: ", e.Message);
            }

            try
            {
                if (ProjectConfiguration.ProjectType == ProjectType.WCFConfigBasedService)
                {
                    var newConfigFileText = wcfServicePort.GetNewConfigFile();

                    var newConfigPath = Path.Combine(projectDir, PortCore.WCF.Constants.PortedConfigFileName);

                    if (newConfigFileText != null)
                    {
                        File.WriteAllText(newConfigPath, newConfigFileText);
                    }

                    var configFilePath = wcfServicePort.GetConfigFilePath();

                    string backupFile = string.Concat(configFilePath, ".bak");
                    if (File.Exists(backupFile))
                    {
                        File.Delete(backupFile);
                    }
                    File.Move(configFilePath, backupFile);
                }
            }
            catch (Exception e)
            {
                LogHelper.LogError($"{Constants.WCFErrorTag}Error while creating config file: ", e.Message);
            }
        }