private static bool GeneratePlantUmlFromFile(Dictionary <string, string> parameters)
{
var inputFileName = parameters["in"];
if (!File.Exists(inputFileName))
{
Console.WriteLine($"\"{inputFileName}\" does not exist.");
return(false);
}
var outputFileName = "";
if (parameters.ContainsKey("out"))
{
outputFileName = parameters["out"];
try
{
var outdir = Path.GetDirectoryName(outputFileName);
Directory.CreateDirectory(outdir);
}
catch (Exception e)
{
Console.WriteLine(e);
return(false);
}
}
else
{
outputFileName = CombinePath(Path.GetDirectoryName(inputFileName),
Path.GetFileNameWithoutExtension(inputFileName) + ".puml");
}
try
{
using (var stream = new FileStream(inputFileName, FileMode.Open, FileAccess.Read))
{
var tree = CSharpSyntaxTree.ParseText(SourceText.From(stream));
var root = tree.GetRoot();
Accessibilities ignoreAcc = GetIgnoreAccessibilities(parameters);
using (var filestream = new FileStream(outputFileName, FileMode.Create, FileAccess.Write))
using (var writer = new StreamWriter(filestream))
{
var gen = new ClassDiagramGenerator(writer, " ", ignoreAcc);
gen.Generate(root);
}
}
}
catch (Exception e)
{
Console.WriteLine(e);
return(false);
}
return(true);
}