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);
}
}