From 2729301bffb8b4a15c2228fee39717d80b123e60 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 29 Oct 2016 01:40:15 -0400 Subject: move common dependencies --- .../BaseApplicationPaths.cs | 178 +++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 Emby.Common.Implementations/BaseApplicationPaths.cs (limited to 'Emby.Common.Implementations/BaseApplicationPaths.cs') diff --git a/Emby.Common.Implementations/BaseApplicationPaths.cs b/Emby.Common.Implementations/BaseApplicationPaths.cs new file mode 100644 index 000000000..628d62bd4 --- /dev/null +++ b/Emby.Common.Implementations/BaseApplicationPaths.cs @@ -0,0 +1,178 @@ +using System.IO; +using MediaBrowser.Common.Configuration; + +namespace Emby.Common.Implementations +{ + /// + /// Provides a base class to hold common application paths used by both the Ui and Server. + /// This can be subclassed to add application-specific paths. + /// + public abstract class BaseApplicationPaths : IApplicationPaths + { + /// + /// Initializes a new instance of the class. + /// + protected BaseApplicationPaths(string programDataPath, string applicationPath) + { + ProgramDataPath = programDataPath; + ApplicationPath = applicationPath; + } + + public string ApplicationPath { get; private set; } + public string ProgramDataPath { get; private set; } + + /// + /// Gets the path to the system folder + /// + public string ProgramSystemPath + { + get { return Path.GetDirectoryName(ApplicationPath); } + } + + /// + /// The _data directory + /// + private string _dataDirectory; + /// + /// Gets the folder path to the data directory + /// + /// The data directory. + public string DataPath + { + get + { + if (_dataDirectory == null) + { + _dataDirectory = Path.Combine(ProgramDataPath, "data"); + + Directory.CreateDirectory(_dataDirectory); + } + + return _dataDirectory; + } + } + + /// + /// Gets the image cache path. + /// + /// The image cache path. + public string ImageCachePath + { + get + { + return Path.Combine(CachePath, "images"); + } + } + + /// + /// Gets the path to the plugin directory + /// + /// The plugins path. + public string PluginsPath + { + get + { + return Path.Combine(ProgramDataPath, "plugins"); + } + } + + /// + /// Gets the path to the plugin configurations directory + /// + /// The plugin configurations path. + public string PluginConfigurationsPath + { + get + { + return Path.Combine(PluginsPath, "configurations"); + } + } + + /// + /// Gets the path to where temporary update files will be stored + /// + /// The plugin configurations path. + public string TempUpdatePath + { + get + { + return Path.Combine(ProgramDataPath, "updates"); + } + } + + /// + /// Gets the path to the log directory + /// + /// The log directory path. + public string LogDirectoryPath + { + get + { + return Path.Combine(ProgramDataPath, "logs"); + } + } + + /// + /// Gets the path to the application configuration root directory + /// + /// The configuration directory path. + public string ConfigurationDirectoryPath + { + get + { + return Path.Combine(ProgramDataPath, "config"); + } + } + + /// + /// Gets the path to the system configuration file + /// + /// The system configuration file path. + public string SystemConfigurationFilePath + { + get + { + return Path.Combine(ConfigurationDirectoryPath, "system.xml"); + } + } + + /// + /// The _cache directory + /// + private string _cachePath; + /// + /// Gets the folder path to the cache directory + /// + /// The cache directory. + public string CachePath + { + get + { + if (string.IsNullOrEmpty(_cachePath)) + { + _cachePath = Path.Combine(ProgramDataPath, "cache"); + + Directory.CreateDirectory(_cachePath); + } + + return _cachePath; + } + set + { + _cachePath = value; + } + } + + /// + /// Gets the folder path to the temp directory within the cache folder + /// + /// The temp directory. + public string TempDirectory + { + get + { + return Path.Combine(CachePath, "temp"); + } + } + } +} -- cgit v1.2.3