Files
BeWoAdmin/BeWoFileExporter/Utils.cs
2021-04-07 17:08:46 +02:00

104 lines
3.3 KiB
C#

using System.Configuration;
using System.IO;
using System.Xml;
namespace BeWoFileExporter
{
public static class Utils
{
public static string GetFileRootDirectoryPath()
{
var fileRootDirectoryPath = new AppSettingsReader().GetValue("FileRootDirectory", typeof(string)).ToString();
return fileRootDirectoryPath;
}
public static string GetMultitenancyDirectoryPath()
{
var multitenancyDirectoryPath = new AppSettingsReader().GetValue("MultitenancyDirectory", typeof(string)).ToString();
if(!Directory.Exists(multitenancyDirectoryPath))
{
Directory.CreateDirectory(multitenancyDirectoryPath);
}
return multitenancyDirectoryPath;
}
public static void CheckForFileRootDirectory(string tenant, string fileRootDirectoryPath)
{
var tenantPath = Path.Combine(GetFileRootDirectoryPath(), tenant);
if(!Directory.Exists(fileRootDirectoryPath))
{
Directory.CreateDirectory(fileRootDirectoryPath);
}
if(!Directory.Exists(tenantPath))
{
Directory.CreateDirectory(tenantPath);
}
}
public static string GetFilePath(string tenant, string oid)
{
var rootDirectory = GetFileRootDirectoryPath();
return Path.Combine(rootDirectory, Path.Combine(tenant, oid));
}
public static string GetConnectionStringValue(string variableName, string connectionString)
{
if(connectionString != null && connectionString.Contains(";"))
{
var split = connectionString.Split(';');
foreach(var keyValuePairString in split)
{
var keyToValue = keyValuePairString.Split('=');
if(keyToValue.Length == 2 && keyToValue[0].Trim() == variableName)
{
return keyToValue[1];
}
}
}
return null;
}
public static string GetConnectionStringFromConfigFile(string pathToConfigFile)
{
var xmlDocument = new XmlDocument();
xmlDocument.Load(pathToConfigFile);
var configuration = xmlDocument.ChildNodes.Item(1);
if(configuration?.Name == "configuration")
{
var hibernateConfiguration = configuration.ChildNodes.Item(1);
if(hibernateConfiguration?.Name == "hibernate-configuration")
{
var sessionFactory = hibernateConfiguration.ChildNodes.Item(0);
if(sessionFactory?.Name == "session-factory")
{
var properties = sessionFactory.ChildNodes;
foreach(XmlNode property in properties)
{
if(property?.Attributes?["name"]?.Value == "connection.connection_string")
{
return property.InnerText;
}
}
}
}
}
return null;
}
}
}