2
0
Эх сурвалжийг харах

Fix doc releated warnings

Bond_009 5 жил өмнө
parent
commit
25917db07a

+ 20 - 17
Emby.Server.Implementations/AppBase/BaseApplicationPaths.cs

@@ -10,6 +10,8 @@ namespace Emby.Server.Implementations.AppBase
     /// </summary>
     /// </summary>
     public abstract class BaseApplicationPaths : IApplicationPaths
     public abstract class BaseApplicationPaths : IApplicationPaths
     {
     {
+        private string _dataPath;
+
         /// <summary>
         /// <summary>
         /// Initializes a new instance of the <see cref="BaseApplicationPaths"/> class.
         /// Initializes a new instance of the <see cref="BaseApplicationPaths"/> class.
         /// </summary>
         /// </summary>
@@ -30,27 +32,27 @@ namespace Emby.Server.Implementations.AppBase
         }
         }
 
 
         /// <summary>
         /// <summary>
-        /// Gets the path to the program data folder
+        /// Gets the path to the program data folder.
         /// </summary>
         /// </summary>
         /// <value>The program data path.</value>
         /// <value>The program data path.</value>
-        public string ProgramDataPath { get; private set; }
+        public string ProgramDataPath { get; }
 
 
         /// <summary>
         /// <summary>
-        /// Gets the path to the web UI resources folder
+        /// Gets the path to the web UI resources folder.
         /// </summary>
         /// </summary>
         /// <value>The web UI resources path.</value>
         /// <value>The web UI resources path.</value>
-        public string WebPath { get; set; }
+        public string WebPath { get; }
 
 
         /// <summary>
         /// <summary>
-        /// Gets the path to the system folder
+        /// Gets the path to the system folder.
         /// </summary>
         /// </summary>
+        /// <value>The path to the system folder.</value>
         public string ProgramSystemPath { get; } = AppContext.BaseDirectory;
         public string ProgramSystemPath { get; } = AppContext.BaseDirectory;
 
 
         /// <summary>
         /// <summary>
-        /// Gets the folder path to the data directory
+        /// Gets the folder path to the data directory.
         /// </summary>
         /// </summary>
         /// <value>The data directory.</value>
         /// <value>The data directory.</value>
-        private string _dataPath;
         public string DataPath
         public string DataPath
         {
         {
             get => _dataPath;
             get => _dataPath;
@@ -58,8 +60,9 @@ namespace Emby.Server.Implementations.AppBase
         }
         }
 
 
         /// <summary>
         /// <summary>
-        /// Gets the magic strings used for virtual path manipulation.
+        /// Gets the magic string used for virtual path manipulation.
         /// </summary>
         /// </summary>
+        /// <value>The magic string used for virtual path manipulation.</value>
         public string VirtualDataPath { get; } = "%AppDataPath%";
         public string VirtualDataPath { get; } = "%AppDataPath%";
 
 
         /// <summary>
         /// <summary>
@@ -69,43 +72,43 @@ namespace Emby.Server.Implementations.AppBase
         public string ImageCachePath => Path.Combine(CachePath, "images");
         public string ImageCachePath => Path.Combine(CachePath, "images");
 
 
         /// <summary>
         /// <summary>
-        /// Gets the path to the plugin directory
+        /// Gets the path to the plugin directory.
         /// </summary>
         /// </summary>
         /// <value>The plugins path.</value>
         /// <value>The plugins path.</value>
         public string PluginsPath => Path.Combine(ProgramDataPath, "plugins");
         public string PluginsPath => Path.Combine(ProgramDataPath, "plugins");
 
 
         /// <summary>
         /// <summary>
-        /// Gets the path to the plugin configurations directory
+        /// Gets the path to the plugin configurations directory.
         /// </summary>
         /// </summary>
         /// <value>The plugin configurations path.</value>
         /// <value>The plugin configurations path.</value>
         public string PluginConfigurationsPath => Path.Combine(PluginsPath, "configurations");
         public string PluginConfigurationsPath => Path.Combine(PluginsPath, "configurations");
 
 
         /// <summary>
         /// <summary>
-        /// Gets the path to the log directory
+        /// Gets the path to the log directory.
         /// </summary>
         /// </summary>
         /// <value>The log directory path.</value>
         /// <value>The log directory path.</value>
-        public string LogDirectoryPath { get; private set; }
+        public string LogDirectoryPath { get; }
 
 
         /// <summary>
         /// <summary>
-        /// Gets the path to the application configuration root directory
+        /// Gets the path to the application configuration root directory.
         /// </summary>
         /// </summary>
         /// <value>The configuration directory path.</value>
         /// <value>The configuration directory path.</value>
-        public string ConfigurationDirectoryPath { get; private set; }
+        public string ConfigurationDirectoryPath { get; }
 
 
         /// <summary>
         /// <summary>
-        /// Gets the path to the system configuration file
+        /// Gets the path to the system configuration file.
         /// </summary>
         /// </summary>
         /// <value>The system configuration file path.</value>
         /// <value>The system configuration file path.</value>
         public string SystemConfigurationFilePath => Path.Combine(ConfigurationDirectoryPath, "system.xml");
         public string SystemConfigurationFilePath => Path.Combine(ConfigurationDirectoryPath, "system.xml");
 
 
         /// <summary>
         /// <summary>
-        /// Gets the folder path to the cache directory
+        /// Gets or sets the folder path to the cache directory.
         /// </summary>
         /// </summary>
         /// <value>The cache directory.</value>
         /// <value>The cache directory.</value>
         public string CachePath { get; set; }
         public string CachePath { get; set; }
 
 
         /// <summary>
         /// <summary>
-        /// Gets the folder path to the temp directory within the cache folder
+        /// Gets the folder path to the temp directory within the cache folder.
         /// </summary>
         /// </summary>
         /// <value>The temp directory.</value>
         /// <value>The temp directory.</value>
         public string TempDirectory => Path.Combine(CachePath, "temp");
         public string TempDirectory => Path.Combine(CachePath, "temp");

+ 51 - 41
Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs

@@ -1,6 +1,7 @@
 using System;
 using System;
 using System.Collections.Concurrent;
 using System.Collections.Concurrent;
 using System.Collections.Generic;
 using System.Collections.Generic;
+using System.Globalization;
 using System.IO;
 using System.IO;
 using System.Linq;
 using System.Linq;
 using System.Threading;
 using System.Threading;
@@ -19,11 +20,44 @@ namespace Emby.Server.Implementations.AppBase
     /// </summary>
     /// </summary>
     public abstract class BaseConfigurationManager : IConfigurationManager
     public abstract class BaseConfigurationManager : IConfigurationManager
     {
     {
+        private readonly IFileSystem _fileSystem;
+
+        private readonly ConcurrentDictionary<string, object> _configurations = new ConcurrentDictionary<string, object>();
+
+        private ConfigurationStore[] _configurationStores = Array.Empty<ConfigurationStore>();
+        private IConfigurationFactory[] _configurationFactories = Array.Empty<IConfigurationFactory>();
+
         /// <summary>
         /// <summary>
-        /// Gets the type of the configuration.
+        /// The _configuration loaded.
         /// </summary>
         /// </summary>
-        /// <value>The type of the configuration.</value>
-        protected abstract Type ConfigurationType { get; }
+        private bool _configurationLoaded;
+
+        /// <summary>
+        /// The _configuration sync lock.
+        /// </summary>
+        private object _configurationSyncLock = new object();
+
+        /// <summary>
+        /// The _configuration.
+        /// </summary>
+        private BaseApplicationConfiguration _configuration;
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="BaseConfigurationManager" /> class.
+        /// </summary>
+        /// <param name="applicationPaths">The application paths.</param>
+        /// <param name="loggerFactory">The logger factory.</param>
+        /// <param name="xmlSerializer">The XML serializer.</param>
+        /// <param name="fileSystem">The file system</param>
+        protected BaseConfigurationManager(IApplicationPaths applicationPaths, ILoggerFactory loggerFactory, IXmlSerializer xmlSerializer, IFileSystem fileSystem)
+        {
+            CommonApplicationPaths = applicationPaths;
+            XmlSerializer = xmlSerializer;
+            _fileSystem = fileSystem;
+            Logger = loggerFactory.CreateLogger(GetType().Name);
+
+            UpdateCachePath();
+        }
 
 
         /// <summary>
         /// <summary>
         /// Occurs when [configuration updated].
         /// Occurs when [configuration updated].
@@ -40,6 +74,12 @@ namespace Emby.Server.Implementations.AppBase
         /// </summary>
         /// </summary>
         public event EventHandler<ConfigurationUpdateEventArgs> NamedConfigurationUpdated;
         public event EventHandler<ConfigurationUpdateEventArgs> NamedConfigurationUpdated;
 
 
+        /// <summary>
+        /// Gets the type of the configuration.
+        /// </summary>
+        /// <value>The type of the configuration.</value>
+        protected abstract Type ConfigurationType { get; }
+
         /// <summary>
         /// <summary>
         /// Gets the logger.
         /// Gets the logger.
         /// </summary>
         /// </summary>
@@ -56,20 +96,7 @@ namespace Emby.Server.Implementations.AppBase
         /// </summary>
         /// </summary>
         /// <value>The application paths.</value>
         /// <value>The application paths.</value>
         public IApplicationPaths CommonApplicationPaths { get; private set; }
         public IApplicationPaths CommonApplicationPaths { get; private set; }
-        public readonly IFileSystem FileSystem;
 
 
-        /// <summary>
-        /// The _configuration loaded
-        /// </summary>
-        private bool _configurationLoaded;
-        /// <summary>
-        /// The _configuration sync lock
-        /// </summary>
-        private object _configurationSyncLock = new object();
-        /// <summary>
-        /// The _configuration
-        /// </summary>
-        private BaseApplicationConfiguration _configuration;
         /// <summary>
         /// <summary>
         /// Gets the system configuration
         /// Gets the system configuration
         /// </summary>
         /// </summary>
@@ -90,26 +117,6 @@ namespace Emby.Server.Implementations.AppBase
             }
             }
         }
         }
 
 
-        private ConfigurationStore[] _configurationStores = { };
-        private IConfigurationFactory[] _configurationFactories = { };
-
-        /// <summary>
-        /// Initializes a new instance of the <see cref="BaseConfigurationManager" /> class.
-        /// </summary>
-        /// <param name="applicationPaths">The application paths.</param>
-        /// <param name="loggerFactory">The logger factory.</param>
-        /// <param name="xmlSerializer">The XML serializer.</param>
-        /// <param name="fileSystem">The file system</param>
-        protected BaseConfigurationManager(IApplicationPaths applicationPaths, ILoggerFactory loggerFactory, IXmlSerializer xmlSerializer, IFileSystem fileSystem)
-        {
-            CommonApplicationPaths = applicationPaths;
-            XmlSerializer = xmlSerializer;
-            FileSystem = fileSystem;
-            Logger = loggerFactory.CreateLogger(GetType().Name);
-
-            UpdateCachePath();
-        }
-
         public virtual void AddParts(IEnumerable<IConfigurationFactory> factories)
         public virtual void AddParts(IEnumerable<IConfigurationFactory> factories)
         {
         {
             _configurationFactories = factories.ToArray();
             _configurationFactories = factories.ToArray();
@@ -171,6 +178,7 @@ namespace Emby.Server.Implementations.AppBase
         private void UpdateCachePath()
         private void UpdateCachePath()
         {
         {
             string cachePath;
             string cachePath;
+
             // If the configuration file has no entry (i.e. not set in UI)
             // If the configuration file has no entry (i.e. not set in UI)
             if (string.IsNullOrWhiteSpace(CommonConfiguration.CachePath))
             if (string.IsNullOrWhiteSpace(CommonConfiguration.CachePath))
             {
             {
@@ -207,12 +215,16 @@ namespace Emby.Server.Implementations.AppBase
             var newPath = newConfig.CachePath;
             var newPath = newConfig.CachePath;
 
 
             if (!string.IsNullOrWhiteSpace(newPath)
             if (!string.IsNullOrWhiteSpace(newPath)
-                && !string.Equals(CommonConfiguration.CachePath ?? string.Empty, newPath))
+                && !string.Equals(CommonConfiguration.CachePath ?? string.Empty, newPath, StringComparison.Ordinal))
             {
             {
                 // Validate
                 // Validate
                 if (!Directory.Exists(newPath))
                 if (!Directory.Exists(newPath))
                 {
                 {
-                    throw new FileNotFoundException(string.Format("{0} does not exist.", newPath));
+                    throw new FileNotFoundException(
+                        string.Format(
+                            CultureInfo.InvariantCulture,
+                            "{0} does not exist.",
+                            newPath));
                 }
                 }
 
 
                 EnsureWriteAccess(newPath);
                 EnsureWriteAccess(newPath);
@@ -223,11 +235,9 @@ namespace Emby.Server.Implementations.AppBase
         {
         {
             var file = Path.Combine(path, Guid.NewGuid().ToString());
             var file = Path.Combine(path, Guid.NewGuid().ToString());
             File.WriteAllText(file, string.Empty);
             File.WriteAllText(file, string.Empty);
-            FileSystem.DeleteFile(file);
+            _fileSystem.DeleteFile(file);
         }
         }
 
 
-        private readonly ConcurrentDictionary<string, object> _configurations = new ConcurrentDictionary<string, object>();
-
         private string GetConfigurationFile(string key)
         private string GetConfigurationFile(string key)
         {
         {
             return Path.Combine(CommonApplicationPaths.ConfigurationDirectoryPath, key.ToLowerInvariant() + ".xml");
             return Path.Combine(CommonApplicationPaths.ConfigurationDirectoryPath, key.ToLowerInvariant() + ".xml");

+ 3 - 3
Emby.Server.Implementations/ApplicationHost.cs

@@ -418,7 +418,7 @@ namespace Emby.Server.Implementations
         public string ApplicationVersion { get; } = typeof(ApplicationHost).Assembly.GetName().Version.ToString(3);
         public string ApplicationVersion { get; } = typeof(ApplicationHost).Assembly.GetName().Version.ToString(3);
 
 
         /// <summary>
         /// <summary>
-        /// Gets the current application user agent
+        /// Gets the current application user agent.
         /// </summary>
         /// </summary>
         /// <value>The application user agent.</value>
         /// <value>The application user agent.</value>
         public string ApplicationUserAgent => Name.Replace(' ', '-') + "/" + ApplicationVersion;
         public string ApplicationUserAgent => Name.Replace(' ', '-') + "/" + ApplicationVersion;
@@ -467,8 +467,8 @@ namespace Emby.Server.Implementations
         /// <summary>
         /// <summary>
         /// Creates an instance of type and resolves all constructor dependencies
         /// Creates an instance of type and resolves all constructor dependencies
         /// </summary>
         /// </summary>
-        /// /// <typeparam name="T">The type</typeparam>
-        /// <returns>T</returns>
+        /// /// <typeparam name="T">The type.</typeparam>
+        /// <returns>T.</returns>
         public T CreateInstance<T>()
         public T CreateInstance<T>()
             => ActivatorUtilities.CreateInstance<T>(_serviceProvider);
             => ActivatorUtilities.CreateInstance<T>(_serviceProvider);
 
 

+ 2 - 2
Emby.Server.Implementations/ConfigurationOptions.cs

@@ -6,8 +6,8 @@ namespace Emby.Server.Implementations
     {
     {
         public static readonly Dictionary<string, string> Configuration = new Dictionary<string, string>
         public static readonly Dictionary<string, string> Configuration = new Dictionary<string, string>
         {
         {
-            {"HttpListenerHost:DefaultRedirectPath", "web/index.html"},
-            {"MusicBrainz:BaseUrl", "https://www.musicbrainz.org"}
+            { "HttpListenerHost:DefaultRedirectPath", "web/index.html" },
+            { "MusicBrainz:BaseUrl", "https://www.musicbrainz.org" }
         };
         };
     }
     }
 }
 }

+ 1 - 0
Emby.Server.Implementations/Emby.Server.Implementations.csproj

@@ -44,6 +44,7 @@
   <PropertyGroup>
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
     <TargetFramework>netstandard2.0</TargetFramework>
     <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
     <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    <GenerateDocumentationFile>true</GenerateDocumentationFile>
   </PropertyGroup>
   </PropertyGroup>
 
 
   <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
   <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">

+ 14 - 13
Emby.Server.Implementations/ServerApplicationPaths.cs

@@ -10,8 +10,12 @@ namespace Emby.Server.Implementations
     /// </summary>
     /// </summary>
     public class ServerApplicationPaths : BaseApplicationPaths, IServerApplicationPaths
     public class ServerApplicationPaths : BaseApplicationPaths, IServerApplicationPaths
     {
     {
+        private string _defaultTranscodingTempPath;
+        private string _transcodingTempPath;
+        private string _internalMetadataPath;
+
         /// <summary>
         /// <summary>
-        /// Initializes a new instance of the <see cref="BaseApplicationPaths" /> class.
+        /// Initializes a new instance of the <see cref="ServerApplicationPaths" /> class.
         /// </summary>
         /// </summary>
         public ServerApplicationPaths(
         public ServerApplicationPaths(
             string programDataPath,
             string programDataPath,
@@ -30,7 +34,7 @@ namespace Emby.Server.Implementations
         public string ApplicationResourcesPath { get; } = AppContext.BaseDirectory;
         public string ApplicationResourcesPath { get; } = AppContext.BaseDirectory;
 
 
         /// <summary>
         /// <summary>
-        /// Gets the path to the base root media directory
+        /// Gets the path to the base root media directory.
         /// </summary>
         /// </summary>
         /// <value>The root folder path.</value>
         /// <value>The root folder path.</value>
         public string RootFolderPath => Path.Combine(ProgramDataPath, "root");
         public string RootFolderPath => Path.Combine(ProgramDataPath, "root");
@@ -48,7 +52,7 @@ namespace Emby.Server.Implementations
         public string LocalizationPath => Path.Combine(ProgramDataPath, "localization");
         public string LocalizationPath => Path.Combine(ProgramDataPath, "localization");
 
 
         /// <summary>
         /// <summary>
-        /// Gets the path to the People directory
+        /// Gets the path to the People directory.
         /// </summary>
         /// </summary>
         /// <value>The people path.</value>
         /// <value>The people path.</value>
         public string PeoplePath => Path.Combine(InternalMetadataPath, "People");
         public string PeoplePath => Path.Combine(InternalMetadataPath, "People");
@@ -56,37 +60,37 @@ namespace Emby.Server.Implementations
         public string ArtistsPath => Path.Combine(InternalMetadataPath, "artists");
         public string ArtistsPath => Path.Combine(InternalMetadataPath, "artists");
 
 
         /// <summary>
         /// <summary>
-        /// Gets the path to the Genre directory
+        /// Gets the path to the Genre directory.
         /// </summary>
         /// </summary>
         /// <value>The genre path.</value>
         /// <value>The genre path.</value>
         public string GenrePath => Path.Combine(InternalMetadataPath, "Genre");
         public string GenrePath => Path.Combine(InternalMetadataPath, "Genre");
 
 
         /// <summary>
         /// <summary>
-        /// Gets the path to the Genre directory
+        /// Gets the path to the Genre directory.
         /// </summary>
         /// </summary>
         /// <value>The genre path.</value>
         /// <value>The genre path.</value>
         public string MusicGenrePath => Path.Combine(InternalMetadataPath, "MusicGenre");
         public string MusicGenrePath => Path.Combine(InternalMetadataPath, "MusicGenre");
 
 
         /// <summary>
         /// <summary>
-        /// Gets the path to the Studio directory
+        /// Gets the path to the Studio directory.
         /// </summary>
         /// </summary>
         /// <value>The studio path.</value>
         /// <value>The studio path.</value>
         public string StudioPath => Path.Combine(InternalMetadataPath, "Studio");
         public string StudioPath => Path.Combine(InternalMetadataPath, "Studio");
 
 
         /// <summary>
         /// <summary>
-        /// Gets the path to the Year directory
+        /// Gets the path to the Year directory.
         /// </summary>
         /// </summary>
         /// <value>The year path.</value>
         /// <value>The year path.</value>
         public string YearPath => Path.Combine(InternalMetadataPath, "Year");
         public string YearPath => Path.Combine(InternalMetadataPath, "Year");
 
 
         /// <summary>
         /// <summary>
-        /// Gets the path to the General IBN directory
+        /// Gets the path to the General IBN directory.
         /// </summary>
         /// </summary>
         /// <value>The general path.</value>
         /// <value>The general path.</value>
         public string GeneralPath => Path.Combine(InternalMetadataPath, "general");
         public string GeneralPath => Path.Combine(InternalMetadataPath, "general");
 
 
         /// <summary>
         /// <summary>
-        /// Gets the path to the Ratings IBN directory
+        /// Gets the path to the Ratings IBN directory.
         /// </summary>
         /// </summary>
         /// <value>The ratings path.</value>
         /// <value>The ratings path.</value>
         public string RatingsPath => Path.Combine(InternalMetadataPath, "ratings");
         public string RatingsPath => Path.Combine(InternalMetadataPath, "ratings");
@@ -98,15 +102,13 @@ namespace Emby.Server.Implementations
         public string MediaInfoImagesPath => Path.Combine(InternalMetadataPath, "mediainfo");
         public string MediaInfoImagesPath => Path.Combine(InternalMetadataPath, "mediainfo");
 
 
         /// <summary>
         /// <summary>
-        /// Gets the path to the user configuration directory
+        /// Gets the path to the user configuration directory.
         /// </summary>
         /// </summary>
         /// <value>The user configuration directory path.</value>
         /// <value>The user configuration directory path.</value>
         public string UserConfigurationDirectoryPath => Path.Combine(ConfigurationDirectoryPath, "users");
         public string UserConfigurationDirectoryPath => Path.Combine(ConfigurationDirectoryPath, "users");
 
 
-        private string _defaultTranscodingTempPath;
         public string DefaultTranscodingTempPath => _defaultTranscodingTempPath ?? (_defaultTranscodingTempPath = Path.Combine(ProgramDataPath, "transcoding-temp"));
         public string DefaultTranscodingTempPath => _defaultTranscodingTempPath ?? (_defaultTranscodingTempPath = Path.Combine(ProgramDataPath, "transcoding-temp"));
 
 
-        private string _transcodingTempPath;
         public string TranscodingTempPath
         public string TranscodingTempPath
         {
         {
             get => _transcodingTempPath ?? (_transcodingTempPath = DefaultTranscodingTempPath);
             get => _transcodingTempPath ?? (_transcodingTempPath = DefaultTranscodingTempPath);
@@ -139,7 +141,6 @@ namespace Emby.Server.Implementations
             return path;
             return path;
         }
         }
 
 
-        private string _internalMetadataPath;
         public string InternalMetadataPath
         public string InternalMetadataPath
         {
         {
             get => _internalMetadataPath ?? (_internalMetadataPath = Path.Combine(DataPath, "metadata"));
             get => _internalMetadataPath ?? (_internalMetadataPath = Path.Combine(DataPath, "metadata"));