This commit is contained in:
2021-11-29 21:00:23 +00:00
parent b83c1faf89
commit 086a03a0cb
19 changed files with 161 additions and 146 deletions

View File

@@ -184,9 +184,9 @@ namespace AyaNova.Api.Controllers
AYANOVA_USE_URLS = ServerBootConfig.AYANOVA_USE_URLS,
AYANOVA_DB_CONNECTION = DbUtil.PasswordRedactedConnectionString(ServerBootConfig.AYANOVA_DB_CONNECTION),
AYANOVA_REPORT_RENDERING_TIMEOUT = ServerBootConfig.AYANOVA_REPORT_RENDERING_TIMEOUT,
AYANOVA_FOLDER_USER_FILES = ServerBootConfig.AYANOVA_FOLDER_USER_FILES,
AYANOVA_FOLDER_BACKUP_FILES = ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES,
AYANOVA_FOLDER_TEMPORARY_SERVER_FILES = ServerBootConfig.AYANOVA_FOLDER_TEMPORARY_SERVER_FILES,
AYANOVA_ATTACHMENT_FILES_PATH = ServerBootConfig.AYANOVA_ATTACHMENT_FILES_PATH,
AYANOVA_BACKUP_FILES_PATH = ServerBootConfig.AYANOVA_BACKUP_FILES_PATH,
AYANOVA_TEMP_FILES_PATH = ServerBootConfig.AYANOVA_TEMP_FILES_PATH,
AYANOVA_BACKUP_PG_DUMP_PATH = ServerBootConfig.AYANOVA_BACKUP_PG_DUMP_PATH,
AYANOVA_LOG_PATH = ServerBootConfig.AYANOVA_LOG_PATH,
AYANOVA_LOG_LEVEL = ServerBootConfig.AYANOVA_LOG_LEVEL,

View File

@@ -217,22 +217,22 @@ namespace AyaNova
long UtilityFilesAvailableSpace = 0;
try
{
// Console.WriteLine($"##### program:about to call backupfilesdriveavailablespace, config is [{ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES}] ######");
UtilityFilesAvailableSpace = new System.IO.DriveInfo(Path.GetPathRoot(ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES)).AvailableFreeSpace;
// Console.WriteLine($"##### program:about to call backupfilesdriveavailablespace, config is [{ServerBootConfig.AYANOVA_BACKUP_FILES_PATH}] ######");
UtilityFilesAvailableSpace = new System.IO.DriveInfo(Path.GetPathRoot(ServerBootConfig.AYANOVA_BACKUP_FILES_PATH)).AvailableFreeSpace;
}
catch (Exception ex)
{
logger.Error(ex, $"BOOT::FileUtil::UtilityFilesDriveAvailableSpace error getting available space from [{Path.GetPathRoot(ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES)}]");
logger.Error(ex, $"BOOT::FileUtil::UtilityFilesDriveAvailableSpace error getting available space from [{Path.GetPathRoot(ServerBootConfig.AYANOVA_BACKUP_FILES_PATH)}]");
}
long AttachmentFilesAvailableSpace = 0;
try
{
AttachmentFilesAvailableSpace = new System.IO.DriveInfo(Path.GetPathRoot(ServerBootConfig.AYANOVA_FOLDER_USER_FILES)).AvailableFreeSpace;
AttachmentFilesAvailableSpace = new System.IO.DriveInfo(Path.GetPathRoot(ServerBootConfig.AYANOVA_ATTACHMENT_FILES_PATH)).AvailableFreeSpace;
}
catch (Exception ex)
{
logger.Error(ex, $"BOOT::FileUtil::AttachmentFilesDriveAvailableSpace error getting available space from [{Path.GetPathRoot(ServerBootConfig.AYANOVA_FOLDER_USER_FILES)}]");
logger.Error(ex, $"BOOT::FileUtil::AttachmentFilesDriveAvailableSpace error getting available space from [{Path.GetPathRoot(ServerBootConfig.AYANOVA_ATTACHMENT_FILES_PATH)}]");
}

View File

@@ -31,34 +31,34 @@ namespace AyaNova.Util
{
// //UserFiles
// if (string.IsNullOrWhiteSpace(ServerBootConfig.AYANOVA_FOLDER_USER_FILES))
// ServerBootConfig.AYANOVA_FOLDER_USER_FILES = Path.Combine(contentRootPath, "userfiles");
// if (string.IsNullOrWhiteSpace(ServerBootConfig.AYANOVA_ATTACHMENT_FILES_PATH))
// ServerBootConfig.AYANOVA_ATTACHMENT_FILES_PATH = Path.Combine(contentRootPath, "userfiles");
// //BackupFiles
// if (ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES == null)
// ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES = Path.Combine(contentRootPath, "backupfiles");
// if (ServerBootConfig.AYANOVA_BACKUP_FILES_PATH == null)
// ServerBootConfig.AYANOVA_BACKUP_FILES_PATH = Path.Combine(contentRootPath, "backupfiles");
// //Temporary system files (reports etc)
// if (ServerBootConfig.AYANOVA_FOLDER_TEMPORARY_SERVER_FILES == null)
// ServerBootConfig.AYANOVA_FOLDER_TEMPORARY_SERVER_FILES = Path.Combine(contentRootPath, "tempfiles");
// if (ServerBootConfig.AYANOVA_TEMP_FILES_PATH == null)
// ServerBootConfig.AYANOVA_TEMP_FILES_PATH = Path.Combine(contentRootPath, "tempfiles");
//Prevent using the same folder for both
if (
string.Equals(Path.GetFullPath(ServerBootConfig.AYANOVA_FOLDER_USER_FILES), Path.GetFullPath(ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES), StringComparison.OrdinalIgnoreCase) ||
string.Equals(Path.GetFullPath(ServerBootConfig.AYANOVA_FOLDER_USER_FILES), Path.GetFullPath(ServerBootConfig.AYANOVA_FOLDER_TEMPORARY_SERVER_FILES), StringComparison.OrdinalIgnoreCase) ||
string.Equals(Path.GetFullPath(ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES), Path.GetFullPath(ServerBootConfig.AYANOVA_FOLDER_TEMPORARY_SERVER_FILES), StringComparison.OrdinalIgnoreCase)
string.Equals(Path.GetFullPath(ServerBootConfig.AYANOVA_ATTACHMENT_FILES_PATH), Path.GetFullPath(ServerBootConfig.AYANOVA_BACKUP_FILES_PATH), StringComparison.OrdinalIgnoreCase) ||
string.Equals(Path.GetFullPath(ServerBootConfig.AYANOVA_ATTACHMENT_FILES_PATH), Path.GetFullPath(ServerBootConfig.AYANOVA_TEMP_FILES_PATH), StringComparison.OrdinalIgnoreCase) ||
string.Equals(Path.GetFullPath(ServerBootConfig.AYANOVA_BACKUP_FILES_PATH), Path.GetFullPath(ServerBootConfig.AYANOVA_TEMP_FILES_PATH), StringComparison.OrdinalIgnoreCase)
)
{
throw new System.NotSupportedException("E1040: The configuration settings AYANOVA_FOLDER_USER_FILES, AYANOVA_FOLDER_BACKUP_FILES and AYANOVA_FOLDER_TEMPORARY_SYSTEM_FILES must all be different locations");
throw new System.NotSupportedException("E1040: The configuration settings AYANOVA_ATTACHMENT_FILES_PATH, AYANOVA_BACKUP_FILES_PATH and AYANOVA_FOLDER_TEMPORARY_SYSTEM_FILES must all be different locations");
}
EnsurePath(ServerBootConfig.AYANOVA_FOLDER_USER_FILES);
EnsurePath(ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES);
EnsurePath(ServerBootConfig.AYANOVA_FOLDER_TEMPORARY_SERVER_FILES);
EnsurePath(ServerBootConfig.AYANOVA_ATTACHMENT_FILES_PATH);
EnsurePath(ServerBootConfig.AYANOVA_BACKUP_FILES_PATH);
EnsurePath(ServerBootConfig.AYANOVA_TEMP_FILES_PATH);
}
//create path if doesn't exist already
@@ -90,7 +90,7 @@ namespace AyaNova.Util
{
get
{
return ServerBootConfig.AYANOVA_FOLDER_TEMPORARY_SERVER_FILES;
return ServerBootConfig.AYANOVA_TEMP_FILES_PATH;
}
}
@@ -151,7 +151,7 @@ namespace AyaNova.Util
/// <returns></returns>
internal static string GetFullPathForBackupFile(string fileName)
{
return Path.Combine(ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES, fileName);
return Path.Combine(ServerBootConfig.AYANOVA_BACKUP_FILES_PATH, fileName);
}
@@ -163,7 +163,7 @@ namespace AyaNova.Util
// {
// get
// {
// return ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES;
// return ServerBootConfig.AYANOVA_BACKUP_FILES_PATH;
// }
// }
@@ -197,7 +197,7 @@ namespace AyaNova.Util
BackupStatus statusReport = new BackupStatus();
try
{
statusReport.AvailableFreeSpace = GetBytesReadable(new System.IO.DriveInfo(Path.GetPathRoot(ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES)).AvailableFreeSpace);
statusReport.AvailableFreeSpace = GetBytesReadable(new System.IO.DriveInfo(Path.GetPathRoot(ServerBootConfig.AYANOVA_BACKUP_FILES_PATH)).AvailableFreeSpace);
}
catch (Exception ex)
{
@@ -206,7 +206,7 @@ namespace AyaNova.Util
log.LogError(ex, "FileUtil::BackupStatusReport error getting available space");
}
var backupFiles = Directory.EnumerateFiles(ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES, "*");
var backupFiles = Directory.EnumerateFiles(ServerBootConfig.AYANOVA_BACKUP_FILES_PATH, "*");
foreach (string file in backupFiles.OrderByDescending(z => z))
{
@@ -246,7 +246,7 @@ namespace AyaNova.Util
internal static DateTime MostRecentAutomatedBackupFileDate()
{
DateTime LastBackup = DateTime.MinValue;
foreach (string file in Directory.EnumerateFiles(ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES, "db-*.backup"))
foreach (string file in Directory.EnumerateFiles(ServerBootConfig.AYANOVA_BACKUP_FILES_PATH, "db-*.backup"))
{
var ThisFileTime = File.GetCreationTimeUtc(file);
if (ThisFileTime > LastBackup)
@@ -298,7 +298,7 @@ namespace AyaNova.Util
name = Path.GetFileName(name);//ensure no directory shenanigans, only a file name is allowed
//remove the file completely
var DeleteFilePath = Path.Combine(ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES, name);
var DeleteFilePath = Path.Combine(ServerBootConfig.AYANOVA_BACKUP_FILES_PATH, name);
if (File.Exists(DeleteFilePath))
{
//delete the temp file, it's already stored
@@ -318,7 +318,7 @@ namespace AyaNova.Util
if (keepCount < 1) keepCount = 1;
//Database backups
var BackupFileList = Directory.EnumerateFiles(ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES, "db-*.backup");
var BackupFileList = Directory.EnumerateFiles(ServerBootConfig.AYANOVA_BACKUP_FILES_PATH, "db-*.backup");
if (BackupFileList.Count() > keepCount)
{
//sort, skip newest x (keepcount) delete the rest
@@ -331,7 +331,7 @@ namespace AyaNova.Util
}
//Attachment backups
BackupFileList = Directory.EnumerateFiles(ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES, "at-*.zip");
BackupFileList = Directory.EnumerateFiles(ServerBootConfig.AYANOVA_BACKUP_FILES_PATH, "at-*.zip");
if (BackupFileList.Count() > keepCount)
{
//sort, skip newest x (keepcount) delete the rest
@@ -347,10 +347,10 @@ namespace AyaNova.Util
internal static long BackupFilesDriveAvailableSpace()
{
//Console.WriteLine("b fileutil:backupfilesdriveavailablespace, backupfilesfolder:", ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES);
//Console.WriteLine("fileutil:backupfilesdriveavailablespace, backupfilesfolder FULLPATH:", Path.GetFullPath(ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES));
// Console.WriteLine("fileutil:backupfilesdriveavailablespace, backupfilesfolder PATHROOT:", Path.GetPathRoot(ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES));
return new System.IO.DriveInfo(Path.GetPathRoot(ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES)).AvailableFreeSpace;
//Console.WriteLine("b fileutil:backupfilesdriveavailablespace, backupfilesfolder:", ServerBootConfig.AYANOVA_BACKUP_FILES_PATH);
//Console.WriteLine("fileutil:backupfilesdriveavailablespace, backupfilesfolder FULLPATH:", Path.GetFullPath(ServerBootConfig.AYANOVA_BACKUP_FILES_PATH));
// Console.WriteLine("fileutil:backupfilesdriveavailablespace, backupfilesfolder PATHROOT:", Path.GetPathRoot(ServerBootConfig.AYANOVA_BACKUP_FILES_PATH));
return new System.IO.DriveInfo(Path.GetPathRoot(ServerBootConfig.AYANOVA_BACKUP_FILES_PATH)).AvailableFreeSpace;
}
@@ -402,7 +402,7 @@ namespace AyaNova.Util
// {
// get
// {
// return ServerBootConfig.AYANOVA_FOLDER_USER_FILES;
// return ServerBootConfig.AYANOVA_ATTACHMENT_FILES_PATH;
// }
// }
@@ -417,7 +417,7 @@ namespace AyaNova.Util
{
get
{
return Path.Combine(ServerBootConfig.AYANOVA_FOLDER_USER_FILES, NewRandomFileName);
return Path.Combine(ServerBootConfig.AYANOVA_ATTACHMENT_FILES_PATH, NewRandomFileName);
}
}
@@ -486,7 +486,7 @@ namespace AyaNova.Util
/// <returns>Path without the file</returns>
internal static string GetPermanentAttachmentPath(string hash)
{
return Path.Combine(ServerBootConfig.AYANOVA_FOLDER_USER_FILES, hash[0].ToString(), hash[1].ToString(), hash[2].ToString());
return Path.Combine(ServerBootConfig.AYANOVA_ATTACHMENT_FILES_PATH, hash[0].ToString(), hash[1].ToString(), hash[2].ToString());
}
/// <summary>
@@ -496,7 +496,7 @@ namespace AyaNova.Util
/// <returns></returns>
internal static string GetPermanentAttachmentFilePath(string hash)
{
return Path.Combine(ServerBootConfig.AYANOVA_FOLDER_USER_FILES, hash[0].ToString(), hash[1].ToString(), hash[2].ToString(), hash);
return Path.Combine(ServerBootConfig.AYANOVA_ATTACHMENT_FILES_PATH, hash[0].ToString(), hash[1].ToString(), hash[2].ToString(), hash);
}
@@ -554,7 +554,7 @@ namespace AyaNova.Util
/// </summary>
internal static void EraseEntireContentsOfAttachmentFilesFolder()
{
System.IO.DirectoryInfo di = new DirectoryInfo(ServerBootConfig.AYANOVA_FOLDER_USER_FILES);
System.IO.DirectoryInfo di = new DirectoryInfo(ServerBootConfig.AYANOVA_ATTACHMENT_FILES_PATH);
foreach (FileInfo file in di.EnumerateFiles())
{
file.Delete();
@@ -573,7 +573,7 @@ namespace AyaNova.Util
var AttachmentsBackupFile = $"{demandFileNamePrepend}at-{FileUtil.GetSafeDateFileName()}.zip";//presentation issue so don't use UTC for this one
AttachmentsBackupFile = GetFullPathForBackupFile(AttachmentsBackupFile);
System.IO.Compression.ZipFile.CreateFromDirectory(ServerBootConfig.AYANOVA_FOLDER_USER_FILES, AttachmentsBackupFile);
System.IO.Compression.ZipFile.CreateFromDirectory(ServerBootConfig.AYANOVA_ATTACHMENT_FILES_PATH, AttachmentsBackupFile);
}
catch (Exception ex)
{
@@ -587,12 +587,12 @@ namespace AyaNova.Util
internal static long AttachmentFilesDriveAvailableSpace()
{
return new System.IO.DriveInfo(Path.GetPathRoot(ServerBootConfig.AYANOVA_FOLDER_USER_FILES)).AvailableFreeSpace;
return new System.IO.DriveInfo(Path.GetPathRoot(ServerBootConfig.AYANOVA_ATTACHMENT_FILES_PATH)).AvailableFreeSpace;
}
internal static IEnumerable<string> GetAllAttachmentFilePaths()
{
return Directory.EnumerateFiles(ServerBootConfig.AYANOVA_FOLDER_USER_FILES, "*", SearchOption.AllDirectories);
return Directory.EnumerateFiles(ServerBootConfig.AYANOVA_ATTACHMENT_FILES_PATH, "*", SearchOption.AllDirectories);
}
@@ -710,7 +710,7 @@ namespace AyaNova.Util
/// <returns></returns>
internal static FolderSizeInfo GetAttachmentFolderSizeInfo()
{
return GetDirectorySize(new DirectoryInfo(ServerBootConfig.AYANOVA_FOLDER_USER_FILES));
return GetDirectorySize(new DirectoryInfo(ServerBootConfig.AYANOVA_ATTACHMENT_FILES_PATH));
}
/// <summary>
@@ -719,7 +719,7 @@ namespace AyaNova.Util
/// <returns></returns>
internal static FolderSizeInfo GetBackupFolderSizeInfo()
{
return GetDirectorySize(new DirectoryInfo(ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES));
return GetDirectorySize(new DirectoryInfo(ServerBootConfig.AYANOVA_BACKUP_FILES_PATH));
}

View File

@@ -70,9 +70,9 @@ namespace AyaNova.Util
internal static bool AYANOVA_PERMANENTLY_ERASE_DATABASE { get; set; }
//FILE FOLDERS
internal static string AYANOVA_FOLDER_USER_FILES { get; set; }
internal static string AYANOVA_FOLDER_BACKUP_FILES { get; set; }
internal static string AYANOVA_FOLDER_TEMPORARY_SERVER_FILES { get; set; }
internal static string AYANOVA_ATTACHMENT_FILES_PATH { get; set; }
internal static string AYANOVA_BACKUP_FILES_PATH { get; set; }
internal static string AYANOVA_TEMP_FILES_PATH { get; set; }
//BACKUP PG_DUMP PATH (IF NOT IN PATH ALREADY)
internal static string AYANOVA_BACKUP_PG_DUMP_PATH { get; set; }
@@ -162,6 +162,9 @@ namespace AyaNova.Util
AYANOVA_JWT_SECRET = config.GetValue<string>("AYANOVA_JWT_SECRET");
//backdoor back door password superuser reset
AYANOVA_SET_SUPERUSER_PW = config.GetValue<string>("AYANOVA_SET_SUPERUSER_PW");
//REPORT RENDERING PROCESS CONTROL
int? nTemp = config.GetValue<int?>("AYANOVA_REPORT_RENDERING_TIMEOUT");
AYANOVA_REPORT_RENDERING_TIMEOUT = (null == nTemp) ? 30000 : (int)nTemp;//default is 30 seconds
@@ -180,79 +183,46 @@ namespace AyaNova.Util
//FOLDERS
string DataFolderPath = ActualFullPath(config.GetValue<string>("AYANOVA_DATA_PATH"));
string LogPath = ActualFullPath(config.GetValue<string>("AYANOVA_LOG_PATH"));
string AttachmentFilesPath = ActualFullPath(config.GetValue<string>("AYANOVA_USER_FILES_PATH"));
string BackupFilesPath = ActualFullPath(config.GetValue<string>("AYANOVA_BACKUP_FILES_PATH"));
string TempFilesPath = ActualFullPath(config.GetValue<string>("AYANOVA_TEMP_FILES_PATH"));
AYANOVA_BACKUP_PG_DUMP_PATH = ActualFullPath(config.GetValue<string>("AYANOVA_BACKUP_PG_DUMP_PATH"));
//TODO: Implement system where one single data folder can be specified and AyaNova will use that and subfolders under it automatically
//but also it honours if specific overrides were set for alternative locations
//change "folder" to "path" and update docs and everywhere it's mentioned
//AYANOVA_DATA_PATH <---this is used as "root" for all data paths automatically unless more specific
string AyaPath = string.Empty;
if (string.IsNullOrWhiteSpace(DataFolderPath))
{
//then they better have paths for *everything* specified
if (string.IsNullOrWhiteSpace(LogPath))
throw new System.ArgumentNullException("AYANOVA_LOG_PATH configuration setting missing and required");
if (string.IsNullOrWhiteSpace(AttachmentFilesPath))
throw new System.ArgumentNullException("AYANOVA_ATTACHMENT_FILES_PATH configuration setting missing and required");
if (string.IsNullOrWhiteSpace(BackupFilesPath))
throw new System.ArgumentNullException("AYANOVA_BACKUP_FILES_PATH configuration setting missing and required");
if (string.IsNullOrWhiteSpace(TempFilesPath))
throw new System.ArgumentNullException("AYANOVA_TEMP_FILES_PATH configuration setting missing and required");
//Log folder
AyaPath = config.GetValue<string>("AYANOVA_LOG_PATH");
if (string.IsNullOrWhiteSpace(AyaPath))
throw new System.ArgumentNullException("AYANOVA_LOG_PATH configuration setting missing and required");
AYANOVA_LOG_PATH = Path.GetFullPath(FileUtil.StringPathDecodeEnvironmentVariables(AYANOVA_LOG_PATH));
/*
if (string.IsNullOrWhiteSpace(ServerBootConfig.AYANOVA_DB_CONNECTION))
{
Console.WriteLine($"FAIL: AYANOVA_DB_CONNECTION configuration setting missing and required");
HaveAllCrticalConfigValues = false;
}
if (string.IsNullOrWhiteSpace(ServerBootConfig.AYANOVA_FOLDER_BACKUP_FILES))
{
Console.WriteLine($"FAIL: AYANOVA_FOLDER_BACKUP_FILES configuration setting missing and required");
HaveAllCrticalConfigValues = false;
}
if (string.IsNullOrWhiteSpace(ServerBootConfig.AYANOVA_FOLDER_USER_FILES))
{
Console.WriteLine($"FAIL: AYANOVA_FOLDER_USER_FILES configuration setting missing and required");
HaveAllCrticalConfigValues = false;
}
if (string.IsNullOrWhiteSpace(ServerBootConfig.AYANOVA_FOLDER_TEMPORARY_SERVER_FILES))
{
Console.WriteLine($"FAIL: AYANOVA_FOLDER_TEMPORARY_SERVER_FILES configuration setting missing and required");
HaveAllCrticalConfigValues = false;
}
*/
// if (string.IsNullOrWhiteSpace(AYANOVA_LOG_PATH))
// {
// //DEFAULT LOG PATH
// var currentDir = Directory.GetCurrentDirectory();
// AYANOVA_LOG_PATH = Path.Combine(currentDir, "logs");
// }
// else
// {
// AYANOVA_LOG_PATH = Path.Combine(AYANOVA_LOG_PATH, "logs");
// }
//(note, startup.cs ensures these folders exist via FileUtil because we need IHostingEnvironment)
//UserFiles
AYANOVA_FOLDER_USER_FILES = Path.GetFullPath(FileUtil.StringPathDecodeEnvironmentVariables(config.GetValue<string>("AYANOVA_FOLDER_USER_FILES")));
//BackupFiles
AYANOVA_FOLDER_BACKUP_FILES = Path.GetFullPath(FileUtil.StringPathDecodeEnvironmentVariables(config.GetValue<string>("AYANOVA_FOLDER_BACKUP_FILES")));
//TemporaryFiles
AYANOVA_FOLDER_TEMPORARY_SERVER_FILES = Path.GetFullPath(FileUtil.StringPathDecodeEnvironmentVariables(config.GetValue<string>("AYANOVA_FOLDER_TEMPORARY_SERVER_FILES")));
//pgdump backup utility path
AYANOVA_BACKUP_PG_DUMP_PATH = Path.GetFullPath(FileUtil.StringPathDecodeEnvironmentVariables(config.GetValue<string>("AYANOVA_BACKUP_PG_DUMP_PATH")));
//backdoor back door password superuser reset
AYANOVA_SET_SUPERUSER_PW = config.GetValue<string>("AYANOVA_SET_SUPERUSER_PW");
}
else
{
//set any unspecified paths to the defaults
AYANOVA_LOG_PATH = (string.IsNullOrWhiteSpace(LogPath)) ? Path.Combine(DataFolderPath, "logs") : LogPath;
AYANOVA_ATTACHMENT_FILES_PATH = (string.IsNullOrWhiteSpace(AttachmentFilesPath)) ? Path.Combine(DataFolderPath, "attachments") : AttachmentFilesPath;
AYANOVA_BACKUP_FILES_PATH = (string.IsNullOrWhiteSpace(BackupFilesPath)) ? Path.Combine(DataFolderPath, "backups") : BackupFilesPath;
AYANOVA_TEMP_FILES_PATH = (string.IsNullOrWhiteSpace(TempFilesPath)) ? Path.Combine(DataFolderPath, "temp") : TempFilesPath;
}
#endregion server BASICS
}
internal static string ActualFullPath(string p)
{
if (string.IsNullOrWhiteSpace(p))
return string.Empty;
return Path.GetFullPath(FileUtil.StringPathDecodeEnvironmentVariables(p));
}
//Fetch first url from list of urls (used by generator)
internal static string FirstOfAyaNovaUseUrls