diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-10-29 01:40:15 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-10-29 01:40:15 -0400 |
| commit | 2729301bffb8b4a15c2228fee39717d80b123e60 (patch) | |
| tree | 783fb50681cdf085ea6ea550e52d2ee970d198ea /Emby.Common.Implementations/BaseApplicationPaths.cs | |
| parent | ce38e987910b4badb4c40844786449458b2d3229 (diff) | |
move common dependencies
Diffstat (limited to 'Emby.Common.Implementations/BaseApplicationPaths.cs')
| -rw-r--r-- | Emby.Common.Implementations/BaseApplicationPaths.cs | 178 |
1 files changed, 178 insertions, 0 deletions
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 +{ + /// <summary> + /// 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. + /// </summary> + public abstract class BaseApplicationPaths : IApplicationPaths + { + /// <summary> + /// Initializes a new instance of the <see cref="BaseApplicationPaths"/> class. + /// </summary> + protected BaseApplicationPaths(string programDataPath, string applicationPath) + { + ProgramDataPath = programDataPath; + ApplicationPath = applicationPath; + } + + public string ApplicationPath { get; private set; } + public string ProgramDataPath { get; private set; } + + /// <summary> + /// Gets the path to the system folder + /// </summary> + public string ProgramSystemPath + { + get { return Path.GetDirectoryName(ApplicationPath); } + } + + /// <summary> + /// The _data directory + /// </summary> + private string _dataDirectory; + /// <summary> + /// Gets the folder path to the data directory + /// </summary> + /// <value>The data directory.</value> + public string DataPath + { + get + { + if (_dataDirectory == null) + { + _dataDirectory = Path.Combine(ProgramDataPath, "data"); + + Directory.CreateDirectory(_dataDirectory); + } + + return _dataDirectory; + } + } + + /// <summary> + /// Gets the image cache path. + /// </summary> + /// <value>The image cache path.</value> + public string ImageCachePath + { + get + { + return Path.Combine(CachePath, "images"); + } + } + + /// <summary> + /// Gets the path to the plugin directory + /// </summary> + /// <value>The plugins path.</value> + public string PluginsPath + { + get + { + return Path.Combine(ProgramDataPath, "plugins"); + } + } + + /// <summary> + /// Gets the path to the plugin configurations directory + /// </summary> + /// <value>The plugin configurations path.</value> + public string PluginConfigurationsPath + { + get + { + return Path.Combine(PluginsPath, "configurations"); + } + } + + /// <summary> + /// Gets the path to where temporary update files will be stored + /// </summary> + /// <value>The plugin configurations path.</value> + public string TempUpdatePath + { + get + { + return Path.Combine(ProgramDataPath, "updates"); + } + } + + /// <summary> + /// Gets the path to the log directory + /// </summary> + /// <value>The log directory path.</value> + public string LogDirectoryPath + { + get + { + return Path.Combine(ProgramDataPath, "logs"); + } + } + + /// <summary> + /// Gets the path to the application configuration root directory + /// </summary> + /// <value>The configuration directory path.</value> + public string ConfigurationDirectoryPath + { + get + { + return Path.Combine(ProgramDataPath, "config"); + } + } + + /// <summary> + /// Gets the path to the system configuration file + /// </summary> + /// <value>The system configuration file path.</value> + public string SystemConfigurationFilePath + { + get + { + return Path.Combine(ConfigurationDirectoryPath, "system.xml"); + } + } + + /// <summary> + /// The _cache directory + /// </summary> + private string _cachePath; + /// <summary> + /// Gets the folder path to the cache directory + /// </summary> + /// <value>The cache directory.</value> + public string CachePath + { + get + { + if (string.IsNullOrEmpty(_cachePath)) + { + _cachePath = Path.Combine(ProgramDataPath, "cache"); + + Directory.CreateDirectory(_cachePath); + } + + return _cachePath; + } + set + { + _cachePath = value; + } + } + + /// <summary> + /// Gets the folder path to the temp directory within the cache folder + /// </summary> + /// <value>The temp directory.</value> + public string TempDirectory + { + get + { + return Path.Combine(CachePath, "temp"); + } + } + } +} |
