Files
BeWoPlaner/DakotaSender/FileController.cs

117 lines
3.2 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 CopyFileToCopy(DakotaSystemFile file)
{
if (!Config.CopySave)
return;
var folder = Config.CopyFolder;
CopyFileTo(file.SourceAuftragsdatei, folder.FullName);
CopyFileTo(file.SourceNutzdatendatei, folder.FullName);
}
internal static void CopyFileToFailed(DakotaSystemFile file)
{
if (!Config.FailedSave)
return;
var failed_folder = Config.FailedFolder;
CopyFileTo(file.SourceAuftragsdatei, failed_folder.FullName);
CopyFileTo(file.SourceNutzdatendatei, failed_folder.FullName);
}
internal static void CopyFileToSuccesss(DakotaSystemFile file)
{
if (!Config.SuccessSave)
return;
var success_folder = Config.SuccessFolder;
CopyFileTo(file.SourceAuftragsdatei, success_folder.FullName);
CopyFileTo(file.SourceNutzdatendatei, success_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 \'{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.");
}
internal static IEnumerable<string> GetTenantsAllowedList()
{
var path = Config.TenantsAllowTxtPath;
return File.ReadAllLines(path);
}
internal static IEnumerable<string> GetTenantsTestList()
{
var path = Config.TenantsTestTxtPath;
return File.ReadAllLines(path);
}
}
}