Files
BeWoPlaner/DakotaSender/FileController.cs
Rene Evertz a5cfbdfc96 Gkv8 sendet an Kundenapp
Bei Fehler wird es aufm App8 als ResultXML gespeichert
2024-10-30 11:43:23 +01:00

81 lines
2.3 KiB
C#

using BS.Shared.DataContracts.GkvAbrechnung;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DakotaSender
{
internal static class FileController
{
internal static void CopyFileToFailed(DakotaSystemFile file)
{
var failed_folder = Config.FailedFolder;
CopyFileTo(file.SourceAuftragsdatei, failed_folder.FullName);
CopyFileTo(file.SourceNutzdatendatei, failed_folder.FullName);
}
internal static void CopyFileToDestination(DakotaSystemFile file)
{
var folder = Config.LoadDatenannahmestelleFolder(file.Datenannahmestelle);
CopyFileTo(file.SourceAuftragsdatei, folder.FullName, file.TransfernameAuf);
CopyFileTo(file.SourceNutzdatendatei, folder.FullName, file.Transfername);
}
internal static void CopyFileTo(FileSystemInfo file, string destination_folder, string file_name = null)
{
if (file_name is null)
file_name = file.Name;
CopyFile(file.FullName, Path.Combine(destination_folder, file_name));
}
internal static void CopyFile(string source, string destination)
{
Program.Print($"Kopiere \"{source}\" nach \"{destination}\". ");
File.Copy(source, destination);
Program.PrintLine("Ok.");
}
internal static void DeleteQueueFile(DakotaSystemFile file)
{
DeleteFile(file.SourceAuftragsdatei.FullName);
DeleteFile(file.SourceNutzdatendatei.FullName);
}
internal static void DeleteDakotaFile(DakotaSystemFile file)
{
var folder = Config.LoadDatenannahmestelleFolder(file.Datenannahmestelle).FullName;
DeleteFile(Path.Combine(folder, file.TransfernameAuf));
DeleteFile(Path.Combine(folder, file.Transfername));
}
internal static void DeleteFile(string file)
{
Program.Print($"Lösche {file}. ");
File.Delete(file);
Program.PrintLine("Ok.");
}
internal static void SaveAsXmlFileInResultFolder(GkvServerResultDC result, string tenant, long user)
{
Program.Print($"Speichere Protokoll Oid \'{result.ProtokollOid}\' als Xml. ");
var xml = GkvServerResultXml.ToXml(result, user);
var folder = Config.GetResultTenantFolder(tenant).FullName;
var path = Path.Combine(folder, $"P{result.ProtokollOid}.xml");
Program.Print($"Path: {path}. ");
XmlFileConverter.Save(xml, path);
Program.PrintLine("Ok.");
}
}
}