using BS.SharedLauncher.Enums; using BS.SharedLauncher.Exceptions; using System; using System.Collections.Generic; using System.Configuration; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BeWo.Service.ServiceUtils.Paths { public static class ServerFilePaths { // UpdateRootPath // L specialTenant // L tenant#1 // L exampleData#1 // L version // L 1.0.0.0 // L _default // L exampleData#2 // L tenant#1 // L exampleData#3 // L 1.0.0.1 // L _default // L exampleData#4 // L tenant#1 // L exampleData#5 // L version.config private static string _DownloadVersionFilePath; private static string _DownloadFolderPath; private static string _LogFolderPath; public static string DownloadVersionFilePath => GetAppSettings(_DownloadVersionFilePath, "DownloadVersionFilePath"); public static string DownloadFolderPath => GetAppSettings(_DownloadFolderPath, "DownloadFolderPath") ?? @"D:\Rene\ServerBeWoDataExample2\"; public static string LogFolderPath => GetAppSettings(_LogFolderPath, "LogFolderPath"); static ServerFilePaths() { } public static string GetOverrideTenantFolderPath() => Path.Combine(DownloadFolderPath, "overridetenant"); public static string GetOverrideTenantFolderPath(string tenant) => Path.Combine(GetOverrideTenantFolderPath(), tenant); public static string GetVersionFolderPath() => Path.Combine(DownloadFolderPath, "version"); public static string GetVersionFolderPath(string version) => Path.Combine(GetVersionFolderPath(), version); public static string GetVersionTenantFolderPath(string version, string tenant) => Path.Combine(GetVersionFolderPath(version), tenant); public static string GetVersionDefaultFolderPath(string version) => GetVersionTenantFolderPath(version, "default"); public static string GetVersionConfigFilePath() => DownloadVersionFilePath; public static string GetLogFolderPath(string tenant) => Path.Combine(LogFolderPath, tenant); public static string GetAppSettings(string name, string setting) { if (name is null) name = ConfigurationManager.AppSettings.Get(setting); return name; } public static string GetSourceFolderPath(UpdateFileSource source, string version, string tenant) { switch (source) { case BS.SharedLauncher.Enums.UpdateFileSource.Invalid: throw new UpdateException("Invalid UpdateFileSource"); case BS.SharedLauncher.Enums.UpdateFileSource.VersionDefault: return GetVersionDefaultFolderPath(version); case BS.SharedLauncher.Enums.UpdateFileSource.VersionTenant: return GetVersionTenantFolderPath(version, tenant); case BS.SharedLauncher.Enums.UpdateFileSource.VersionUser: break; case BS.SharedLauncher.Enums.UpdateFileSource.OverrideTenant: return GetOverrideTenantFolderPath(tenant); case BS.SharedLauncher.Enums.UpdateFileSource.OverrideUser: break; default: break; } // User bekommt eigene Daten Feature throw new NotImplementedException("#479839129"); } } }