mirror of
				https://github.com/Theodor-Springmann-Stiftung/hamann-ausgabe-core.git
				synced 2025-10-29 17:25:32 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System.Xml;
 | |
| using System.Xml.Linq;
 | |
| 
 | |
| public static class FileOperations {
 | |
|     public static void SaveFile(List<(string, XDocument, bool)> Documents, string dest) {
 | |
|         foreach (var d in Documents) {
 | |
|             if (d.Item3) {
 | |
|                 if (!Directory.Exists(dest)) {
 | |
|                     Directory.CreateDirectory(dest);
 | |
|                 }
 | |
|                 var filenameold = d.Item1.Split('/', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries).LastOrDefault();
 | |
|                 if (filenameold == null) return;
 | |
|                 var path = Path.Combine(dest, filenameold);
 | |
|                 // element.Save(path, SaveOptions.DisableFormatting);
 | |
|                 XmlWriterSettings set = new XmlWriterSettings() {
 | |
|                     CheckCharacters = false,
 | |
|                     Encoding = System.Text.Encoding.UTF8,
 | |
|                 };
 | |
|                 using (XmlWriter writer = XmlWriter.Create(path, set)) {
 | |
|                     d.Item2.Save(writer);
 | |
|                 }
 | |
|                 // using (var targetStream = System.IO.File.Create(path)) {
 | |
|                 //     element.Save(targetStream, SaveOptions.DisableFormatting); 
 | |
|                 //}
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     // Gets XML data if branch name is correct (to prevent data errors)
 | |
|     public static string[] GetXMLs(string path, string git_path, string? branch_name) {
 | |
|         // BASIC CHECKS
 | |
|         if (branch_name != null) {
 | |
|             if (File.Exists(git_path + ".git/HEAD")) {
 | |
|                 var text = File.ReadAllText(git_path + ".git/HEAD").Trim();
 | |
|                 if (!text.EndsWith(branch_name)) 
 | |
|                     throw new("Not it the Branch " + branch_name);
 | |
|             } else throw new("Specified Paths do not exist");
 | |
|         }
 | |
|         
 | |
|         if (!Directory.Exists(path)) throw new("Directory does not exist!");
 | |
| 
 | |
|         var xmls = Directory.GetFiles(path, "*.xml");
 | |
|         if (xmls == null || !xmls.Any())  throw new("No XML Data fonund!");
 | |
|         
 | |
|         return xmls;
 | |
|     }
 | |
| } | 
