104 lines
3.3 KiB
C#
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;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|