public void Generate() { StringWriter outStream = new StringWriter(); string tempDirectory = $"temp/{rnd.Next()}-{rnd.Next()}"; Directory.CreateDirectory(tempDirectory); XMLGenerator generator = new XMLGenerator(outStream, tempDirectory); bool loaded = true; loaded = loaded && generator.LoadOutagesFromCSV(OutagesCSV); loaded = loaded && generator.LoadCriticalBranchesFromCSV(CriticalBranchesCSV); if (loaded) { generator.DontAsk(); generator.SetSettings(Settings); if (generator.Generate()) { if (!IncludeXSD) { //Remove XSD files string[] xsdFiles = Directory.GetFiles(tempDirectory, "*.xsd"); foreach (var file in xsdFiles) { File.Delete(file); } } OutputFile = $"{tempDirectory}.zip"; ZipFile.CreateFromDirectory(tempDirectory, _OutputFile); } } Directory.Delete(tempDirectory, true); ResultSummary = generator.Summary; if (File.Exists(OutagesCSV)) { File.Delete(OutagesCSV); } if (File.Exists(CriticalBranchesCSV)) { File.Delete(CriticalBranchesCSV); } Output = outStream.ToString(); // Clear old outputs ClearTempFolder(); }