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

Merge pull request #458 from EraYaN/code-cleanup

Clean up several minor issues and add TODOs
Joshua M. Boniface 6 жил өмнө
parent
commit
9dcaafe700
100 өөрчлөгдсөн 537 нэмэгдсэн , 818 устгасан
  1. 1 1
      .drone.yml
  2. 2 2
      .editorconfig
  3. 4 0
      BDInfo/BDInfo.csproj
  4. 5 5
      BDInfo/BDROM.cs
  5. 8 16
      BDInfo/Properties/AssemblyInfo.cs
  6. 4 0
      DvdLib/DvdLib.csproj
  7. 1 1
      DvdLib/Ifo/Dvd.cs
  8. 2 2
      DvdLib/Ifo/DvdTime.cs
  9. 8 16
      DvdLib/Properties/AssemblyInfo.cs
  10. 2 2
      Emby.Dlna/ConnectionManager/ConnectionManagerXmlBuilder.cs
  11. 3 3
      Emby.Dlna/ConnectionManager/ServiceActionListBuilder.cs
  12. 2 2
      Emby.Dlna/ContentDirectory/ContentDirectoryXmlBuilder.cs
  13. 6 6
      Emby.Dlna/ContentDirectory/ServiceActionListBuilder.cs
  14. 3 3
      Emby.Dlna/Didl/DidlBuilder.cs
  15. 3 3
      Emby.Dlna/DlnaManager.cs
  16. 4 0
      Emby.Dlna/Emby.Dlna.csproj
  17. 3 3
      Emby.Dlna/MediaReceiverRegistrar/ControlHandler.cs
  18. 2 2
      Emby.Dlna/MediaReceiverRegistrar/MediaReceiverRegistrarXmlBuilder.cs
  19. 5 5
      Emby.Dlna/MediaReceiverRegistrar/ServiceActionListBuilder.cs
  20. 7 7
      Emby.Dlna/PlayTo/Device.cs
  21. 4 4
      Emby.Dlna/PlayTo/PlayToController.cs
  22. 2 2
      Emby.Dlna/PlayTo/PlaylistItemFactory.cs
  23. 2 2
      Emby.Dlna/PlayTo/SsdpHttpClient.cs
  24. 1 1
      Emby.Dlna/PlayTo/TransportCommands.cs
  25. 1 1
      Emby.Dlna/PlayTo/UpnpContainer.cs
  26. 1 1
      Emby.Dlna/PlayTo/uBaseObject.cs
  27. 1 1
      Emby.Dlna/PlayTo/uParser.cs
  28. 5 8
      Emby.Dlna/Properties/AssemblyInfo.cs
  29. 4 7
      Emby.Dlna/Server/DescriptionXmlBuilder.cs
  30. 3 3
      Emby.Dlna/Service/ServiceXmlBuilder.cs
  31. 8 12
      Emby.Drawing.Skia/Properties/AssemblyInfo.cs
  32. 5 5
      Emby.Drawing.Skia/SkiaEncoder.cs
  33. 6 1
      Emby.Drawing.Skia/StripCollageBuilder.cs
  34. 1 1
      Emby.Drawing/Common/ImageHeader.cs
  35. 10 10
      Emby.Drawing/ImageProcessor.cs
  36. 5 5
      Emby.Drawing/Properties/AssemblyInfo.cs
  37. 4 0
      Emby.IsoMounting/IsoMounter/IsoMounter.csproj
  38. 3 3
      Emby.IsoMounting/IsoMounter/LinuxIsoManager.cs
  39. 21 0
      Emby.IsoMounting/IsoMounter/Properties/AssemblyInfo.cs
  40. 1 1
      Emby.Naming/AudioBook/AudioBookResolver.cs
  41. 4 0
      Emby.Naming/Emby.Naming.csproj
  42. 21 0
      Emby.Naming/Properties/AssemblyInfo.cs
  43. 2 2
      Emby.Naming/Subtitles/SubtitleParser.cs
  44. 2 2
      Emby.Naming/TV/EpisodePathParser.cs
  45. 1 1
      Emby.Naming/TV/EpisodeResolver.cs
  46. 2 2
      Emby.Naming/Video/CleanDateTimeParser.cs
  47. 2 2
      Emby.Naming/Video/CleanStringParser.cs
  48. 1 1
      Emby.Naming/Video/FlagParser.cs
  49. 2 2
      Emby.Naming/Video/Format3DParser.cs
  50. 2 2
      Emby.Naming/Video/VideoListResolver.cs
  51. 1 1
      Emby.Naming/Video/VideoResolver.cs
  52. 4 0
      Emby.Notifications/Emby.Notifications.csproj
  53. 6 21
      Emby.Notifications/Properties/AssemblyInfo.cs
  54. 6 19
      Emby.Photos/Properties/AssemblyInfo.cs
  55. 4 4
      Emby.Server.Implementations/Activity/ActivityLogEntryPoint.cs
  56. 4 4
      Emby.Server.Implementations/Activity/ActivityRepository.cs
  57. 10 61
      Emby.Server.Implementations/AppBase/BaseApplicationPaths.cs
  58. 3 2
      Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs
  59. 2 1
      Emby.Server.Implementations/AppBase/ConfigurationHelper.cs
  60. 18 68
      Emby.Server.Implementations/ApplicationHost.cs
  61. 1 4
      Emby.Server.Implementations/Channels/ChannelImageProvider.cs
  62. 9 14
      Emby.Server.Implementations/Channels/ChannelManager.cs
  63. 7 28
      Emby.Server.Implementations/Channels/RefreshChannelsScheduledTask.cs
  64. 3 12
      Emby.Server.Implementations/Configuration/ServerConfigurationManager.cs
  65. 6 27
      Emby.Server.Implementations/Data/BaseSqliteRepository.cs
  66. 5 11
      Emby.Server.Implementations/Data/SqliteDisplayPreferencesRepository.cs
  67. 2 2
      Emby.Server.Implementations/Data/SqliteExtensions.cs
  68. 34 34
      Emby.Server.Implementations/Data/SqliteItemRepository.cs
  69. 16 28
      Emby.Server.Implementations/Data/SqliteUserDataRepository.cs
  70. 4 11
      Emby.Server.Implementations/Data/SqliteUserRepository.cs
  71. 1 1
      Emby.Server.Implementations/Data/TypeMapper.cs
  72. 7 12
      Emby.Server.Implementations/Devices/DeviceId.cs
  73. 4 7
      Emby.Server.Implementations/Devices/DeviceManager.cs
  74. 5 20
      Emby.Server.Implementations/Diagnostics/CommonProcess.cs
  75. 9 9
      Emby.Server.Implementations/Dto/DtoService.cs
  76. 2 2
      Emby.Server.Implementations/EntryPoints/ExternalPortForwarding.cs
  77. 3 3
      Emby.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs
  78. 2 2
      Emby.Server.Implementations/EntryPoints/RecordingNotifier.cs
  79. 1 4
      Emby.Server.Implementations/EntryPoints/RefreshUsersMetadata.cs
  80. 2 8
      Emby.Server.Implementations/EnvironmentInfo/EnvironmentInfo.cs
  81. 13 13
      Emby.Server.Implementations/HttpClientManager/HttpClientManager.cs
  82. 4 7
      Emby.Server.Implementations/HttpServer/FileWriter.cs
  83. 14 19
      Emby.Server.Implementations/HttpServer/HttpListenerHost.cs
  84. 12 12
      Emby.Server.Implementations/HttpServer/HttpResultFactory.cs
  85. 6 9
      Emby.Server.Implementations/HttpServer/RangeRequestWriter.cs
  86. 3 3
      Emby.Server.Implementations/HttpServer/Security/AuthService.cs
  87. 2 2
      Emby.Server.Implementations/HttpServer/Security/AuthorizationContext.cs
  88. 3 6
      Emby.Server.Implementations/HttpServer/StreamWriter.cs
  89. 10 12
      Emby.Server.Implementations/HttpServer/WebSocketConnection.cs
  90. 2 2
      Emby.Server.Implementations/IO/FileRefresher.cs
  91. 1 1
      Emby.Server.Implementations/IO/IsoManager.cs
  92. 5 5
      Emby.Server.Implementations/IO/LibraryMonitor.cs
  93. 22 28
      Emby.Server.Implementations/IO/ManagedFileSystem.cs
  94. 4 7
      Emby.Server.Implementations/IO/MbLinkShortcutHandler.cs
  95. 10 49
      Emby.Server.Implementations/IO/ThrottledStream.cs
  96. 3 16
      Emby.Server.Implementations/Images/BaseDynamicImageProvider.cs
  97. 1 1
      Emby.Server.Implementations/Library/DefaultAuthenticationProvider.cs
  98. 27 34
      Emby.Server.Implementations/Library/LibraryManager.cs
  99. 10 9
      Emby.Server.Implementations/Library/MediaSourceManager.cs
  100. 2 2
      Emby.Server.Implementations/Library/PathExtensions.cs

+ 1 - 1
.drone.yml

@@ -9,4 +9,4 @@ steps:
 - name: build
   image: microsoft/dotnet:2-sdk
   commands:
-    - dotnet publish --configuration release --output /release
+    - dotnet publish --configuration release --output /release Jellyfin.Server

+ 2 - 2
.editorconfig

@@ -3,11 +3,11 @@
 # For emacs, vim, np++ and other editors, see here: https://github.com/editorconfig
 ############################### 
 # Core EditorConfig Options   # 
-############################### 
+###############################
+root = true
 # All files 
 [*] 
 indent_style = space 
-root = true
 indent_size = 4
 charset = utf-8
 trim_trailing_whitespace = true

+ 4 - 0
BDInfo/BDInfo.csproj

@@ -1,5 +1,9 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
+  </ItemGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
   </ItemGroup>

+ 5 - 5
BDInfo/BDROM.cs

@@ -77,7 +77,7 @@ namespace BDInfo
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             _fileSystem = fileSystem;
@@ -235,7 +235,7 @@ namespace BDInfo
                             break;
                         }
                     }
-                    else throw ex;
+                    else throw;
                 }
             }
 
@@ -273,7 +273,7 @@ namespace BDInfo
                             break;
                         }
                     }
-                    else throw ex;
+                    else throw;
                 }
             }
 
@@ -310,7 +310,7 @@ namespace BDInfo
                             break;
                         }
                     }
-                    else throw ex;
+                    else throw;
                 }
             }
 
@@ -336,7 +336,7 @@ namespace BDInfo
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             FileSystemMetadata dir = _fileSystem.GetDirectoryInfo(path);

+ 8 - 16
BDInfo/Properties/AssemblyInfo.cs

@@ -1,6 +1,5 @@
-using System.Resources;
 using System.Reflection;
-using System.Runtime.CompilerServices;
+using System.Resources;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following
@@ -9,21 +8,14 @@ using System.Runtime.InteropServices;
 [assembly: AssemblyTitle("BDInfo")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("BDInfo")]
-[assembly: AssemblyCopyright("Copyright ©  2016")]
+[assembly: AssemblyCompany("Jellyfin Project")]
+[assembly: AssemblyProduct("Jellyfin: The Free Software Media System")]
+[assembly: AssemblyCopyright("Copyright ©  2016 CinemaSquid. Copyright ©  2019 Jellyfin Contributors. Code released under the GNU General Public License Version 2")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 [assembly: NeutralResourcesLanguage("en")]
 
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.1")]
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]

+ 4 - 0
DvdLib/DvdLib.csproj

@@ -1,5 +1,9 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
+  </ItemGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
   </ItemGroup>

+ 1 - 1
DvdLib/Ifo/Dvd.cs

@@ -81,7 +81,7 @@ namespace DvdLib.Ifo
 
         private void ReadVTS(ushort vtsNum, List<FileSystemMetadata> allFiles)
         {
-            var filename = String.Format("VTS_{0:00}_0.IFO", vtsNum);
+            var filename = string.Format("VTS_{0:00}_0.IFO", vtsNum);
 
             var vtsPath = allFiles.FirstOrDefault(i => string.Equals(i.Name, filename, StringComparison.OrdinalIgnoreCase)) ??
                 allFiles.FirstOrDefault(i => string.Equals(i.Name, Path.ChangeExtension(filename, ".bup"), StringComparison.OrdinalIgnoreCase));

+ 2 - 2
DvdLib/Ifo/DvdTime.cs

@@ -1,4 +1,4 @@
-using System;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
@@ -20,7 +20,7 @@ namespace DvdLib.Ifo
             else if ((data[3] & 0x40) != 0) FrameRate = 25;
         }
 
-        private byte GetBCDValue(byte data)
+        private static byte GetBCDValue(byte data)
         {
             return (byte)((((data & 0xF0) >> 4) * 10) + (data & 0x0F));
         }

+ 8 - 16
DvdLib/Properties/AssemblyInfo.cs

@@ -1,6 +1,5 @@
-using System.Resources;
 using System.Reflection;
-using System.Runtime.CompilerServices;
+using System.Resources;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following
@@ -9,21 +8,14 @@ using System.Runtime.InteropServices;
 [assembly: AssemblyTitle("DvdLib")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("DvdLib")]
-[assembly: AssemblyCopyright("Copyright ©  2016")]
+[assembly: AssemblyCompany("Jellyfin Project")]
+[assembly: AssemblyProduct("Jellyfin: The Free Software Media System")]
+[assembly: AssemblyCopyright("Copyright ©  2019 Jellyfin Contributors. Code released under the GNU General Public License Version 2")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 [assembly: NeutralResourcesLanguage("en")]
 
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.1")]
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]

+ 2 - 2
Emby.Dlna/ConnectionManager/ConnectionManagerXmlBuilder.cs

@@ -1,4 +1,4 @@
-using Emby.Dlna.Common;
+using Emby.Dlna.Common;
 using Emby.Dlna.Service;
 using System.Collections.Generic;
 
@@ -11,7 +11,7 @@ namespace Emby.Dlna.ConnectionManager
             return new ServiceXmlBuilder().GetXml(new ServiceActionListBuilder().GetActions(), GetStateVariables());
         }
 
-        private IEnumerable<StateVariable> GetStateVariables()
+        private static IEnumerable<StateVariable> GetStateVariables()
         {
             var list = new List<StateVariable>();
 

+ 3 - 3
Emby.Dlna/ConnectionManager/ServiceActionListBuilder.cs

@@ -1,4 +1,4 @@
-using Emby.Dlna.Common;
+using Emby.Dlna.Common;
 using System.Collections.Generic;
 
 namespace Emby.Dlna.ConnectionManager
@@ -19,7 +19,7 @@ namespace Emby.Dlna.ConnectionManager
             return list;
         }
 
-        private ServiceAction PrepareForConnection()
+        private static ServiceAction PrepareForConnection()
         {
             var action = new ServiceAction
             {
@@ -78,7 +78,7 @@ namespace Emby.Dlna.ConnectionManager
             return action;
         }
 
-        private ServiceAction GetCurrentConnectionInfo()
+        private static ServiceAction GetCurrentConnectionInfo()
         {
             var action = new ServiceAction
             {

+ 2 - 2
Emby.Dlna/ContentDirectory/ContentDirectoryXmlBuilder.cs

@@ -1,4 +1,4 @@
-using Emby.Dlna.Common;
+using Emby.Dlna.Common;
 using Emby.Dlna.Service;
 using System.Collections.Generic;
 
@@ -12,7 +12,7 @@ namespace Emby.Dlna.ContentDirectory
                 GetStateVariables());
         }
 
-        private IEnumerable<StateVariable> GetStateVariables()
+        private static IEnumerable<StateVariable> GetStateVariables()
         {
             var list = new List<StateVariable>();
 

+ 6 - 6
Emby.Dlna/ContentDirectory/ServiceActionListBuilder.cs

@@ -1,4 +1,4 @@
-using Emby.Dlna.Common;
+using Emby.Dlna.Common;
 using System.Collections.Generic;
 
 namespace Emby.Dlna.ContentDirectory
@@ -20,7 +20,7 @@ namespace Emby.Dlna.ContentDirectory
             };
         }
 
-        private ServiceAction GetGetSystemUpdateIDAction()
+        private static ServiceAction GetGetSystemUpdateIDAction()
         {
             var action = new ServiceAction
             {
@@ -37,7 +37,7 @@ namespace Emby.Dlna.ContentDirectory
             return action;
         }
 
-        private ServiceAction GetSearchCapabilitiesAction()
+        private static ServiceAction GetSearchCapabilitiesAction()
         {
             var action = new ServiceAction
             {
@@ -54,7 +54,7 @@ namespace Emby.Dlna.ContentDirectory
             return action;
         }
 
-        private ServiceAction GetSortCapabilitiesAction()
+        private static ServiceAction GetSortCapabilitiesAction()
         {
             var action = new ServiceAction
             {
@@ -71,7 +71,7 @@ namespace Emby.Dlna.ContentDirectory
             return action;
         }
 
-        private ServiceAction GetX_GetFeatureListAction()
+        private static ServiceAction GetX_GetFeatureListAction()
         {
             var action = new ServiceAction
             {
@@ -88,7 +88,7 @@ namespace Emby.Dlna.ContentDirectory
             return action;
         }
 
-        private ServiceAction GetSearchAction()
+        private static ServiceAction GetSearchAction()
         {
             var action = new ServiceAction
             {

+ 3 - 3
Emby.Dlna/Didl/DidlBuilder.cs

@@ -375,7 +375,7 @@ namespace Emby.Dlna.Didl
                ? GetMimeType(filename)
                : mediaProfile.MimeType;
 
-            writer.WriteAttributeString("protocolInfo", String.Format(
+            writer.WriteAttributeString("protocolInfo", string.Format(
                 "http-get:*:{0}:{1}",
                 mimeType,
                 contentFeatures
@@ -573,7 +573,7 @@ namespace Emby.Dlna.Didl
                 streamInfo.RunTimeTicks ?? 0,
                 streamInfo.TranscodeSeekInfo);
 
-            writer.WriteAttributeString("protocolInfo", String.Format(
+            writer.WriteAttributeString("protocolInfo", string.Format(
                 "http-get:*:{0}:{1}",
                 mimeType,
                 contentFeatures
@@ -1017,7 +1017,7 @@ namespace Emby.Dlna.Didl
             var contentFeatures = new ContentFeatureBuilder(_profile)
                 .BuildImageHeader(format, width, height, imageInfo.IsDirectStream, org_Pn);
 
-            writer.WriteAttributeString("protocolInfo", String.Format(
+            writer.WriteAttributeString("protocolInfo", string.Format(
                 "http-get:*:{0}:{1}",
                 GetMimeType("file." + format),
                 contentFeatures

+ 3 - 3
Emby.Dlna/DlnaManager.cs

@@ -95,7 +95,7 @@ namespace Emby.Dlna
         {
             if (deviceInfo == null)
             {
-                throw new ArgumentNullException("deviceInfo");
+                throw new ArgumentNullException(nameof(deviceInfo));
             }
 
             var profile = GetProfiles()
@@ -207,7 +207,7 @@ namespace Emby.Dlna
         {
             if (headers == null)
             {
-                throw new ArgumentNullException("headers");
+                throw new ArgumentNullException(nameof(headers));
             }
 
             // Convert to case insensitive
@@ -335,7 +335,7 @@ namespace Emby.Dlna
         {
             if (string.IsNullOrEmpty(id))
             {
-                throw new ArgumentNullException("id");
+                throw new ArgumentNullException(nameof(id));
             }
 
             var info = GetProfileInfosInternal().First(i => string.Equals(i.Info.Id, id, StringComparison.OrdinalIgnoreCase));

+ 4 - 0
Emby.Dlna/Emby.Dlna.csproj

@@ -1,5 +1,9 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
+  </ItemGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
     <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />

+ 3 - 3
Emby.Dlna/MediaReceiverRegistrar/ControlHandler.cs

@@ -1,4 +1,4 @@
-using MediaBrowser.Common.Extensions;
+using MediaBrowser.Common.Extensions;
 using MediaBrowser.Controller.Configuration;
 using Emby.Dlna.Server;
 using Emby.Dlna.Service;
@@ -21,7 +21,7 @@ namespace Emby.Dlna.MediaReceiverRegistrar
             throw new ResourceNotFoundException("Unexpected control request name: " + methodName);
         }
 
-        private IEnumerable<KeyValuePair<string, string>> HandleIsAuthorized()
+        private static IEnumerable<KeyValuePair<string, string>> HandleIsAuthorized()
         {
             return new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
             {
@@ -29,7 +29,7 @@ namespace Emby.Dlna.MediaReceiverRegistrar
             };
         }
 
-        private IEnumerable<KeyValuePair<string, string>> HandleIsValidated()
+        private static IEnumerable<KeyValuePair<string, string>> HandleIsValidated()
         {
             return new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
             {

+ 2 - 2
Emby.Dlna/MediaReceiverRegistrar/MediaReceiverRegistrarXmlBuilder.cs

@@ -1,4 +1,4 @@
-using Emby.Dlna.Common;
+using Emby.Dlna.Common;
 using Emby.Dlna.Service;
 using System.Collections.Generic;
 
@@ -12,7 +12,7 @@ namespace Emby.Dlna.MediaReceiverRegistrar
                 GetStateVariables());
         }
 
-        private IEnumerable<StateVariable> GetStateVariables()
+        private static IEnumerable<StateVariable> GetStateVariables()
         {
             var list = new List<StateVariable>();
 

+ 5 - 5
Emby.Dlna/MediaReceiverRegistrar/ServiceActionListBuilder.cs

@@ -1,4 +1,4 @@
-using Emby.Dlna.Common;
+using Emby.Dlna.Common;
 using System.Collections.Generic;
 
 namespace Emby.Dlna.MediaReceiverRegistrar
@@ -19,7 +19,7 @@ namespace Emby.Dlna.MediaReceiverRegistrar
             };
         }
 
-        private ServiceAction GetIsValidated()
+        private static ServiceAction GetIsValidated()
         {
             var action = new ServiceAction
             {
@@ -41,7 +41,7 @@ namespace Emby.Dlna.MediaReceiverRegistrar
             return action;
         }
 
-        private ServiceAction GetIsAuthorized()
+        private static ServiceAction GetIsAuthorized()
         {
             var action = new ServiceAction
             {
@@ -63,7 +63,7 @@ namespace Emby.Dlna.MediaReceiverRegistrar
             return action;
         }
 
-        private ServiceAction GetRegisterDevice()
+        private static ServiceAction GetRegisterDevice()
         {
             var action = new ServiceAction
             {
@@ -85,7 +85,7 @@ namespace Emby.Dlna.MediaReceiverRegistrar
             return action;
         }
 
-        private ServiceAction GetGetValidationSucceededUpdateID()
+        private static ServiceAction GetGetValidationSucceededUpdateID()
         {
             var action = new ServiceAction
             {

+ 7 - 7
Emby.Dlna/PlayTo/Device.cs

@@ -311,7 +311,7 @@ namespace Emby.Dlna.PlayTo
                 throw new InvalidOperationException("Unable to find service");
             }
 
-            await new SsdpHttpClient(_httpClient, _config).SendCommandAsync(Properties.BaseUrl, service, command.Name, avCommands.BuildPost(command, service.ServiceType, String.Format("{0:hh}:{0:mm}:{0:ss}", value), "REL_TIME"))
+            await new SsdpHttpClient(_httpClient, _config).SendCommandAsync(Properties.BaseUrl, service, command.Name, avCommands.BuildPost(command, service.ServiceType, string.Format("{0:hh}:{0:mm}:{0:ss}", value), "REL_TIME"))
                 .ConfigureAwait(false);
 
             RestartTimer(true);
@@ -364,7 +364,7 @@ namespace Emby.Dlna.PlayTo
         private string CreateDidlMeta(string value)
         {
             if (string.IsNullOrEmpty(value))
-                return String.Empty;
+                return string.Empty;
 
             return DescriptionXmlBuilder.Escape(value);
         }
@@ -783,7 +783,7 @@ namespace Emby.Dlna.PlayTo
         {
             if (container == null)
             {
-                throw new ArgumentNullException("container");
+                throw new ArgumentNullException(nameof(container));
             }
 
             var url = container.GetValue(uPnpNamespaces.Res);
@@ -810,7 +810,7 @@ namespace Emby.Dlna.PlayTo
         {
             if (container == null)
             {
-                throw new ArgumentNullException("container");
+                throw new ArgumentNullException(nameof(container));
             }
 
             var resElement = container.Element(uPnpNamespaces.Res);
@@ -979,7 +979,7 @@ namespace Emby.Dlna.PlayTo
             if (modelDescription != null)
                 deviceProperties.ModelDescription = modelDescription.Value;
 
-            deviceProperties.BaseUrl = String.Format("http://{0}:{1}", url.Host, url.Port);
+            deviceProperties.BaseUrl = string.Format("http://{0}:{1}", url.Host, url.Port);
 
             var icon = document.Descendants(uPnpNamespaces.ud.GetName("icon")).FirstOrDefault();
 
@@ -1021,7 +1021,7 @@ namespace Emby.Dlna.PlayTo
         {
             if (element == null)
             {
-                throw new ArgumentNullException("element");
+                throw new ArgumentNullException(nameof(element));
             }
 
             var mimeType = element.GetDescendantValue(uPnpNamespaces.ud.GetName("mimetype"));
@@ -1173,7 +1173,7 @@ namespace Emby.Dlna.PlayTo
 
         public override string ToString()
         {
-            return String.Format("{0} - {1}", Properties.Name, Properties.BaseUrl);
+            return string.Format("{0} - {1}", Properties.Name, Properties.BaseUrl);
         }
     }
 }

+ 4 - 4
Emby.Dlna/PlayTo/PlayToController.cs

@@ -114,10 +114,10 @@ namespace Emby.Dlna.PlayTo
             info.Headers.TryGetValue("NTS", out nts);
 
             string usn;
-            if (!info.Headers.TryGetValue("USN", out usn)) usn = String.Empty;
+            if (!info.Headers.TryGetValue("USN", out usn)) usn = string.Empty;
 
             string nt;
-            if (!info.Headers.TryGetValue("NT", out nt)) nt = String.Empty;
+            if (!info.Headers.TryGetValue("NT", out nt)) nt = string.Empty;
 
             if (usn.IndexOf(_device.Properties.UUID, StringComparison.OrdinalIgnoreCase) != -1 &&
                 !_disposed)
@@ -829,7 +829,7 @@ namespace Emby.Dlna.PlayTo
             {
                 if (string.IsNullOrEmpty(url))
                 {
-                    throw new ArgumentNullException("url");
+                    throw new ArgumentNullException(nameof(url));
                 }
 
                 var parts = url.Split('/');
@@ -855,7 +855,7 @@ namespace Emby.Dlna.PlayTo
             {
                 if (string.IsNullOrEmpty(url))
                 {
-                    throw new ArgumentNullException("url");
+                    throw new ArgumentNullException(nameof(url));
                 }
 
                 var request = new StreamParams

+ 2 - 2
Emby.Dlna/PlayTo/PlaylistItemFactory.cs

@@ -1,4 +1,4 @@
-using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Entities;
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Session;
 using System;
@@ -49,7 +49,7 @@ namespace Emby.Dlna.PlayTo
             return playlistItem;
         }
 
-        private bool IsSupported(DirectPlayProfile profile, Photo item)
+        private static bool IsSupported(DirectPlayProfile profile, Photo item)
         {
             var mediaPath = item.Path;
 

+ 2 - 2
Emby.Dlna/PlayTo/SsdpHttpClient.cs

@@ -1,4 +1,4 @@
-using MediaBrowser.Common.Net;
+using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Configuration;
 using Emby.Dlna.Common;
 using System;
@@ -47,7 +47,7 @@ namespace Emby.Dlna.PlayTo
             }
         }
 
-        private string NormalizeServiceUrl(string baseUrl, string serviceUrl)
+        private static string NormalizeServiceUrl(string baseUrl, string serviceUrl)
         {
             // If it's already a complete url, don't stick anything onto the front of it
             if (serviceUrl.StartsWith("http", StringComparison.OrdinalIgnoreCase))

+ 1 - 1
Emby.Dlna/PlayTo/TransportCommands.cs

@@ -80,7 +80,7 @@ namespace Emby.Dlna.PlayTo
         {
             if (container == null)
             {
-                throw new ArgumentNullException("container");
+                throw new ArgumentNullException(nameof(container));
             }
 
             return new Argument

+ 1 - 1
Emby.Dlna/PlayTo/UpnpContainer.cs

@@ -10,7 +10,7 @@ namespace Emby.Dlna.PlayTo
         {
             if (container == null)
             {
-                throw new ArgumentNullException("container");
+                throw new ArgumentNullException(nameof(container));
             }
 
             return new uBaseObject

+ 1 - 1
Emby.Dlna/PlayTo/uBaseObject.cs

@@ -26,7 +26,7 @@ namespace Emby.Dlna.PlayTo
         {
             if (obj == null)
             {
-                throw new ArgumentNullException("obj");
+                throw new ArgumentNullException(nameof(obj));
             }
 
             return string.Equals(Id, obj.Id);

+ 1 - 1
Emby.Dlna/PlayTo/uParser.cs

@@ -26,7 +26,7 @@ namespace Emby.Dlna.PlayTo
             if (item == null)
                 return list;
 
-            var uPnpResponse = XElement.Parse((String)item);
+            var uPnpResponse = XElement.Parse((string)item);
 
             var uObjects = from container in uPnpResponse.Elements(uPnpNamespaces.containers)
                            select new uParserObject { Element = container };

+ 5 - 8
Emby.Dlna/Properties/AssemblyInfo.cs

@@ -1,17 +1,16 @@
-using System.Resources;
+using System.Resources;
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
-[assembly: AssemblyTitle("Emby.Dlna2")]
+[assembly: AssemblyTitle("Emby.Dlna")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Emby.Dlna2")]
-[assembly: AssemblyCopyright("Copyright ©  2016")]
+[assembly: AssemblyCompany("Jellyfin Project")]
+[assembly: AssemblyProduct("Jellyfin: The Free Software Media System")]
+[assembly: AssemblyCopyright("Copyright ©  2019 Jellyfin Contributors. Code released under the GNU General Public License Version 2")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 [assembly: NeutralResourcesLanguage("en")]
@@ -26,5 +25,3 @@ using System.Runtime.InteropServices;
 // You can specify all the values or you can default the Build and Revision Numbers
 // by using the '*' as shown below:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]

+ 4 - 7
Emby.Dlna/Server/DescriptionXmlBuilder.cs

@@ -1,4 +1,4 @@
-using Emby.Dlna.Common;
+using Emby.Dlna.Common;
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Extensions;
 using System;
@@ -24,12 +24,12 @@ namespace Emby.Dlna.Server
         {
             if (string.IsNullOrEmpty(serverUdn))
             {
-                throw new ArgumentNullException("serverUdn");
+                throw new ArgumentNullException(nameof(serverUdn));
             }
 
             if (string.IsNullOrEmpty(serverAddress))
             {
-                throw new ArgumentNullException("serverAddress");
+                throw new ArgumentNullException(nameof(serverAddress));
             }
 
             _profile = profile;
@@ -39,10 +39,7 @@ namespace Emby.Dlna.Server
             _serverId = serverId;
         }
 
-        private bool EnableAbsoluteUrls
-        {
-            get { return false; }
-        }
+        private static bool EnableAbsoluteUrls => false;
 
         public string GetXml()
         {

+ 3 - 3
Emby.Dlna/Service/ServiceXmlBuilder.cs

@@ -1,4 +1,4 @@
-using Emby.Dlna.Common;
+using Emby.Dlna.Common;
 using System.Collections.Generic;
 using System.Security;
 using System.Text;
@@ -28,7 +28,7 @@ namespace Emby.Dlna.Service
             return builder.ToString();
         }
 
-        private void AppendActionList(StringBuilder builder, IEnumerable<ServiceAction> actions)
+        private static void AppendActionList(StringBuilder builder, IEnumerable<ServiceAction> actions)
         {
             builder.Append("<actionList>");
 
@@ -59,7 +59,7 @@ namespace Emby.Dlna.Service
             builder.Append("</actionList>");
         }
 
-        private void AppendServiceStateTable(StringBuilder builder, IEnumerable<StateVariable> stateVariables)
+        private static void AppendServiceStateTable(StringBuilder builder, IEnumerable<StateVariable> stateVariables)
         {
             builder.Append("<serviceStateTable>");
 

+ 8 - 12
Emby.Drawing.Skia/Properties/AssemblyInfo.cs

@@ -1,6 +1,5 @@
-using System.Resources;
 using System.Reflection;
-using System.Runtime.CompilerServices;
+using System.Resources;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following
@@ -9,17 +8,14 @@ using System.Runtime.InteropServices;
 [assembly: AssemblyTitle("Emby.Drawing.Skia")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Emby.Drawing.Skia")]
-[assembly: AssemblyCopyright("Copyright ©  2017")]
+[assembly: AssemblyCompany("Jellyfin Project")]
+[assembly: AssemblyProduct("Jellyfin: The Free Software Media System")]
+[assembly: AssemblyCopyright("Copyright ©  2019 Jellyfin Contributors. Code released under the GNU General Public License Version 2")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 [assembly: NeutralResourcesLanguage("en")]
 
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version
-//      Build Number
-//      Revision
-//
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components.  If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]

+ 5 - 5
Emby.Drawing.Skia/SkiaEncoder.cs

@@ -197,7 +197,7 @@ namespace Emby.Drawing.Skia
 
         private static bool HasDiacritics(string text)
         {
-            return !String.Equals(text, text.RemoveDiacritics(), StringComparison.Ordinal);
+            return !string.Equals(text, text.RemoveDiacritics(), StringComparison.Ordinal);
         }
 
         private static bool RequiresSpecialCharacterHack(string path)
@@ -509,11 +509,11 @@ namespace Emby.Drawing.Skia
         {
             if (string.IsNullOrWhiteSpace(inputPath))
             {
-                throw new ArgumentNullException("inputPath");
+                throw new ArgumentNullException(nameof(inputPath));
             }
             if (string.IsNullOrWhiteSpace(inputPath))
             {
-                throw new ArgumentNullException("outputPath");
+                throw new ArgumentNullException(nameof(outputPath));
             }
 
             var skiaOutputFormat = GetImageFormat(selectedOutputFormat);
@@ -594,12 +594,12 @@ namespace Emby.Drawing.Skia
                         // If foreground layer present then draw
                         if (hasForegroundColor)
                         {
-                            if (!Double.TryParse(options.ForegroundLayer, out double opacity))
+                            if (!double.TryParse(options.ForegroundLayer, out double opacity))
                             {
                                 opacity = .4;
                             }
 
-                            canvas.DrawColor(new SKColor(0, 0, 0, (Byte)((1 - opacity) * 0xFF)), SKBlendMode.SrcOver);
+                            canvas.DrawColor(new SKColor(0, 0, 0, (byte)((1 - opacity) * 0xFF)), SKBlendMode.SrcOver);
                         }
 
                         if (hasIndicator)

+ 6 - 1
Emby.Drawing.Skia/StripCollageBuilder.cs

@@ -1,4 +1,4 @@
-using SkiaSharp;
+using SkiaSharp;
 using MediaBrowser.Common.Configuration;
 using System;
 using System.IO;
@@ -20,6 +20,11 @@ namespace Emby.Drawing.Skia
 
         public static SKEncodedImageFormat GetEncodedFormat(string outputPath)
         {
+            if (outputPath == null)
+            {
+                throw new ArgumentNullException(nameof(outputPath));
+            }
+
             var ext = Path.GetExtension(outputPath).ToLower();
 
             if (ext == ".jpg" || ext == ".jpeg")

+ 1 - 1
Emby.Drawing/Common/ImageHeader.cs

@@ -94,7 +94,7 @@ namespace Emby.Drawing.Common
                 }
             }
 
-            throw new ArgumentException(ErrorMessage, "binaryReader");
+            throw new ArgumentException(ErrorMessage, nameof(binaryReader));
         }
 
         /// <summary>

+ 10 - 10
Emby.Drawing/ImageProcessor.cs

@@ -80,7 +80,7 @@ namespace Emby.Drawing
             {
                 if (value == null)
                 {
-                    throw new ArgumentNullException("value");
+                    throw new ArgumentNullException(nameof(value));
                 }
 
                 _imageEncoder = value;
@@ -179,7 +179,7 @@ namespace Emby.Drawing
         {
             if (options == null)
             {
-                throw new ArgumentNullException("options");
+                throw new ArgumentNullException(nameof(options));
             }
 
             var originalImage = options.Image;
@@ -491,7 +491,7 @@ namespace Emby.Drawing
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             try
@@ -691,12 +691,12 @@ namespace Emby.Drawing
         {
             if (string.IsNullOrEmpty(originalImagePath))
             {
-                throw new ArgumentNullException("originalImagePath");
+                throw new ArgumentNullException(nameof(originalImagePath));
             }
 
             if (item == null)
             {
-                throw new ArgumentNullException("item");
+                throw new ArgumentNullException(nameof(item));
             }
 
             var treatmentRequiresTransparency = false;
@@ -779,16 +779,16 @@ namespace Emby.Drawing
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
             if (string.IsNullOrEmpty(uniqueName))
             {
-                throw new ArgumentNullException("uniqueName");
+                throw new ArgumentNullException(nameof(uniqueName));
             }
 
             if (string.IsNullOrEmpty(fileExtension))
             {
-                throw new ArgumentNullException("fileExtension");
+                throw new ArgumentNullException(nameof(fileExtension));
             }
 
             var filename = uniqueName.GetMD5() + fileExtension;
@@ -811,11 +811,11 @@ namespace Emby.Drawing
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
             if (string.IsNullOrEmpty(filename))
             {
-                throw new ArgumentNullException("filename");
+                throw new ArgumentNullException(nameof(filename));
             }
 
             var prefix = filename.Substring(0, 1);

+ 5 - 5
Emby.Drawing/Properties/AssemblyInfo.cs

@@ -1,4 +1,4 @@
-using System.Reflection;
+using System.Reflection;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following
@@ -7,9 +7,9 @@ using System.Runtime.InteropServices;
 [assembly: AssemblyTitle("Emby.Drawing")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Emby.Drawing")]
-[assembly: AssemblyCopyright("Copyright ©  2015")]
+[assembly: AssemblyCompany("Jellyfin Project")]
+[assembly: AssemblyProduct("Jellyfin: The Free Software Media System")]
+[assembly: AssemblyCopyright("Copyright ©  2019 Jellyfin Contributors. Code released under the GNU General Public License Version 2")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 
@@ -27,4 +27,4 @@ using System.Runtime.InteropServices;
 //      Minor Version
 //      Build Number
 //      Revision
-//
+//

+ 4 - 0
Emby.IsoMounting/IsoMounter/IsoMounter.csproj

@@ -1,5 +1,9 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
+  <ItemGroup>
+    <Compile Include="..\..\SharedVersion.cs" Link="SharedVersion.cs" />
+  </ItemGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
     <ProjectReference Include="..\..\MediaBrowser.Common\MediaBrowser.Common.csproj" />

+ 3 - 3
Emby.IsoMounting/IsoMounter/LinuxIsoManager.cs

@@ -87,7 +87,7 @@ namespace IsoMounter
                 UmountCommand
             );
 
-            if (!String.IsNullOrEmpty(SudoCommand) && !String.IsNullOrEmpty(MountCommand) && !String.IsNullOrEmpty(UmountCommand)) {
+            if (!string.IsNullOrEmpty(SudoCommand) && !string.IsNullOrEmpty(MountCommand) && !string.IsNullOrEmpty(UmountCommand)) {
                 ExecutablesAvailable = true;
             } else {
                 ExecutablesAvailable = false;
@@ -152,7 +152,7 @@ namespace IsoMounter
                 return Task.FromResult<IIsoMount>(mountedISO);
             }
             else {
-                throw new IOException(String.Format(
+                throw new IOException(string.Format(
                     "An error occurred trying to mount image [$0].",
                     isoPath
                 ));
@@ -217,7 +217,7 @@ namespace IsoMounter
             {
                 string path = test.Trim();
 
-                if (!String.IsNullOrEmpty(path) && FileSystem.FileExists(path = Path.Combine(path, name))) {
+                if (!string.IsNullOrEmpty(path) && FileSystem.FileExists(path = Path.Combine(path, name))) {
                     return FileSystem.GetFullPath(path);
                 }
             }

+ 21 - 0
Emby.IsoMounting/IsoMounter/Properties/AssemblyInfo.cs

@@ -0,0 +1,21 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("IsoMounter")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Jellyfin Project")]
+[assembly: AssemblyProduct("Jellyfin: The Free Software Media System")]
+[assembly: AssemblyCopyright("Copyright ©  2019 Jellyfin Contributors. Code released under the GNU General Public License Version 2")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: NeutralResourcesLanguage("en")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components.  If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]

+ 1 - 1
Emby.Naming/AudioBook/AudioBookResolver.cs

@@ -30,7 +30,7 @@ namespace Emby.Naming.AudioBook
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
             if (IsDirectory)
                 return null;

+ 4 - 0
Emby.Naming/Emby.Naming.csproj

@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
     <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
   </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
+  </ItemGroup>
   
   <ItemGroup>
     <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />

+ 21 - 0
Emby.Naming/Properties/AssemblyInfo.cs

@@ -0,0 +1,21 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Emby.Naming")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Jellyfin Project")]
+[assembly: AssemblyProduct("Jellyfin: The Free Software Media System")]
+[assembly: AssemblyCopyright("Copyright ©  2019 Jellyfin Contributors. Code released under the GNU General Public License Version 2")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: NeutralResourcesLanguage("en")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components.  If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]

+ 2 - 2
Emby.Naming/Subtitles/SubtitleParser.cs

@@ -18,7 +18,7 @@ namespace Emby.Naming.Subtitles
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             var extension = Path.GetExtension(path);
@@ -52,7 +52,7 @@ namespace Emby.Naming.Subtitles
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             // Note: the tags need be be surrounded be either a space ( ), hyphen -, dot . or underscore _.

+ 2 - 2
Emby.Naming/TV/EpisodePathParser.cs

@@ -1,4 +1,4 @@
-using Emby.Naming.Common;
+using Emby.Naming.Common;
 using System;
 using System.Collections.Generic;
 using System.Globalization;
@@ -74,7 +74,7 @@ namespace Emby.Naming.TV
             return result ?? new EpisodePathParserResult();
         }
 
-        private EpisodePathParserResult Parse(string name, EpisodeExpression expression)
+        private static EpisodePathParserResult Parse(string name, EpisodeExpression expression)
         {
             var result = new EpisodePathParserResult();
 

+ 1 - 1
Emby.Naming/TV/EpisodeResolver.cs

@@ -19,7 +19,7 @@ namespace Emby.Naming.TV
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             var isStub = false;

+ 2 - 2
Emby.Naming/Video/CleanDateTimeParser.cs

@@ -1,4 +1,4 @@
-using System;
+using System;
 using Emby.Naming.Common;
 using System.Globalization;
 using System.IO;
@@ -63,7 +63,7 @@ namespace Emby.Naming.Video
                 result;
         }
 
-        private CleanDateTimeResult Clean(string name, Regex expression)
+        private static CleanDateTimeResult Clean(string name, Regex expression)
         {
             var result = new CleanDateTimeResult();
 

+ 2 - 2
Emby.Naming/Video/CleanStringParser.cs

@@ -1,4 +1,4 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
 using System.Text.RegularExpressions;
 
 namespace Emby.Naming.Video
@@ -30,7 +30,7 @@ namespace Emby.Naming.Video
             };
         }
 
-        private CleanStringResult Clean(string name, Regex expression)
+        private static CleanStringResult Clean(string name, Regex expression)
         {
             var result = new CleanStringResult();
 

+ 1 - 1
Emby.Naming/Video/FlagParser.cs

@@ -22,7 +22,7 @@ namespace Emby.Naming.Video
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             // Note: the tags need be be surrounded be either a space ( ), hyphen -, dot . or underscore _.

+ 2 - 2
Emby.Naming/Video/Format3DParser.cs

@@ -1,4 +1,4 @@
-using Emby.Naming.Common;
+using Emby.Naming.Common;
 using System;
 using System.Linq;
 
@@ -36,7 +36,7 @@ namespace Emby.Naming.Video
             return new Format3DResult();
         }
 
-        private Format3DResult Parse(string[] videoFlags, Format3DRule rule)
+        private static Format3DResult Parse(string[] videoFlags, Format3DRule rule)
         {
             var result = new Format3DResult();
 

+ 2 - 2
Emby.Naming/Video/VideoListResolver.cs

@@ -1,4 +1,4 @@
-using Emby.Naming.Common;
+using Emby.Naming.Common;
 using System;
 using System.Collections.Generic;
 using System.IO;
@@ -236,7 +236,7 @@ namespace Emby.Naming.Video
             if (testFilename.StartsWith(folderName, StringComparison.OrdinalIgnoreCase))
             {
                 testFilename = testFilename.Substring(folderName.Length).Trim();
-                return testFilename.StartsWith("-", StringComparison.OrdinalIgnoreCase)||Regex.Replace(testFilename, @"\[([^]]*)\]", "").Trim() == String.Empty;
+                return testFilename.StartsWith("-", StringComparison.OrdinalIgnoreCase) || Regex.Replace(testFilename, @"\[([^]]*)\]", "").Trim() == string.Empty;
             }
 
             return false;

+ 1 - 1
Emby.Naming/Video/VideoResolver.cs

@@ -45,7 +45,7 @@ namespace Emby.Naming.Video
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             var isStub = false;

+ 4 - 0
Emby.Notifications/Emby.Notifications.csproj

@@ -5,6 +5,10 @@
     <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
   </PropertyGroup>
 
+  <ItemGroup>
+    <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
+  </ItemGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
     <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />

+ 6 - 21
Emby.Notifications/Properties/AssemblyInfo.cs

@@ -1,5 +1,5 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
+using System.Reflection;
+using System.Resources;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following
@@ -8,29 +8,14 @@ using System.Runtime.InteropServices;
 [assembly: AssemblyTitle("Emby.Notifications")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Emby.Notifications")]
-[assembly: AssemblyCopyright("Copyright ©  2018")]
+[assembly: AssemblyCompany("Jellyfin Project")]
+[assembly: AssemblyProduct("Jellyfin: The Free Software Media System")]
+[assembly: AssemblyCopyright("Copyright ©  2019 Jellyfin Contributors. Code released under the GNU General Public License Version 2")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
+[assembly: NeutralResourcesLanguage("en")]
 
 // Setting ComVisible to false makes the types in this assembly not visible
 // to COM components.  If you need to access a type in this assembly from
 // COM, set the ComVisible attribute to true on that type.
 [assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("4d1d313b-60bb-4e11-acf9-cda6745266ef")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]

+ 6 - 19
Emby.Photos/Properties/AssemblyInfo.cs

@@ -1,5 +1,5 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
+using System.Reflection;
+using System.Resources;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following
@@ -8,27 +8,14 @@ using System.Runtime.InteropServices;
 [assembly: AssemblyTitle("Emby.Photos")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Emby.Photos")]
-[assembly: AssemblyCopyright("Copyright ©  2016")]
+[assembly: AssemblyCompany("Jellyfin Project")]
+[assembly: AssemblyProduct("Jellyfin: The Free Software Media System")]
+[assembly: AssemblyCopyright("Copyright ©  2019 Jellyfin Contributors. Code released under the GNU General Public License Version 2")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
+[assembly: NeutralResourcesLanguage("en")]
 
 // Setting ComVisible to false makes the types in this assembly not visible
 // to COM components.  If you need to access a type in this assembly from
 // COM, set the ComVisible attribute to true on that type.
 [assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("89ab4548-770d-41fd-a891-8daff44f452c")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]

+ 4 - 4
Emby.Server.Implementations/Activity/ActivityLogEntryPoint.cs

@@ -202,7 +202,7 @@ namespace Emby.Server.Implementations.Activity
             return name;
         }
 
-        private string GetPlaybackNotificationType(string mediaType)
+        private static string GetPlaybackNotificationType(string mediaType)
         {
             if (string.Equals(mediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase))
             {
@@ -220,7 +220,7 @@ namespace Emby.Server.Implementations.Activity
             return null;
         }
 
-        private string GetPlaybackStoppedNotificationType(string mediaType)
+        private static string GetPlaybackStoppedNotificationType(string mediaType)
         {
             if (string.Equals(mediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase))
             {
@@ -577,8 +577,8 @@ namespace Emby.Server.Implementations.Activity
         /// <param name="description">The name of this item (singular form)</param>
         private static string CreateValueString(int value, string description)
         {
-            return String.Format("{0:#,##0} {1}",
-                value, value == 1 ? description : String.Format("{0}s", description));
+            return string.Format("{0:#,##0} {1}",
+                value, value == 1 ? description : string.Format("{0}s", description));
         }
     }
 }

+ 4 - 4
Emby.Server.Implementations/Activity/ActivityRepository.cs

@@ -1,4 +1,4 @@
-using System;
+using System;
 using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
@@ -83,7 +83,7 @@ namespace Emby.Server.Implementations.Activity
         {
             if (entry == null)
             {
-                throw new ArgumentNullException("entry");
+                throw new ArgumentNullException(nameof(entry));
             }
 
             using (WriteLock.Write())
@@ -122,7 +122,7 @@ namespace Emby.Server.Implementations.Activity
         {
             if (entry == null)
             {
-                throw new ArgumentNullException("entry");
+                throw new ArgumentNullException(nameof(entry));
             }
 
             using (WriteLock.Write())
@@ -251,7 +251,7 @@ namespace Emby.Server.Implementations.Activity
             }
         }
 
-        private ActivityLogEntry GetEntry(IReadOnlyList<IResultSetValue> reader)
+        private static ActivityLogEntry GetEntry(IReadOnlyList<IResultSetValue> reader)
         {
             var index = 0;
 

+ 10 - 61
Emby.Server.Implementations/AppBase/BaseApplicationPaths.cs

@@ -55,61 +55,31 @@ namespace Emby.Server.Implementations.AppBase
         }
 
         private const string _virtualDataPath = "%AppDataPath%";
-        public string VirtualDataPath
-        {
-            get
-            {
-                return _virtualDataPath;
-            }
-        }
+        public string VirtualDataPath => _virtualDataPath;
 
         /// <summary>
         /// Gets the image cache path.
         /// </summary>
         /// <value>The image cache path.</value>
-        public string ImageCachePath
-        {
-            get
-            {
-                return Path.Combine(CachePath, "images");
-            }
-        }
+        public string ImageCachePath => 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");
-            }
-        }
+        public string PluginsPath => 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");
-            }
-        }
+        public string PluginConfigurationsPath => 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");
-            }
-        }
+        public string TempUpdatePath => Path.Combine(ProgramDataPath, "updates");
 
         /// <summary>
         /// The _log directory
@@ -133,10 +103,7 @@ namespace Emby.Server.Implementations.AppBase
 
                 return _logDirectoryPath;
             }
-            set
-            {
-                _logDirectoryPath = value;
-            }
+            set => _logDirectoryPath = value;
         }
 
         /// <summary>
@@ -161,23 +128,14 @@ namespace Emby.Server.Implementations.AppBase
 
                 return _configurationDirectoryPath;
             }
-            set
-            {
-                _configurationDirectoryPath = value;
-            }
+            set => _configurationDirectoryPath = value;
         }
 
         /// <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");
-            }
-        }
+        public string SystemConfigurationFilePath => Path.Combine(ConfigurationDirectoryPath, "system.xml");
 
         /// <summary>
         /// The _cache directory
@@ -200,22 +158,13 @@ namespace Emby.Server.Implementations.AppBase
 
                 return _cachePath;
             }
-            set
-            {
-                _cachePath = value;
-            }
+            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");
-            }
-        }
+        public string TempDirectory => Path.Combine(CachePath, "temp");
     }
 }

+ 3 - 2
Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs

@@ -1,4 +1,4 @@
-using System;
+using System;
 using System.Collections.Concurrent;
 using System.Collections.Generic;
 using System.IO;
@@ -99,6 +99,7 @@ namespace Emby.Server.Implementations.AppBase
         /// <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;
@@ -155,7 +156,7 @@ namespace Emby.Server.Implementations.AppBase
         {
             if (newConfiguration == null)
             {
-                throw new ArgumentNullException("newConfiguration");
+                throw new ArgumentNullException(nameof(newConfiguration));
             }
 
             ValidateCachePath(newConfiguration);

+ 2 - 1
Emby.Server.Implementations/AppBase/ConfigurationHelper.cs

@@ -1,4 +1,4 @@
-using System;
+using System;
 using System.IO;
 using System.Linq;
 using MediaBrowser.Model.IO;
@@ -18,6 +18,7 @@ namespace Emby.Server.Implementations.AppBase
         /// <param name="type">The type.</param>
         /// <param name="path">The path.</param>
         /// <param name="xmlSerializer">The XML serializer.</param>
+        /// <param name="fileSystem">The file system</param>
         /// <returns>System.Object.</returns>
         public static object GetXmlConfiguration(Type type, string path, IXmlSerializer xmlSerializer, IFileSystem fileSystem)
         {

+ 18 - 68
Emby.Server.Implementations/ApplicationHost.cs

@@ -1,4 +1,4 @@
-using Emby.Common.Implementations.Serialization;
+using Emby.Common.Implementations.Serialization;
 using Emby.Drawing;
 using Emby.Photos;
 using Emby.Dlna;
@@ -132,13 +132,7 @@ namespace Emby.Server.Implementations
         /// Gets or sets a value indicating whether this instance can self update.
         /// </summary>
         /// <value><c>true</c> if this instance can self update; otherwise, <c>false</c>.</value>
-        public virtual bool CanSelfUpdate
-        {
-            get
-            {
-                return false;
-            }
-        }
+        public virtual bool CanSelfUpdate => false;
 
         public virtual bool CanLaunchWebBrowser
         {
@@ -245,10 +239,7 @@ namespace Emby.Server.Implementations
             }
         }
 
-        public virtual string OperatingSystemDisplayName
-        {
-            get { return EnvironmentInfo.OperatingSystemName; }
-        }
+        public virtual string OperatingSystemDisplayName => EnvironmentInfo.OperatingSystemName;
 
         /// <summary>
         /// The container
@@ -261,10 +252,7 @@ namespace Emby.Server.Implementations
         /// Gets the server configuration manager.
         /// </summary>
         /// <value>The server configuration manager.</value>
-        public IServerConfigurationManager ServerConfigurationManager
-        {
-            get { return (IServerConfigurationManager)ConfigurationManager; }
-        }
+        public IServerConfigurationManager ServerConfigurationManager => (IServerConfigurationManager)ConfigurationManager;
 
         /// <summary>
         /// Gets the configuration manager.
@@ -453,13 +441,7 @@ namespace Emby.Server.Implementations
         /// Gets the current application version
         /// </summary>
         /// <value>The application version.</value>
-        public Version ApplicationVersion
-        {
-            get
-            {
-                return _version ?? (_version = typeof(ApplicationHost).Assembly.GetName().Version);
-            }
-        }
+        public Version ApplicationVersion => _version ?? (_version = typeof(ApplicationHost).Assembly.GetName().Version);
 
         private DeviceId _deviceId;
         public string SystemId
@@ -479,15 +461,9 @@ namespace Emby.Server.Implementations
         /// Gets the name.
         /// </summary>
         /// <value>The name.</value>
-        public string Name
-        {
-            get
-            {
-                return "Emby Server";
-            }
-        }
+        public string Name => "Emby Server";
 
-        private Tuple<Assembly, string> GetAssembly(Type type)
+        private static Tuple<Assembly, string> GetAssembly(Type type)
         {
             var assembly = type.GetTypeInfo().Assembly;
             string path = null;
@@ -513,7 +489,7 @@ namespace Emby.Server.Implementations
         /// <summary>
         /// Creates the instance safe.
         /// </summary>
-        /// <param name="type">The type.</param>
+        /// <param name="typeInfo">The type information.</param>
         /// <returns>System.Object.</returns>
         protected object CreateInstanceSafe(Tuple<Type, string> typeInfo)
         {
@@ -1004,13 +980,7 @@ namespace Emby.Server.Implementations
             return s => JsvReader.GetParseFn(propertyType)(s);
         }
 
-        public virtual string PackageRuntime
-        {
-            get
-            {
-                return "netcore";
-            }
-        }
+        public virtual string PackageRuntime => "netcore";
 
         public static void LogEnvironmentInfo(ILogger logger, IApplicationPaths appPaths, EnvironmentInfo.EnvironmentInfo environmentInfo)
         {
@@ -1049,7 +1019,7 @@ namespace Emby.Server.Implementations
             return name + "/" + ApplicationVersion;
         }
 
-        private string FormatAttribute(string str)
+        private static string FormatAttribute(string str)
         {
             var arr = str.ToCharArray();
 
@@ -1066,13 +1036,7 @@ namespace Emby.Server.Implementations
             return result;
         }
 
-        protected virtual bool SupportsDualModeSockets
-        {
-            get
-            {
-                return true;
-            }
-        }
+        protected virtual bool SupportsDualModeSockets => true;
 
         private X509Certificate GetCertificate(CertificateInfo info)
         {
@@ -1927,18 +1891,9 @@ namespace Emby.Server.Implementations
             };
         }
 
-        public bool EnableHttps
-        {
-            get
-            {
-                return SupportsHttps && ServerConfigurationManager.Configuration.EnableHttps;
-            }
-        }
+        public bool EnableHttps => SupportsHttps && ServerConfigurationManager.Configuration.EnableHttps;
 
-        public bool SupportsHttps
-        {
-            get { return Certificate != null || ServerConfigurationManager.Configuration.IsBehindProxy; }
-        }
+        public bool SupportsHttps => Certificate != null || ServerConfigurationManager.Configuration.IsBehindProxy;
 
         public async Task<string> GetLocalApiUrl(CancellationToken cancellationToken)
         {
@@ -2132,15 +2087,10 @@ namespace Emby.Server.Implementations
             }
         }
 
-        public string FriendlyName
-        {
-            get
-            {
-                return string.IsNullOrEmpty(ServerConfigurationManager.Configuration.ServerName)
-                    ? Environment.MachineName
-                    : ServerConfigurationManager.Configuration.ServerName;
-            }
-        }
+        public string FriendlyName =>
+            string.IsNullOrEmpty(ServerConfigurationManager.Configuration.ServerName)
+                ? Environment.MachineName
+                : ServerConfigurationManager.Configuration.ServerName;
 
         public int HttpPort { get; private set; }
 
@@ -2177,7 +2127,7 @@ namespace Emby.Server.Implementations
         private bool _hasUpdateAvailable;
         public bool HasUpdateAvailable
         {
-            get { return _hasUpdateAvailable; }
+            get => _hasUpdateAvailable;
             set
             {
                 var fireEvent = value && !_hasUpdateAvailable;

+ 1 - 4
Emby.Server.Implementations/Channels/ChannelImageProvider.cs

@@ -30,10 +30,7 @@ namespace Emby.Server.Implementations.Channels
             return channel.GetChannelImage(type, cancellationToken);
         }
 
-        public string Name
-        {
-            get { return "Channel Image Provider"; }
-        }
+        public string Name => "Channel Image Provider";
 
         public bool Supports(BaseItem item)
         {

+ 9 - 14
Emby.Server.Implementations/Channels/ChannelManager.cs

@@ -1,4 +1,4 @@
-using MediaBrowser.Common.Extensions;
+using MediaBrowser.Common.Extensions;
 using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Channels;
 using MediaBrowser.Controller.Configuration;
@@ -67,13 +67,7 @@ namespace Emby.Server.Implementations.Channels
             _providerManager = providerManager;
         }
 
-        private TimeSpan CacheLength
-        {
-            get
-            {
-                return TimeSpan.FromHours(3);
-            }
-        }
+        private static TimeSpan CacheLength => TimeSpan.FromHours(3);
 
         public void AddParts(IEnumerable<IChannel> channels)
         {
@@ -269,6 +263,7 @@ namespace Emby.Server.Implementations.Channels
             {
             };
 
+            //TODO Fix The co-variant conversion (internalResult.Items) between Folder[] and BaseItem[], this can generate runtime issues.
             var returnItems = _dtoService.GetBaseItemDtos(internalResult.Items, dtoOptions, user);
 
             var result = new QueryResult<BaseItemDto>
@@ -419,7 +414,7 @@ namespace Emby.Server.Implementations.Channels
             return list;
         }
 
-        private MediaSourceInfo NormalizeMediaSource(BaseItem item, MediaSourceInfo info)
+        private static MediaSourceInfo NormalizeMediaSource(BaseItem item, MediaSourceInfo info)
         {
             info.RunTimeTicks = info.RunTimeTicks ?? item.RunTimeTicks;
 
@@ -492,7 +487,7 @@ namespace Emby.Server.Implementations.Channels
             return item;
         }
 
-        private string GetOfficialRating(ChannelParentalRating rating)
+        private static string GetOfficialRating(ChannelParentalRating rating)
         {
             switch (rating)
             {
@@ -533,7 +528,7 @@ namespace Emby.Server.Implementations.Channels
         {
             if (string.IsNullOrEmpty(id))
             {
-                throw new ArgumentNullException("id");
+                throw new ArgumentNullException(nameof(id));
             }
 
             var channel = GetChannel(id);
@@ -577,7 +572,7 @@ namespace Emby.Server.Implementations.Channels
         {
             if (string.IsNullOrEmpty(name))
             {
-                throw new ArgumentNullException("name");
+                throw new ArgumentNullException(nameof(name));
             }
             return _libraryManager.GetNewItemId("Channel " + name, typeof(Channel));
         }
@@ -891,7 +886,7 @@ namespace Emby.Server.Implementations.Channels
                 filename + ".json");
         }
 
-        private string GetIdToHash(string externalId, string channelName)
+        private static string GetIdToHash(string externalId, string channelName)
         {
             // Increment this as needed to force new downloads
             // Incorporate Name because it's being used to convert channel entity to provider
@@ -1187,7 +1182,7 @@ namespace Emby.Server.Implementations.Channels
         {
             if (channel == null)
             {
-                throw new ArgumentNullException("channel");
+                throw new ArgumentNullException(nameof(channel));
             }
 
             var result = GetAllChannels()

+ 7 - 28
Emby.Server.Implementations/Channels/RefreshChannelsScheduledTask.cs

@@ -25,35 +25,17 @@ namespace Emby.Server.Implementations.Channels
             _libraryManager = libraryManager;
         }
 
-        public string Name
-        {
-            get { return "Refresh Channels"; }
-        }
+        public string Name => "Refresh Channels";
 
-        public string Description
-        {
-            get { return "Refreshes internet channel information."; }
-        }
+        public string Description => "Refreshes internet channel information.";
 
-        public string Category
-        {
-            get { return "Internet Channels"; }
-        }
+        public string Category => "Internet Channels";
 
-        public bool IsHidden
-        {
-            get { return ((ChannelManager)_channelManager).Channels.Length == 0; }
-        }
+        public bool IsHidden => ((ChannelManager)_channelManager).Channels.Length == 0;
 
-        public bool IsEnabled
-        {
-            get { return true; }
-        }
+        public bool IsEnabled => true;
 
-        public bool IsLogged
-        {
-            get { return true; }
-        }
+        public bool IsLogged => true;
 
         public async Task Execute(CancellationToken cancellationToken, IProgress<double> progress)
         {
@@ -77,9 +59,6 @@ namespace Emby.Server.Implementations.Channels
             };
         }
 
-        public string Key
-        {
-            get { return "RefreshInternetChannels"; }
-        }
+        public string Key => "RefreshInternetChannels";
     }
 }

+ 3 - 12
Emby.Server.Implementations/Configuration/ServerConfigurationManager.cs

@@ -38,28 +38,19 @@ namespace Emby.Server.Implementations.Configuration
         /// Gets the type of the configuration.
         /// </summary>
         /// <value>The type of the configuration.</value>
-        protected override Type ConfigurationType
-        {
-            get { return typeof(ServerConfiguration); }
-        }
+        protected override Type ConfigurationType => typeof(ServerConfiguration);
 
         /// <summary>
         /// Gets the application paths.
         /// </summary>
         /// <value>The application paths.</value>
-        public IServerApplicationPaths ApplicationPaths
-        {
-            get { return (IServerApplicationPaths)CommonApplicationPaths; }
-        }
+        public IServerApplicationPaths ApplicationPaths => (IServerApplicationPaths)CommonApplicationPaths;
 
         /// <summary>
         /// Gets the configuration.
         /// </summary>
         /// <value>The configuration.</value>
-        public ServerConfiguration Configuration
-        {
-            get { return (ServerConfiguration)CommonConfiguration; }
-        }
+        public ServerConfiguration Configuration => (ServerConfiguration)CommonConfiguration;
 
         /// <summary>
         /// Called when [configuration updated].

+ 6 - 27
Emby.Server.Implementations/Data/BaseSqliteRepository.cs

@@ -24,15 +24,9 @@ namespace Emby.Server.Implementations.Data
             WriteLock = new ReaderWriterLockSlim(LockRecursionPolicy.NoRecursion);
         }
 
-        protected TransactionMode TransactionMode
-        {
-            get { return TransactionMode.Deferred; }
-        }
+        protected TransactionMode TransactionMode => TransactionMode.Deferred;
 
-        protected TransactionMode ReadTransactionMode
-        {
-            get { return TransactionMode.Deferred; }
-        }
+        protected TransactionMode ReadTransactionMode => TransactionMode.Deferred;
 
         internal static int ThreadSafeMode { get; set; }
 
@@ -58,10 +52,7 @@ namespace Emby.Server.Implementations.Data
         private string _defaultWal;
         protected ManagedConnection _connection;
 
-        protected virtual bool EnableSingleConnection
-        {
-            get { return true; }
-        }
+        protected virtual bool EnableSingleConnection => true;
 
         protected ManagedConnection CreateConnection(bool isReadOnly = false)
         {
@@ -238,21 +229,9 @@ namespace Emby.Server.Implementations.Data
             Logger.LogInformation("PRAGMA synchronous=" + db.Query("PRAGMA synchronous").SelectScalarString().First());
         }
 
-        protected virtual bool EnableTempStoreMemory
-        {
-            get
-            {
-                return false;
-            }
-        }
+        protected virtual bool EnableTempStoreMemory => false;
 
-        protected virtual int? CacheSize
-        {
-            get
-            {
-                return null;
-            }
-        }
+        protected virtual int? CacheSize => null;
 
         internal static void CheckOk(int rc)
         {
@@ -276,7 +255,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (_disposed)
             {
-                throw new ObjectDisposedException(GetType().Name + " has been disposed and cannot be accessed.");
+                throw new ObjectDisposedException(GetType().Name ,"Object has been disposed and cannot be accessed.");
             }
         }
 

+ 5 - 11
Emby.Server.Implementations/Data/SqliteDisplayPreferencesRepository.cs

@@ -32,13 +32,7 @@ namespace Emby.Server.Implementations.Data
         /// Gets the name of the repository
         /// </summary>
         /// <value>The name.</value>
-        public string Name
-        {
-            get
-            {
-                return "SQLite";
-            }
-        }
+        public string Name => "SQLite";
 
         /// <summary>
         /// The _json serializer
@@ -94,11 +88,11 @@ namespace Emby.Server.Implementations.Data
         {
             if (displayPreferences == null)
             {
-                throw new ArgumentNullException("displayPreferences");
+                throw new ArgumentNullException(nameof(displayPreferences));
             }
             if (string.IsNullOrEmpty(displayPreferences.Id))
             {
-                throw new ArgumentNullException("displayPreferences.Id");
+                throw new ArgumentNullException(nameof(displayPreferences.Id));
             }
 
             cancellationToken.ThrowIfCancellationRequested();
@@ -142,7 +136,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (displayPreferences == null)
             {
-                throw new ArgumentNullException("displayPreferences");
+                throw new ArgumentNullException(nameof(displayPreferences));
             }
 
             cancellationToken.ThrowIfCancellationRequested();
@@ -174,7 +168,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (string.IsNullOrEmpty(displayPreferencesId))
             {
-                throw new ArgumentNullException("displayPreferencesId");
+                throw new ArgumentNullException(nameof(displayPreferencesId));
             }
 
             var guidId = displayPreferencesId.GetMD5();

+ 2 - 2
Emby.Server.Implementations/Data/SqliteExtensions.cs

@@ -14,7 +14,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (queries == null)
             {
-                throw new ArgumentNullException("queries");
+                throw new ArgumentNullException(nameof(queries));
             }
 
             connection.RunInTransaction(conn =>
@@ -134,7 +134,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (obj == null)
             {
-                throw new ArgumentNullException("obj");
+                throw new ArgumentNullException(nameof(obj));
             }
 
             using (var stream = new MemoryStream())

+ 34 - 34
Emby.Server.Implementations/Data/SqliteItemRepository.cs

@@ -82,11 +82,11 @@ namespace Emby.Server.Implementations.Data
         {
             if (config == null)
             {
-                throw new ArgumentNullException("config");
+                throw new ArgumentNullException(nameof(config));
             }
             if (jsonSerializer == null)
             {
-                throw new ArgumentNullException("jsonSerializer");
+                throw new ArgumentNullException(nameof(jsonSerializer));
             }
 
             _appHost = appHost;
@@ -455,7 +455,7 @@ namespace Emby.Server.Implementations.Data
             "ColorTransfer"
         };
 
-        private string GetSaveItemCommandText()
+        private static string GetSaveItemCommandText()
         {
             var saveColumns = new List<string>
             {
@@ -558,7 +558,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (item == null)
             {
-                throw new ArgumentNullException("item");
+                throw new ArgumentNullException(nameof(item));
             }
 
             SaveItems(new List<BaseItem> { item }, cancellationToken);
@@ -568,7 +568,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (item == null)
             {
-                throw new ArgumentNullException("item");
+                throw new ArgumentNullException(nameof(item));
             }
 
             CheckDisposed();
@@ -605,7 +605,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (items == null)
             {
-                throw new ArgumentNullException("items");
+                throw new ArgumentNullException(nameof(items));
             }
 
             cancellationToken.ThrowIfCancellationRequested();
@@ -1070,7 +1070,7 @@ namespace Emby.Server.Implementations.Data
             saveItemStatement.MoveNext();
         }
 
-        private string SerializeProviderIds(BaseItem item)
+        private static string SerializeProviderIds(BaseItem item)
         {
             // Ideally we shouldn't need this IsNullOrWhiteSpace check but we're seeing some cases of bad data slip through
             var ids = item.ProviderIds
@@ -1085,7 +1085,7 @@ namespace Emby.Server.Implementations.Data
             return string.Join("|", ids.Select(i => i.Key + "=" + i.Value).ToArray());
         }
 
-        private void DeserializeProviderIds(string value, BaseItem item)
+        private static void DeserializeProviderIds(string value, BaseItem item)
         {
             if (string.IsNullOrWhiteSpace(value))
             {
@@ -1226,7 +1226,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (id.Equals(Guid.Empty))
             {
-                throw new ArgumentNullException("id");
+                throw new ArgumentNullException(nameof(id));
             }
 
             CheckDisposed();
@@ -1948,7 +1948,7 @@ namespace Emby.Server.Implementations.Data
             return item;
         }
 
-        private Guid[] SplitToGuids(string value)
+        private static Guid[] SplitToGuids(string value)
         {
             var ids = value.Split('|');
 
@@ -1965,7 +1965,7 @@ namespace Emby.Server.Implementations.Data
         /// <summary>
         /// Gets chapters for an item
         /// </summary>
-        /// <param name="id">The id.</param>
+        /// <param name="item">The item.</param>
         /// <returns>IEnumerable{ChapterInfo}.</returns>
         /// <exception cref="System.ArgumentNullException">id</exception>
         public List<ChapterInfo> GetChapters(BaseItem item)
@@ -1996,7 +1996,7 @@ namespace Emby.Server.Implementations.Data
         /// <summary>
         /// Gets a single chapter for an item
         /// </summary>
-        /// <param name="id">The id.</param>
+        /// <param name="item">The item.</param>
         /// <param name="index">The index.</param>
         /// <returns>ChapterInfo.</returns>
         /// <exception cref="System.ArgumentNullException">id</exception>
@@ -2067,12 +2067,12 @@ namespace Emby.Server.Implementations.Data
 
             if (id.Equals(Guid.Empty))
             {
-                throw new ArgumentNullException("id");
+                throw new ArgumentNullException(nameof(id));
             }
 
             if (chapters == null)
             {
-                throw new ArgumentNullException("chapters");
+                throw new ArgumentNullException(nameof(chapters));
             }
 
             using (WriteLock.Write())
@@ -2144,7 +2144,7 @@ namespace Emby.Server.Implementations.Data
             }
         }
 
-        private bool EnableJoinUserData(InternalItemsQuery query)
+        private static bool EnableJoinUserData(InternalItemsQuery query)
         {
             if (query.User == null)
             {
@@ -2681,7 +2681,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (query == null)
             {
-                throw new ArgumentNullException("query");
+                throw new ArgumentNullException(nameof(query));
             }
 
             CheckDisposed();
@@ -2739,7 +2739,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (query == null)
             {
-                throw new ArgumentNullException("query");
+                throw new ArgumentNullException(nameof(query));
             }
 
             CheckDisposed();
@@ -2928,7 +2928,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (query == null)
             {
-                throw new ArgumentNullException("query");
+                throw new ArgumentNullException(nameof(query));
             }
 
             CheckDisposed();
@@ -3212,7 +3212,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (query == null)
             {
-                throw new ArgumentNullException("query");
+                throw new ArgumentNullException(nameof(query));
             }
 
             CheckDisposed();
@@ -3286,7 +3286,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (query == null)
             {
-                throw new ArgumentNullException("query");
+                throw new ArgumentNullException(nameof(query));
             }
 
             CheckDisposed();
@@ -3362,7 +3362,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (query == null)
             {
-                throw new ArgumentNullException("query");
+                throw new ArgumentNullException(nameof(query));
             }
 
             CheckDisposed();
@@ -5184,7 +5184,7 @@ where AncestorIdText not null and ItemValues.Value not null and ItemValues.Type
         {
             if (id.Equals(Guid.Empty))
             {
-                throw new ArgumentNullException("id");
+                throw new ArgumentNullException(nameof(id));
             }
 
             CheckDisposed();
@@ -5233,7 +5233,7 @@ where AncestorIdText not null and ItemValues.Value not null and ItemValues.Type
         {
             if (query == null)
             {
-                throw new ArgumentNullException("query");
+                throw new ArgumentNullException(nameof(query));
             }
 
             CheckDisposed();
@@ -5273,7 +5273,7 @@ where AncestorIdText not null and ItemValues.Value not null and ItemValues.Type
         {
             if (query == null)
             {
-                throw new ArgumentNullException("query");
+                throw new ArgumentNullException(nameof(query));
             }
 
             CheckDisposed();
@@ -5387,12 +5387,12 @@ where AncestorIdText not null and ItemValues.Value not null and ItemValues.Type
         {
             if (itemId.Equals(Guid.Empty))
             {
-                throw new ArgumentNullException("itemId");
+                throw new ArgumentNullException(nameof(itemId));
             }
 
             if (ancestorIds == null)
             {
-                throw new ArgumentNullException("ancestorIds");
+                throw new ArgumentNullException(nameof(ancestorIds));
             }
 
             CheckDisposed();
@@ -5556,7 +5556,7 @@ where AncestorIdText not null and ItemValues.Value not null and ItemValues.Type
         {
             if (query == null)
             {
-                throw new ArgumentNullException("query");
+                throw new ArgumentNullException(nameof(query));
             }
 
             if (!query.Limit.HasValue)
@@ -5915,12 +5915,12 @@ where AncestorIdText not null and ItemValues.Value not null and ItemValues.Type
         {
             if (itemId.Equals(Guid.Empty))
             {
-                throw new ArgumentNullException("itemId");
+                throw new ArgumentNullException(nameof(itemId));
             }
 
             if (values == null)
             {
-                throw new ArgumentNullException("keys");
+                throw new ArgumentNullException(nameof(values));
             }
 
             CheckDisposed();
@@ -5991,12 +5991,12 @@ where AncestorIdText not null and ItemValues.Value not null and ItemValues.Type
         {
             if (itemId.Equals(Guid.Empty))
             {
-                throw new ArgumentNullException("itemId");
+                throw new ArgumentNullException(nameof(itemId));
             }
 
             if (people == null)
             {
-                throw new ArgumentNullException("people");
+                throw new ArgumentNullException(nameof(people));
             }
 
             CheckDisposed();
@@ -6102,7 +6102,7 @@ where AncestorIdText not null and ItemValues.Value not null and ItemValues.Type
 
             if (query == null)
             {
-                throw new ArgumentNullException("query");
+                throw new ArgumentNullException(nameof(query));
             }
 
             var cmdText = "select " + string.Join(",", _mediaStreamSaveColumns) + " from mediastreams where";
@@ -6158,12 +6158,12 @@ where AncestorIdText not null and ItemValues.Value not null and ItemValues.Type
 
             if (id.Equals(Guid.Empty))
             {
-                throw new ArgumentNullException("id");
+                throw new ArgumentNullException(nameof(id));
             }
 
             if (streams == null)
             {
-                throw new ArgumentNullException("streams");
+                throw new ArgumentNullException(nameof(streams));
             }
 
             cancellationToken.ThrowIfCancellationRequested();

+ 16 - 28
Emby.Server.Implementations/Data/SqliteUserDataRepository.cs

@@ -1,4 +1,4 @@
-using System;
+using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
@@ -28,13 +28,7 @@ namespace Emby.Server.Implementations.Data
         /// Gets the name of the repository
         /// </summary>
         /// <value>The name.</value>
-        public string Name
-        {
-            get
-            {
-                return "SQLite";
-            }
-        }
+        public string Name => "SQLite";
 
         /// <summary>
         /// Opens the connection to the database
@@ -136,13 +130,7 @@ namespace Emby.Server.Implementations.Data
             return list;
         }
 
-        protected override bool EnableTempStoreMemory
-        {
-            get
-            {
-                return true;
-            }
-        }
+        protected override bool EnableTempStoreMemory => true;
 
         /// <summary>
         /// Saves the user data.
@@ -151,15 +139,15 @@ namespace Emby.Server.Implementations.Data
         {
             if (userData == null)
             {
-                throw new ArgumentNullException("userData");
+                throw new ArgumentNullException(nameof(userData));
             }
             if (internalUserId <= 0)
             {
-                throw new ArgumentNullException("internalUserId");
+                throw new ArgumentNullException(nameof(internalUserId));
             }
             if (string.IsNullOrEmpty(key))
             {
-                throw new ArgumentNullException("key");
+                throw new ArgumentNullException(nameof(key));
             }
 
             PersistUserData(internalUserId, key, userData, cancellationToken);
@@ -169,11 +157,11 @@ namespace Emby.Server.Implementations.Data
         {
             if (userData == null)
             {
-                throw new ArgumentNullException("userData");
+                throw new ArgumentNullException(nameof(userData));
             }
             if (internalUserId <= 0)
             {
-                throw new ArgumentNullException("internalUserId");
+                throw new ArgumentNullException(nameof(internalUserId));
             }
 
             PersistAllUserData(internalUserId, userData, cancellationToken);
@@ -182,7 +170,7 @@ namespace Emby.Server.Implementations.Data
         /// <summary>
         /// Persists the user data.
         /// </summary>
-        /// <param name="userId">The user id.</param>
+        /// <param name="internalUserId">The user id.</param>
         /// <param name="key">The key.</param>
         /// <param name="userData">The user data.</param>
         /// <param name="cancellationToken">The cancellation token.</param>
@@ -203,7 +191,7 @@ namespace Emby.Server.Implementations.Data
             }
         }
 
-        private void SaveUserData(IDatabaseConnection db, long internalUserId, string key, UserItemData userData)
+        private static void SaveUserData(IDatabaseConnection db, long internalUserId, string key, UserItemData userData)
         {
             using (var statement = db.PrepareStatement("replace into UserDatas (key, userId, rating,played,playCount,isFavorite,playbackPositionTicks,lastPlayedDate,AudioStreamIndex,SubtitleStreamIndex) values (@key, @userId, @rating,@played,@playCount,@isFavorite,@playbackPositionTicks,@lastPlayedDate,@AudioStreamIndex,@SubtitleStreamIndex)"))
             {
@@ -280,7 +268,7 @@ namespace Emby.Server.Implementations.Data
         /// <summary>
         /// Gets the user data.
         /// </summary>
-        /// <param name="userId">The user id.</param>
+        /// <param name="internalUserId">The user id.</param>
         /// <param name="key">The key.</param>
         /// <returns>Task{UserItemData}.</returns>
         /// <exception cref="System.ArgumentNullException">
@@ -292,11 +280,11 @@ namespace Emby.Server.Implementations.Data
         {
             if (internalUserId <= 0)
             {
-                throw new ArgumentNullException("internalUserId");
+                throw new ArgumentNullException(nameof(internalUserId));
             }
             if (string.IsNullOrEmpty(key))
             {
-                throw new ArgumentNullException("key");
+                throw new ArgumentNullException(nameof(key));
             }
 
             using (WriteLock.Read())
@@ -323,7 +311,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (keys == null)
             {
-                throw new ArgumentNullException("keys");
+                throw new ArgumentNullException(nameof(keys));
             }
 
             if (keys.Count == 0)
@@ -337,13 +325,13 @@ namespace Emby.Server.Implementations.Data
         /// <summary>
         /// Return all user-data associated with the given user
         /// </summary>
-        /// <param name="userId"></param>
+        /// <param name="internalUserId"></param>
         /// <returns></returns>
         public List<UserItemData> GetAllUserData(long internalUserId)
         {
             if (internalUserId <= 0)
             {
-                throw new ArgumentNullException("internalUserId");
+                throw new ArgumentNullException(nameof(internalUserId));
             }
 
             var list = new List<UserItemData>();

+ 4 - 11
Emby.Server.Implementations/Data/SqliteUserRepository.cs

@@ -31,13 +31,7 @@ namespace Emby.Server.Implementations.Data
         /// Gets the name of the repository
         /// </summary>
         /// <value>The name.</value>
-        public string Name
-        {
-            get
-            {
-                return "SQLite";
-            }
-        }
+        public string Name => "SQLite";
 
         /// <summary>
         /// Opens the connection to the database
@@ -85,7 +79,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (user == null)
             {
-                throw new ArgumentNullException("user");
+                throw new ArgumentNullException(nameof(user));
             }
 
             var serialized = _jsonSerializer.SerializeToBytes(user);
@@ -122,7 +116,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (user == null)
             {
-                throw new ArgumentNullException("user");
+                throw new ArgumentNullException(nameof(user));
             }
 
             var serialized = _jsonSerializer.SerializeToBytes(user);
@@ -207,14 +201,13 @@ namespace Emby.Server.Implementations.Data
         /// Deletes the user.
         /// </summary>
         /// <param name="user">The user.</param>
-        /// <param name="cancellationToken">The cancellation token.</param>
         /// <returns>Task.</returns>
         /// <exception cref="System.ArgumentNullException">user</exception>
         public void DeleteUser(User user)
         {
             if (user == null)
             {
-                throw new ArgumentNullException("user");
+                throw new ArgumentNullException(nameof(user));
             }
 
             using (WriteLock.Write())

+ 1 - 1
Emby.Server.Implementations/Data/TypeMapper.cs

@@ -32,7 +32,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (string.IsNullOrEmpty(typeName))
             {
-                throw new ArgumentNullException("typeName");
+                throw new ArgumentNullException(nameof(typeName));
             }
 
             return _typeMap.GetOrAdd(typeName, LookupType);

+ 7 - 12
Emby.Server.Implementations/Devices/DeviceId.cs

@@ -1,4 +1,4 @@
-using System;
+using System;
 using System.IO;
 using System.Text;
 using MediaBrowser.Common.Configuration;
@@ -15,10 +15,7 @@ namespace Emby.Server.Implementations.Devices
 
         private readonly object _syncLock = new object();
 
-        private string CachePath
-        {
-            get { return Path.Combine(_appPaths.DataPath, "device.txt"); }
-        }
+        private string CachePath => Path.Combine(_appPaths.DataPath, "device.txt");
 
         private string GetCachedId()
         {
@@ -70,7 +67,7 @@ namespace Emby.Server.Implementations.Devices
             }
         }
 
-        private string GetNewId()
+        private static string GetNewId()
         {
             return Guid.NewGuid().ToString("N");
         }
@@ -92,8 +89,9 @@ namespace Emby.Server.Implementations.Devices
 
         public DeviceId(IApplicationPaths appPaths, ILogger logger, IFileSystem fileSystem)
         {
-            if (fileSystem == null) {
-                throw new ArgumentNullException ("fileSystem");
+            if (fileSystem == null)
+            {
+                throw new ArgumentNullException(nameof(fileSystem));
             }
 
             _appPaths = appPaths;
@@ -101,9 +99,6 @@ namespace Emby.Server.Implementations.Devices
             _fileSystem = fileSystem;
         }
 
-        public string Value
-        {
-            get { return _id ?? (_id = GetDeviceId()); }
-        }
+        public string Value => _id ?? (_id = GetDeviceId());
     }
 }

+ 4 - 7
Emby.Server.Implementations/Devices/DeviceManager.cs

@@ -1,4 +1,4 @@
-using MediaBrowser.Common.Configuration;
+using MediaBrowser.Common.Configuration;
 using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Devices;
 using MediaBrowser.Controller.Library;
@@ -360,10 +360,7 @@ namespace Emby.Server.Implementations.Devices
             return path;
         }
 
-        private string DefaultCameraUploadsPath
-        {
-            get { return Path.Combine(_config.CommonApplicationPaths.DataPath, "camerauploads"); }
-        }
+        private string DefaultCameraUploadsPath => Path.Combine(_config.CommonApplicationPaths.DataPath, "camerauploads");
 
         public bool CanAccessDevice(User user, string deviceId)
         {
@@ -373,7 +370,7 @@ namespace Emby.Server.Implementations.Devices
             }
             if (string.IsNullOrEmpty(deviceId))
             {
-                throw new ArgumentNullException("deviceId");
+                throw new ArgumentNullException(nameof(deviceId));
             }
 
             if (!CanAccessDevice(user.Policy, deviceId))
@@ -389,7 +386,7 @@ namespace Emby.Server.Implementations.Devices
             return true;
         }
 
-        private bool CanAccessDevice(UserPolicy policy, string id)
+        private static bool CanAccessDevice(UserPolicy policy, string id)
         {
             if (policy.EnableAllDevices)
             {

+ 5 - 20
Emby.Server.Implementations/Diagnostics/CommonProcess.cs

@@ -81,30 +81,15 @@ namespace Emby.Server.Implementations.Diagnostics
             }
         }
 
-        public ProcessOptions StartInfo
-        {
-            get { return _options; }
-        }
+        public ProcessOptions StartInfo => _options;
 
-        public StreamWriter StandardInput
-        {
-            get { return _process.StandardInput; }
-        }
+        public StreamWriter StandardInput => _process.StandardInput;
 
-        public StreamReader StandardError
-        {
-            get { return _process.StandardError; }
-        }
+        public StreamReader StandardError => _process.StandardError;
 
-        public StreamReader StandardOutput
-        {
-            get { return _process.StandardOutput; }
-        }
+        public StreamReader StandardOutput => _process.StandardOutput;
 
-        public int ExitCode
-        {
-            get { return _process.ExitCode; }
-        }
+        public int ExitCode => _process.ExitCode;
 
         public void Start()
         {

+ 9 - 9
Emby.Server.Implementations/Dto/DtoService.cs

@@ -1,4 +1,4 @@
-using MediaBrowser.Common;
+using MediaBrowser.Common;
 using MediaBrowser.Controller.Channels;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Devices;
@@ -189,7 +189,7 @@ namespace Emby.Server.Implementations.Dto
             return dto;
         }
 
-        private IList<BaseItem> GetTaggedItems(IItemByName byName, User user, DtoOptions options)
+        private static IList<BaseItem> GetTaggedItems(IItemByName byName, User user, DtoOptions options)
         {
             return byName.GetTaggedItems(new InternalItemsQuery(user)
             {
@@ -295,7 +295,7 @@ namespace Emby.Server.Implementations.Dto
             return dto;
         }
 
-        private void NormalizeMediaSourceContainers(BaseItemDto dto)
+        private static void NormalizeMediaSourceContainers(BaseItemDto dto)
         {
             foreach (var mediaSource in dto.MediaSources)
             {
@@ -347,7 +347,7 @@ namespace Emby.Server.Implementations.Dto
             return dto;
         }
 
-        private void SetItemByNameInfo(BaseItem item, BaseItemDto dto, IList<BaseItem> taggedItems, User user = null)
+        private static void SetItemByNameInfo(BaseItem item, BaseItemDto dto, IList<BaseItem> taggedItems, User user = null)
         {
             if (item is MusicArtist)
             {
@@ -447,7 +447,7 @@ namespace Emby.Server.Implementations.Dto
             }
         }
 
-        private int GetChildCount(Folder folder, User user)
+        private static int GetChildCount(Folder folder, User user)
         {
             // Right now this is too slow to calculate for top level folders on a per-user basis
             // Just return something so that apps that are expecting a value won't think the folders are empty
@@ -470,11 +470,11 @@ namespace Emby.Server.Implementations.Dto
             return item.Id.ToString("N");
         }
 
-        private void SetBookProperties(BaseItemDto dto, Book item)
+        private static void SetBookProperties(BaseItemDto dto, Book item)
         {
             dto.SeriesName = item.SeriesName;
         }
-        private void SetPhotoProperties(BaseItemDto dto, Photo item)
+        private static void SetPhotoProperties(BaseItemDto dto, Photo item)
         {
             dto.CameraMake = item.CameraMake;
             dto.CameraModel = item.CameraModel;
@@ -520,13 +520,13 @@ namespace Emby.Server.Implementations.Dto
             dto.Album = item.Album;
         }
 
-        private void SetGameProperties(BaseItemDto dto, Game item)
+        private static void SetGameProperties(BaseItemDto dto, Game item)
         {
             dto.GameSystem = item.GameSystem;
             dto.MultiPartGameFiles = item.MultiPartGameFiles;
         }
 
-        private void SetGameSystemProperties(BaseItemDto dto, GameSystem item)
+        private static void SetGameSystemProperties(BaseItemDto dto, GameSystem item)
         {
             dto.GameSystem = item.GameSystemName;
         }

+ 2 - 2
Emby.Server.Implementations/EntryPoints/ExternalPortForwarding.cs

@@ -1,4 +1,4 @@
-using System;
+using System;
 using System.Collections.Generic;
 using System.Globalization;
 using System.Net;
@@ -227,7 +227,7 @@ namespace Emby.Server.Implementations.EntryPoints
         {
             if (_disposed)
             {
-                throw new ObjectDisposedException("PortMapper");
+                throw new ObjectDisposedException(GetType().Name);
             }
 
             // On some systems the device discovered event seems to fire repeatedly

+ 3 - 3
Emby.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs

@@ -1,4 +1,4 @@
-using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Library;
 using MediaBrowser.Controller.Plugins;
 using MediaBrowser.Controller.Session;
@@ -142,7 +142,7 @@ namespace Emby.Server.Implementations.EntryPoints
             _providerManager_RefreshProgress(sender, new GenericEventArgs<Tuple<BaseItem, double>>(new Tuple<BaseItem, double>(e.Argument, 100)));
         }
 
-        private bool EnableRefreshMessage(BaseItem item)
+        private static bool EnableRefreshMessage(BaseItem item)
         {
             var folder = item as Folder;
 
@@ -387,7 +387,7 @@ namespace Emby.Server.Implementations.EntryPoints
             };
         }
 
-        private bool FilterItem(BaseItem item)
+        private static bool FilterItem(BaseItem item)
         {
             if (!item.IsFolder && !item.HasPathProtocol)
             {

+ 2 - 2
Emby.Server.Implementations/EntryPoints/RecordingNotifier.cs

@@ -1,4 +1,4 @@
-using System;
+using System;
 using System.Linq;
 using System.Threading;
 using MediaBrowser.Controller.Library;
@@ -62,7 +62,7 @@ namespace Emby.Server.Implementations.EntryPoints
             }
             catch (ObjectDisposedException)
             {
-
+                // TODO Log exception or Investigate and properly fix.
             }
             catch (Exception ex)
             {

+ 1 - 4
Emby.Server.Implementations/EntryPoints/RefreshUsersMetadata.cs

@@ -30,10 +30,7 @@ namespace Emby.Server.Implementations.EntryPoints
 
         public string Description => "Refresh user infos";
 
-        public string Category
-        {
-            get { return "Library"; }
-        }
+        public string Category => "Library";
 
         public bool IsHidden => true;
 

+ 2 - 8
Emby.Server.Implementations/EnvironmentInfo/EnvironmentInfo.cs

@@ -29,14 +29,8 @@ namespace Emby.Server.Implementations.EnvironmentInfo
             }
         }
 
-        public string OperatingSystemVersion
-        {
-            get
-            {
-                return Environment.OSVersion.Version.ToString() + " " + Environment.OSVersion.ServicePack.ToString();
-            }
-        }
+        public string OperatingSystemVersion => Environment.OSVersion.Version.ToString() + " " + Environment.OSVersion.ServicePack.ToString();
 
-        public Architecture SystemArchitecture { get { return RuntimeInformation.OSArchitecture; } }
+        public Architecture SystemArchitecture => RuntimeInformation.OSArchitecture;
     }
 }

+ 13 - 13
Emby.Server.Implementations/HttpClientManager/HttpClientManager.cs

@@ -1,4 +1,4 @@
-using System;
+using System;
 using System.Collections.Concurrent;
 using System.Collections.Generic;
 using System.Globalization;
@@ -48,11 +48,11 @@ namespace Emby.Server.Implementations.HttpClientManager
         {
             if (appPaths == null)
             {
-                throw new ArgumentNullException("appPaths");
+                throw new ArgumentNullException(nameof(appPaths));
             }
             if (logger == null)
             {
-                throw new ArgumentNullException("logger");
+                throw new ArgumentNullException(nameof(logger));
             }
 
             _logger = logger;
@@ -87,7 +87,7 @@ namespace Emby.Server.Implementations.HttpClientManager
         {
             if (string.IsNullOrEmpty(host))
             {
-                throw new ArgumentNullException("host");
+                throw new ArgumentNullException(nameof(host));
             }
 
             HttpClientInfo client;
@@ -104,7 +104,7 @@ namespace Emby.Server.Implementations.HttpClientManager
             return client;
         }
 
-        private WebRequest CreateWebRequest(string url)
+        private static WebRequest CreateWebRequest(string url)
         {
             try
             {
@@ -185,7 +185,7 @@ namespace Emby.Server.Implementations.HttpClientManager
             return request;
         }
 
-        private CredentialCache GetCredential(string url, string username, string password)
+        private static CredentialCache GetCredential(string url, string username, string password)
         {
             //ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
             CredentialCache credentialCache = new CredentialCache();
@@ -220,7 +220,7 @@ namespace Emby.Server.Implementations.HttpClientManager
             }
         }
 
-        private void SetUserAgent(HttpWebRequest request, string userAgent)
+        private static void SetUserAgent(HttpWebRequest request, string userAgent)
         {
             request.UserAgent = userAgent;
         }
@@ -491,7 +491,7 @@ namespace Emby.Server.Implementations.HttpClientManager
             return responseInfo;
         }
 
-        private void SetHeaders(WebHeaderCollection headers, HttpResponseInfo responseInfo)
+        private static void SetHeaders(WebHeaderCollection headers, HttpResponseInfo responseInfo)
         {
             foreach (var key in headers.AllKeys)
             {
@@ -541,7 +541,7 @@ namespace Emby.Server.Implementations.HttpClientManager
 
             if (options.Progress == null)
             {
-                throw new ArgumentNullException("progress");
+                throw new ArgumentException("Options did not have a Progress value.",nameof(options));
             }
 
             options.CancellationToken.ThrowIfCancellationRequested();
@@ -616,7 +616,7 @@ namespace Emby.Server.Implementations.HttpClientManager
             }
         }
 
-        private long? GetContentLength(HttpWebResponse response)
+        private static long? GetContentLength(HttpWebResponse response)
         {
             var length = response.ContentLength;
 
@@ -704,7 +704,7 @@ namespace Emby.Server.Implementations.HttpClientManager
         {
             if (string.IsNullOrEmpty(options.Url))
             {
-                throw new ArgumentNullException("options");
+                throw new ArgumentNullException(nameof(options));
             }
         }
 
@@ -713,7 +713,7 @@ namespace Emby.Server.Implementations.HttpClientManager
         /// </summary>
         /// <param name="url">The URL.</param>
         /// <returns>System.String.</returns>
-        private string GetHostFromUrl(string url)
+        private static string GetHostFromUrl(string url)
         {
             var index = url.IndexOf("://", StringComparison.OrdinalIgnoreCase);
 
@@ -803,7 +803,7 @@ namespace Emby.Server.Implementations.HttpClientManager
             };
         }
 
-        private Task<WebResponse> GetResponseAsync(WebRequest request, TimeSpan timeout)
+        private static Task<WebResponse> GetResponseAsync(WebRequest request, TimeSpan timeout)
         {
             var taskCompletion = new TaskCompletionSource<WebResponse>();
 

+ 4 - 7
Emby.Server.Implementations/HttpServer/FileWriter.cs

@@ -38,10 +38,7 @@ namespace Emby.Server.Implementations.HttpServer
         /// Gets the options.
         /// </summary>
         /// <value>The options.</value>
-        public IDictionary<string, string> Headers
-        {
-            get { return _options; }
-        }
+        public IDictionary<string, string> Headers => _options;
 
         public string Path { get; set; }
 
@@ -49,7 +46,7 @@ namespace Emby.Server.Implementations.HttpServer
         {
             if (string.IsNullOrEmpty(contentType))
             {
-                throw new ArgumentNullException("contentType");
+                throw new ArgumentNullException(nameof(contentType));
             }
 
             Path = path;
@@ -203,8 +200,8 @@ namespace Emby.Server.Implementations.HttpServer
 
         public HttpStatusCode StatusCode
         {
-            get { return (HttpStatusCode)Status; }
-            set { Status = (int)value; }
+            get => (HttpStatusCode)Status;
+            set => Status = (int)value;
         }
 
         public string StatusDescription { get; set; }

+ 14 - 19
Emby.Server.Implementations/HttpServer/HttpListenerHost.cs

@@ -1,4 +1,4 @@
-using MediaBrowser.Common.Extensions;
+using MediaBrowser.Common.Extensions;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Net;
 using Microsoft.Extensions.Logging;
@@ -89,13 +89,7 @@ namespace Emby.Server.Implementations.HttpServer
                 {typeof (ArgumentException), 400}
             };
 
-        protected ILogger Logger
-        {
-            get
-            {
-                return _logger;
-            }
-        }
+        protected ILogger Logger => _logger;
 
         public object CreateInstance(Type type)
         {
@@ -190,10 +184,9 @@ namespace Emby.Server.Implementations.HttpServer
             }
         }
 
-        private Exception GetActualException(Exception ex)
+        private static Exception GetActualException(Exception ex)
         {
-            var agg = ex as AggregateException;
-            if (agg != null)
+            if (ex is AggregateException agg)
             {
                 var inner = agg.InnerException;
                 if (inner != null)
@@ -346,7 +339,7 @@ namespace Emby.Server.Implementations.HttpServer
             return false;
         }
 
-        private string GetExtension(string url)
+        private static string GetExtension(string url)
         {
             var parts = url.Split(new[] { '?' }, 2);
 
@@ -379,18 +372,18 @@ namespace Emby.Server.Implementations.HttpServer
             string pagePathWithoutQueryString = url.Split(new[] { '?' }, StringSplitOptions.RemoveEmptyEntries)[0];
 
             return newQueryString.Count > 0
-                ? String.Format("{0}?{1}", pagePathWithoutQueryString, newQueryString)
+                ? string.Format("{0}?{1}", pagePathWithoutQueryString, newQueryString)
                 : pagePathWithoutQueryString;
         }
 
-        private string GetUrlToLog(string url)
+        private static string GetUrlToLog(string url)
         {
             url = RemoveQueryStringByKey(url, "api_key");
 
             return url;
         }
 
-        private string NormalizeConfiguredLocalAddress(string address)
+        private static string NormalizeConfiguredLocalAddress(string address)
         {
             var index = address.Trim('/').IndexOf('/');
 
@@ -727,7 +720,7 @@ namespace Emby.Server.Implementations.HttpServer
             return null;
         }
 
-        private Task Write(IResponse response, string text)
+        private static Task Write(IResponse response, string text)
         {
             var bOutput = Encoding.UTF8.GetBytes(text);
             response.SetContentLength(bOutput.Length);
@@ -853,7 +846,9 @@ namespace Emby.Server.Implementations.HttpServer
             return _jsonSerializer.DeserializeFromStreamAsync(stream, type);
         }
 
-        private string NormalizeEmbyRoutePath(string path)
+        //TODO Add Jellyfin Route Path Normalizer
+
+        private static string NormalizeEmbyRoutePath(string path)
         {
             if (path.StartsWith("/", StringComparison.OrdinalIgnoreCase))
             {
@@ -863,7 +858,7 @@ namespace Emby.Server.Implementations.HttpServer
             return "emby/" + path;
         }
 
-        private string NormalizeMediaBrowserRoutePath(string path)
+        private static string NormalizeMediaBrowserRoutePath(string path)
         {
             if (path.StartsWith("/", StringComparison.OrdinalIgnoreCase))
             {
@@ -873,7 +868,7 @@ namespace Emby.Server.Implementations.HttpServer
             return "mediabrowser/" + path;
         }
 
-        private string DoubleNormalizeEmbyRoutePath(string path)
+        private static string DoubleNormalizeEmbyRoutePath(string path)
         {
             if (path.StartsWith("/", StringComparison.OrdinalIgnoreCase))
             {

+ 12 - 12
Emby.Server.Implementations/HttpServer/HttpResultFactory.cs

@@ -1,4 +1,4 @@
-using MediaBrowser.Common.Extensions;
+using MediaBrowser.Common.Extensions;
 using MediaBrowser.Controller.Net;
 using Microsoft.Extensions.Logging;
 using MediaBrowser.Model.Serialization;
@@ -207,7 +207,7 @@ namespace Emby.Server.Implementations.HttpServer
         {
             if (result == null)
             {
-                throw new ArgumentNullException("result");
+                throw new ArgumentNullException(nameof(result));
             }
 
             if (responseHeaders == null)
@@ -245,7 +245,7 @@ namespace Emby.Server.Implementations.HttpServer
             return GetCompressionType(request);
         }
 
-        private string GetCompressionType(IRequest request)
+        private static string GetCompressionType(IRequest request)
         {
             var acceptEncoding = request.Headers["Accept-Encoding"];
 
@@ -365,7 +365,7 @@ namespace Emby.Server.Implementations.HttpServer
             return _brotliCompressor.Compress(bytes);
         }
 
-        private byte[] Deflate(byte[] bytes)
+        private static byte[] Deflate(byte[] bytes)
         {
             // In .NET FX incompat-ville, you can't access compressed bytes without closing DeflateStream
             // Which means we must use MemoryStream since you have to use ToArray() on a closed Stream
@@ -379,7 +379,7 @@ namespace Emby.Server.Implementations.HttpServer
             }
         }
 
-        private byte[] GZip(byte[] buffer)
+        private static byte[] GZip(byte[] buffer)
         {
             using (var ms = new MemoryStream())
             using (var zipStream = new GZipStream(ms, CompressionMode.Compress))
@@ -398,7 +398,7 @@ namespace Emby.Server.Implementations.HttpServer
                        : contentType.Split(';')[0].ToLower().Trim();
         }
 
-        private string SerializeToXmlString(object from)
+        private static string SerializeToXmlString(object from)
         {
             using (var ms = new MemoryStream())
             {
@@ -453,7 +453,7 @@ namespace Emby.Server.Implementations.HttpServer
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             return GetStaticFileResult(requestContext, new StaticFileResultOptions
@@ -471,7 +471,7 @@ namespace Emby.Server.Implementations.HttpServer
 
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             if (fileShare != FileShareMode.Read && fileShare != FileShareMode.ReadWrite)
@@ -661,7 +661,7 @@ namespace Emby.Server.Implementations.HttpServer
         /// <summary>
         /// Adds the expires header.
         /// </summary>
-        private void AddExpiresHeader(IDictionary<string, string> responseHeaders, string cacheKey, TimeSpan? cacheDuration)
+        private static void AddExpiresHeader(IDictionary<string, string> responseHeaders, string cacheKey, TimeSpan? cacheDuration)
         {
             if (cacheDuration.HasValue)
             {
@@ -678,7 +678,7 @@ namespace Emby.Server.Implementations.HttpServer
         /// </summary>
         /// <param name="responseHeaders">The responseHeaders.</param>
         /// <param name="lastDateModified">The last date modified.</param>
-        private void AddAgeHeader(IDictionary<string, string> responseHeaders, DateTime? lastDateModified)
+        private static void AddAgeHeader(IDictionary<string, string> responseHeaders, DateTime? lastDateModified)
         {
             if (lastDateModified.HasValue)
             {
@@ -771,7 +771,7 @@ namespace Emby.Server.Implementations.HttpServer
         /// </summary>
         /// <param name="date">The date.</param>
         /// <returns>DateTime.</returns>
-        private DateTime NormalizeDateForComparison(DateTime date)
+        private static DateTime NormalizeDateForComparison(DateTime date)
         {
             return new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second, date.Kind);
         }
@@ -781,7 +781,7 @@ namespace Emby.Server.Implementations.HttpServer
         /// </summary>
         /// <param name="hasHeaders">The has options.</param>
         /// <param name="responseHeaders">The response headers.</param>
-        private void AddResponseHeaders(IHasHeaders hasHeaders, IEnumerable<KeyValuePair<string, string>> responseHeaders)
+        private static void AddResponseHeaders(IHasHeaders hasHeaders, IEnumerable<KeyValuePair<string, string>> responseHeaders)
         {
             foreach (var item in responseHeaders)
             {

+ 6 - 9
Emby.Server.Implementations/HttpServer/RangeRequestWriter.cs

@@ -1,4 +1,4 @@
-using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Logging;
 using System;
 using System.Collections.Generic;
 using System.Globalization;
@@ -46,10 +46,7 @@ namespace Emby.Server.Implementations.HttpServer
         /// Additional HTTP Headers
         /// </summary>
         /// <value>The headers.</value>
-        public IDictionary<string, string> Headers
-        {
-            get { return _options; }
-        }
+        public IDictionary<string, string> Headers => _options;
 
         /// <summary>
         /// Initializes a new instance of the <see cref="StreamWriter" /> class.
@@ -62,7 +59,7 @@ namespace Emby.Server.Implementations.HttpServer
         {
             if (string.IsNullOrEmpty(contentType))
             {
-                throw new ArgumentNullException("contentType");
+                throw new ArgumentNullException(nameof(contentType));
             }
 
             RangeHeader = rangeHeader;
@@ -186,7 +183,7 @@ namespace Emby.Server.Implementations.HttpServer
             }
         }
 
-        private async Task CopyToInternalAsync(Stream source, Stream destination, long copyLength)
+        private static async Task CopyToInternalAsync(Stream source, Stream destination, long copyLength)
         {
             var array = new byte[BufferSize];
             int bytesRead;
@@ -220,8 +217,8 @@ namespace Emby.Server.Implementations.HttpServer
 
         public HttpStatusCode StatusCode
         {
-            get { return (HttpStatusCode)Status; }
-            set { Status = (int)value; }
+            get => (HttpStatusCode)Status;
+            set => Status = (int)value;
         }
 
         public string StatusDescription { get; set; }

+ 3 - 3
Emby.Server.Implementations/HttpServer/Security/AuthService.cs

@@ -1,4 +1,4 @@
-using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Connect;
 using MediaBrowser.Controller.Devices;
 using MediaBrowser.Controller.Entities;
@@ -173,7 +173,7 @@ namespace Emby.Server.Implementations.HttpServer.Security
             return false;
         }
 
-        private void ValidateRoles(string[] roles, User user)
+        private static void ValidateRoles(string[] roles, User user)
         {
             if (roles.Contains("admin", StringComparer.OrdinalIgnoreCase))
             {
@@ -207,7 +207,7 @@ namespace Emby.Server.Implementations.HttpServer.Security
             }
         }
 
-        private AuthenticationInfo GetTokenInfo(IRequest request)
+        private static AuthenticationInfo GetTokenInfo(IRequest request)
         {
             object info;
             request.Items.TryGetValue("OriginalAuthenticationInfo", out info);

+ 2 - 2
Emby.Server.Implementations/HttpServer/Security/AuthorizationContext.cs

@@ -1,4 +1,4 @@
-using MediaBrowser.Controller.Connect;
+using MediaBrowser.Controller.Connect;
 using MediaBrowser.Controller.Net;
 using MediaBrowser.Controller.Security;
 using System;
@@ -227,7 +227,7 @@ namespace Emby.Server.Implementations.HttpServer.Security
             return result;
         }
 
-        private string NormalizeValue(string value)
+        private static string NormalizeValue(string value)
         {
             if (string.IsNullOrEmpty(value))
             {

+ 3 - 6
Emby.Server.Implementations/HttpServer/StreamWriter.cs

@@ -35,10 +35,7 @@ namespace Emby.Server.Implementations.HttpServer
         /// Gets the options.
         /// </summary>
         /// <value>The options.</value>
-        public IDictionary<string, string> Headers
-        {
-            get { return _options; }
-        }
+        public IDictionary<string, string> Headers => _options;
 
         public Action OnComplete { get; set; }
         public Action OnError { get; set; }
@@ -53,7 +50,7 @@ namespace Emby.Server.Implementations.HttpServer
         {
             if (string.IsNullOrEmpty(contentType))
             {
-                throw new ArgumentNullException("contentType");
+                throw new ArgumentNullException(nameof(contentType));
             }
 
             SourceStream = source;
@@ -77,7 +74,7 @@ namespace Emby.Server.Implementations.HttpServer
         {
             if (string.IsNullOrEmpty(contentType))
             {
-                throw new ArgumentNullException("contentType");
+                throw new ArgumentNullException(nameof(contentType));
             }
 
             SourceBytes = source;

+ 10 - 12
Emby.Server.Implementations/HttpServer/WebSocketConnection.cs

@@ -82,19 +82,19 @@ namespace Emby.Server.Implementations.HttpServer
         {
             if (socket == null)
             {
-                throw new ArgumentNullException("socket");
+                throw new ArgumentNullException(nameof(socket));
             }
             if (string.IsNullOrEmpty(remoteEndPoint))
             {
-                throw new ArgumentNullException("remoteEndPoint");
+                throw new ArgumentNullException(nameof(remoteEndPoint));
             }
             if (jsonSerializer == null)
             {
-                throw new ArgumentNullException("jsonSerializer");
+                throw new ArgumentNullException(nameof(jsonSerializer));
             }
             if (logger == null)
             {
-                throw new ArgumentNullException("logger");
+                throw new ArgumentNullException(nameof(logger));
             }
 
             Id = Guid.NewGuid();
@@ -148,7 +148,8 @@ namespace Emby.Server.Implementations.HttpServer
         /// <summary>
         /// Called when [receive].
         /// </summary>
-        /// <param name="bytes">The bytes.</param>
+        /// <param name="memory">The memory block.</param>
+        /// <param name="length">The length of the memory block.</param>
         private void OnReceiveInternal(Memory<byte> memory, int length)
         {
             LastActivityDate = DateTime.UtcNow;
@@ -219,7 +220,7 @@ namespace Emby.Server.Implementations.HttpServer
         {
             if (message == null)
             {
-                throw new ArgumentNullException("message");
+                throw new ArgumentNullException(nameof(message));
             }
 
             var json = _jsonSerializer.SerializeToString(message);
@@ -237,7 +238,7 @@ namespace Emby.Server.Implementations.HttpServer
         {
             if (buffer == null)
             {
-                throw new ArgumentNullException("buffer");
+                throw new ArgumentNullException(nameof(buffer));
             }
 
             cancellationToken.ThrowIfCancellationRequested();
@@ -249,7 +250,7 @@ namespace Emby.Server.Implementations.HttpServer
         {
             if (string.IsNullOrEmpty(text))
             {
-                throw new ArgumentNullException("text");
+                throw new ArgumentNullException(nameof(text));
             }
 
             cancellationToken.ThrowIfCancellationRequested();
@@ -261,10 +262,7 @@ namespace Emby.Server.Implementations.HttpServer
         /// Gets the state.
         /// </summary>
         /// <value>The state.</value>
-        public WebSocketState State
-        {
-            get { return _socket.State; }
-        }
+        public WebSocketState State => _socket.State;
 
         /// <summary>
         /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

+ 2 - 2
Emby.Server.Implementations/IO/FileRefresher.cs

@@ -51,7 +51,7 @@ namespace Emby.Server.Implementations.IO
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             if (!_affectedPaths.Contains(path, StringComparer.Ordinal))
@@ -64,7 +64,7 @@ namespace Emby.Server.Implementations.IO
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             lock (_timerLock)

+ 1 - 1
Emby.Server.Implementations/IO/IsoManager.cs

@@ -29,7 +29,7 @@ namespace Emby.Server.Implementations.IO
         {
             if (string.IsNullOrEmpty(isoPath))
             {
-                throw new ArgumentNullException("isoPath");
+                throw new ArgumentNullException(nameof(isoPath));
             }
 
             var mounter = _mounters.FirstOrDefault(i => i.CanMount(isoPath));

+ 5 - 5
Emby.Server.Implementations/IO/LibraryMonitor.cs

@@ -77,7 +77,7 @@ namespace Emby.Server.Implementations.IO
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             TemporarilyIgnore(path);
@@ -95,7 +95,7 @@ namespace Emby.Server.Implementations.IO
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             // This is an arbitraty amount of time, but delay it because file system writes often trigger events long after the file was actually written to.
@@ -145,7 +145,7 @@ namespace Emby.Server.Implementations.IO
         {
             if (taskManager == null)
             {
-                throw new ArgumentNullException("taskManager");
+                throw new ArgumentNullException(nameof(taskManager));
             }
 
             LibraryManager = libraryManager;
@@ -268,7 +268,7 @@ namespace Emby.Server.Implementations.IO
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             path = path.TrimEnd(Path.DirectorySeparatorChar);
@@ -469,7 +469,7 @@ namespace Emby.Server.Implementations.IO
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             var filename = Path.GetFileName(path);

+ 22 - 28
Emby.Server.Implementations/IO/ManagedFileSystem.cs

@@ -1,4 +1,4 @@
-using System;
+using System;
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.IO;
@@ -85,17 +85,11 @@ namespace Emby.Server.Implementations.IO
             {
                 // Be consistent across platforms because the windows server will fail to query network shares that don't follow windows conventions
                 // https://referencesource.microsoft.com/#mscorlib/system/io/path.cs
-                _invalidFileNameChars = new char[] { '\"', '<', '>', '|', '\0', (Char)1, (Char)2, (Char)3, (Char)4, (Char)5, (Char)6, (Char)7, (Char)8, (Char)9, (Char)10, (Char)11, (Char)12, (Char)13, (Char)14, (Char)15, (Char)16, (Char)17, (Char)18, (Char)19, (Char)20, (Char)21, (Char)22, (Char)23, (Char)24, (Char)25, (Char)26, (Char)27, (Char)28, (Char)29, (Char)30, (Char)31, ':', '*', '?', '\\', '/' };
+                _invalidFileNameChars = new char[] { '\"', '<', '>', '|', '\0', (char)1, (char)2, (char)3, (char)4, (char)5, (char)6, (char)7, (char)8, (char)9, (char)10, (char)11, (char)12, (char)13, (char)14, (char)15, (char)16, (char)17, (char)18, (char)19, (char)20, (char)21, (char)22, (char)23, (char)24, (char)25, (char)26, (char)27, (char)28, (char)29, (char)30, (char)31, ':', '*', '?', '\\', '/' };
             }
         }
 
-        public char DirectorySeparatorChar
-        {
-            get
-            {
-                return Path.DirectorySeparatorChar;
-            }
-        }
+        public char DirectorySeparatorChar => Path.DirectorySeparatorChar;
 
         public string GetFullPath(string path)
         {
@@ -112,7 +106,7 @@ namespace Emby.Server.Implementations.IO
         {
             if (string.IsNullOrEmpty(filename))
             {
-                throw new ArgumentNullException("filename");
+                throw new ArgumentNullException(nameof(filename));
             }
 
             var extension = Path.GetExtension(filename);
@@ -129,7 +123,7 @@ namespace Emby.Server.Implementations.IO
         {
             if (string.IsNullOrEmpty(filename))
             {
-                throw new ArgumentNullException("filename");
+                throw new ArgumentNullException(nameof(filename));
             }
 
             var extension = Path.GetExtension(filename);
@@ -145,7 +139,7 @@ namespace Emby.Server.Implementations.IO
 
         public string MakeAbsolutePath(string folderPath, string filePath)
         {
-            if (String.IsNullOrWhiteSpace(filePath)) return filePath;
+            if (string.IsNullOrWhiteSpace(filePath)) return filePath;
 
             if (filePath.Contains(@"://")) return filePath; //stream
             if (filePath.Length > 3 && filePath[1] == ':' && filePath[2] == '/') return filePath; //absolute local path
@@ -200,12 +194,12 @@ namespace Emby.Server.Implementations.IO
         {
             if (string.IsNullOrEmpty(shortcutPath))
             {
-                throw new ArgumentNullException("shortcutPath");
+                throw new ArgumentNullException(nameof(shortcutPath));
             }
 
             if (string.IsNullOrEmpty(target))
             {
-                throw new ArgumentNullException("target");
+                throw new ArgumentNullException(nameof(target));
             }
 
             var extension = Path.GetExtension(shortcutPath);
@@ -321,7 +315,7 @@ namespace Emby.Server.Implementations.IO
             return result;
         }
 
-        private ExtendedFileSystemInfo GetExtendedFileSystemInfo(string path)
+        private static ExtendedFileSystemInfo GetExtendedFileSystemInfo(string path)
         {
             var result = new ExtendedFileSystemInfo();
 
@@ -456,13 +450,13 @@ namespace Emby.Server.Implementations.IO
             return new FileStream(path, GetFileMode(mode), GetFileAccess(access), GetFileShare(share), defaultBufferSize, GetFileOptions(fileOpenOptions));
         }
 
-        private FileOptions GetFileOptions(FileOpenOptions mode)
+        private static FileOptions GetFileOptions(FileOpenOptions mode)
         {
             var val = (int)mode;
             return (FileOptions)val;
         }
 
-        private FileMode GetFileMode(FileOpenMode mode)
+        private static FileMode GetFileMode(FileOpenMode mode)
         {
             switch (mode)
             {
@@ -483,7 +477,7 @@ namespace Emby.Server.Implementations.IO
             }
         }
 
-        private FileAccess GetFileAccess(FileAccessMode mode)
+        private static FileAccess GetFileAccess(FileAccessMode mode)
         {
             switch (mode)
             {
@@ -498,7 +492,7 @@ namespace Emby.Server.Implementations.IO
             }
         }
 
-        private FileShare GetFileShare(FileShareMode mode)
+        private static FileShare GetFileShare(FileShareMode mode)
         {
             switch (mode)
             {
@@ -619,12 +613,12 @@ namespace Emby.Server.Implementations.IO
         {
             if (string.IsNullOrEmpty(file1))
             {
-                throw new ArgumentNullException("file1");
+                throw new ArgumentNullException(nameof(file1));
             }
 
             if (string.IsNullOrEmpty(file2))
             {
-                throw new ArgumentNullException("file2");
+                throw new ArgumentNullException(nameof(file2));
             }
 
             var temp1 = Path.Combine(_tempPath, Guid.NewGuid().ToString("N"));
@@ -640,7 +634,7 @@ namespace Emby.Server.Implementations.IO
             CopyFile(temp1, file2, true);
         }
 
-        private char GetDirectorySeparatorChar(string path)
+        private static char GetDirectorySeparatorChar(string path)
         {
             return Path.DirectorySeparatorChar;
         }
@@ -649,12 +643,12 @@ namespace Emby.Server.Implementations.IO
         {
             if (string.IsNullOrEmpty(parentPath))
             {
-                throw new ArgumentNullException("parentPath");
+                throw new ArgumentNullException(nameof(parentPath));
             }
 
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             var separatorChar = GetDirectorySeparatorChar(parentPath);
@@ -666,7 +660,7 @@ namespace Emby.Server.Implementations.IO
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             var parent = GetDirectoryName(path);
@@ -688,7 +682,7 @@ namespace Emby.Server.Implementations.IO
         {
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             if (path.EndsWith(":\\", StringComparison.OrdinalIgnoreCase))
@@ -772,7 +766,7 @@ namespace Emby.Server.Implementations.IO
             }).ToList();
         }
 
-        private string GetName(DriveInfo drive)
+        private static string GetName(DriveInfo drive)
         {
             return drive.Name;
         }
@@ -972,7 +966,7 @@ namespace Emby.Server.Implementations.IO
             }
         }
 
-        private void RunProcess(string path, string args, string workingDirectory)
+        private static void RunProcess(string path, string args, string workingDirectory)
         {
             using (var process = Process.Start(new ProcessStartInfo
             {

+ 4 - 7
Emby.Server.Implementations/IO/MbLinkShortcutHandler.cs

@@ -15,16 +15,13 @@ namespace Emby.Server.Implementations.IO
             _fileSystem = fileSystem;
         }
 
-        public string Extension
-        {
-            get { return ".mblink"; }
-        }
+        public string Extension => ".mblink";
 
         public string Resolve(string shortcutPath)
         {
             if (string.IsNullOrEmpty(shortcutPath))
             {
-                throw new ArgumentNullException("filenshortcutPathame");
+                throw new ArgumentException("Shortcut path is empty or null.", nameof(shortcutPath));
             }
 
             if (string.Equals(Path.GetExtension(shortcutPath), ".mblink", StringComparison.OrdinalIgnoreCase))
@@ -41,12 +38,12 @@ namespace Emby.Server.Implementations.IO
         {
             if (string.IsNullOrEmpty(shortcutPath))
             {
-                throw new ArgumentNullException("shortcutPath");
+                throw new ArgumentNullException(nameof(shortcutPath));
             }
 
             if (string.IsNullOrEmpty(targetPath))
             {
-                throw new ArgumentNullException("targetPath");
+                throw new ArgumentNullException(nameof(targetPath));
             }
 
             _fileSystem.WriteAllText(shortcutPath, targetPath);

+ 10 - 49
Emby.Server.Implementations/IO/ThrottledStream.cs

@@ -42,13 +42,7 @@ namespace Emby.Server.Implementations.IO
         /// Gets the current milliseconds.
         /// </summary>
         /// <value>The current milliseconds.</value>
-        protected long CurrentMilliseconds
-        {
-            get
-            {
-                return Environment.TickCount;
-            }
-        }
+        protected long CurrentMilliseconds => Environment.TickCount;
 
         /// <summary>
         /// Gets or sets the maximum bytes per second that can be transferred through the base stream.
@@ -56,10 +50,7 @@ namespace Emby.Server.Implementations.IO
         /// <value>The maximum bytes per second.</value>
         public long MaximumBytesPerSecond
         {
-            get
-            {
-                return _maximumBytesPerSecond;
-            }
+            get => _maximumBytesPerSecond;
             set
             {
                 if (MaximumBytesPerSecond != value)
@@ -74,39 +65,21 @@ namespace Emby.Server.Implementations.IO
         /// Gets a value indicating whether the current stream supports reading.
         /// </summary>
         /// <returns>true if the stream supports reading; otherwise, false.</returns>
-        public override bool CanRead
-        {
-            get
-            {
-                return _baseStream.CanRead;
-            }
-        }
+        public override bool CanRead => _baseStream.CanRead;
 
         /// <summary>
         /// Gets a value indicating whether the current stream supports seeking.
         /// </summary>
         /// <value></value>
         /// <returns>true if the stream supports seeking; otherwise, false.</returns>
-        public override bool CanSeek
-        {
-            get
-            {
-                return _baseStream.CanSeek;
-            }
-        }
+        public override bool CanSeek => _baseStream.CanSeek;
 
         /// <summary>
         /// Gets a value indicating whether the current stream supports writing.
         /// </summary>
         /// <value></value>
         /// <returns>true if the stream supports writing; otherwise, false.</returns>
-        public override bool CanWrite
-        {
-            get
-            {
-                return _baseStream.CanWrite;
-            }
-        }
+        public override bool CanWrite => _baseStream.CanWrite;
 
         /// <summary>
         /// Gets the length in bytes of the stream.
@@ -115,13 +88,7 @@ namespace Emby.Server.Implementations.IO
         /// <returns>A long value representing the length of the stream in bytes.</returns>
         /// <exception cref="T:System.NotSupportedException">The base stream does not support seeking. </exception>
         /// <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed. </exception>
-        public override long Length
-        {
-            get
-            {
-                return _baseStream.Length;
-            }
-        }
+        public override long Length => _baseStream.Length;
 
         /// <summary>
         /// Gets or sets the position within the current stream.
@@ -133,14 +100,8 @@ namespace Emby.Server.Implementations.IO
         /// <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed. </exception>
         public override long Position
         {
-            get
-            {
-                return _baseStream.Position;
-            }
-            set
-            {
-                _baseStream.Position = value;
-            }
+            get => _baseStream.Position;
+            set => _baseStream.Position = value;
         }
         #endregion
 
@@ -158,12 +119,12 @@ namespace Emby.Server.Implementations.IO
         {
             if (baseStream == null)
             {
-                throw new ArgumentNullException("baseStream");
+                throw new ArgumentNullException(nameof(baseStream));
             }
 
             if (maximumBytesPerSecond < 0)
             {
-                throw new ArgumentOutOfRangeException("maximumBytesPerSecond",
+                throw new ArgumentOutOfRangeException(nameof(maximumBytesPerSecond),
                     maximumBytesPerSecond, "The maximum number of bytes per second can't be negative.");
             }
 

+ 3 - 16
Emby.Server.Implementations/Images/BaseDynamicImageProvider.cs

@@ -193,10 +193,7 @@ namespace Emby.Server.Implementations.Images
             return outputPath;
         }
 
-        public string Name
-        {
-            get { return "Dynamic Image Provider"; }
-        }
+        public string Name => "Dynamic Image Provider";
 
         protected virtual string CreateImage(BaseItem item,
             List<BaseItem> itemsWithImages,
@@ -232,10 +229,7 @@ namespace Emby.Server.Implementations.Images
             throw new ArgumentException("Unexpected image type");
         }
 
-        protected virtual int MaxImageAgeDays
-        {
-            get { return 7; }
-        }
+        protected virtual int MaxImageAgeDays => 7;
 
         public bool HasChanged(BaseItem item, IDirectoryService directoryServicee)
         {
@@ -293,14 +287,7 @@ namespace Emby.Server.Implementations.Images
             return true;
         }
 
-        public int Order
-        {
-            get
-            {
-                // Run before the default image provider which will download placeholders
-                return 0;
-            }
-        }
+        public int Order => 0;
 
         protected string CreateSingleImage(List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType)
         {

+ 1 - 1
Emby.Server.Implementations/Library/DefaultAuthenticationProvider.cs

@@ -67,7 +67,7 @@ namespace Emby.Server.Implementations.Library
 
             if (string.IsNullOrWhiteSpace(newPasswordHash))
             {
-                throw new ArgumentNullException("newPasswordHash");
+                throw new ArgumentNullException(nameof(newPasswordHash));
             }
 
             user.Password = newPasswordHash;

+ 27 - 34
Emby.Server.Implementations/Library/LibraryManager.cs

@@ -1,4 +1,4 @@
-using MediaBrowser.Common.Extensions;
+using MediaBrowser.Common.Extensions;
 using MediaBrowser.Common.Progress;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
@@ -147,13 +147,7 @@ namespace Emby.Server.Implementations.Library
         /// Gets the library items cache.
         /// </summary>
         /// <value>The library items cache.</value>
-        private ConcurrentDictionary<Guid, BaseItem> LibraryItemsCache
-        {
-            get
-            {
-                return _libraryItemsCache;
-            }
-        }
+        private ConcurrentDictionary<Guid, BaseItem> LibraryItemsCache => _libraryItemsCache;
 
         private readonly IFileSystem _fileSystem;
 
@@ -188,7 +182,6 @@ namespace Emby.Server.Implementations.Library
         /// Adds the parts.
         /// </summary>
         /// <param name="rules">The rules.</param>
-        /// <param name="pluginFolders">The plugin folders.</param>
         /// <param name="resolvers">The resolvers.</param>
         /// <param name="introProviders">The intro providers.</param>
         /// <param name="itemComparers">The item comparers.</param>
@@ -277,7 +270,7 @@ namespace Emby.Server.Implementations.Library
         {
             if (item == null)
             {
-                throw new ArgumentNullException("item");
+                throw new ArgumentNullException(nameof(item));
             }
             if (item is IItemByName)
             {
@@ -317,7 +310,7 @@ namespace Emby.Server.Implementations.Library
         {
             if (item == null)
             {
-                throw new ArgumentNullException("item");
+                throw new ArgumentNullException(nameof(item));
             }
 
             var parent = item.GetOwner() ?? item.GetParent();
@@ -329,7 +322,7 @@ namespace Emby.Server.Implementations.Library
         {
             if (item == null)
             {
-                throw new ArgumentNullException("item");
+                throw new ArgumentNullException(nameof(item));
             }
 
             if (item.SourceType == SourceType.Channel)
@@ -449,7 +442,7 @@ namespace Emby.Server.Implementations.Library
             ReportItemRemoved(item, parent);
         }
 
-        private IEnumerable<string> GetMetadataPaths(BaseItem item, IEnumerable<BaseItem> children)
+        private static IEnumerable<string> GetMetadataPaths(BaseItem item, IEnumerable<BaseItem> children)
         {
             var list = new List<string>
             {
@@ -502,11 +495,11 @@ namespace Emby.Server.Implementations.Library
         {
             if (string.IsNullOrEmpty(key))
             {
-                throw new ArgumentNullException("key");
+                throw new ArgumentNullException(nameof(key));
             }
             if (type == null)
             {
-                throw new ArgumentNullException("type");
+                throw new ArgumentNullException(nameof(type));
             }
 
             if (key.StartsWith(ConfigurationManager.ApplicationPaths.ProgramDataPath))
@@ -542,7 +535,7 @@ namespace Emby.Server.Implementations.Library
         {
             if (fileInfo == null)
             {
-                throw new ArgumentNullException("fileInfo");
+                throw new ArgumentNullException(nameof(fileInfo));
             }
 
             var fullPath = fileInfo.FullName;
@@ -823,7 +816,7 @@ namespace Emby.Server.Implementations.Library
 
             if (string.IsNullOrEmpty(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             //_logger.LogInformation("FindByPath {0}", path);
@@ -921,7 +914,7 @@ namespace Emby.Server.Implementations.Library
         {
             if (value <= 0)
             {
-                throw new ArgumentOutOfRangeException("Years less than or equal to 0 are invalid.");
+                throw new ArgumentOutOfRangeException(nameof(value),"Years less than or equal to 0 are invalid.");
             }
 
             var name = value.ToString(CultureInfo.InvariantCulture);
@@ -1249,7 +1242,7 @@ namespace Emby.Server.Implementations.Library
         {
             if (id.Equals(Guid.Empty))
             {
-                throw new ArgumentNullException("id");
+                throw new ArgumentNullException(nameof(id));
             }
 
             BaseItem item;
@@ -1828,7 +1821,7 @@ namespace Emby.Server.Implementations.Library
         /// Creates the item.
         /// </summary>
         /// <param name="item">The item.</param>
-        /// <param name="cancellationToken">The cancellation token.</param>
+        /// <param name="parent">The parent item.</param>
         /// <returns>Task.</returns>
         public void CreateItem(BaseItem item, BaseItem parent)
         {
@@ -2023,7 +2016,7 @@ namespace Emby.Server.Implementations.Library
             return GetCollectionFoldersInternal(item, allUserRootChildren);
         }
 
-        private List<Folder> GetCollectionFoldersInternal(BaseItem item, List<Folder> allUserRootChildren)
+        private static List<Folder> GetCollectionFoldersInternal(BaseItem item, List<Folder> allUserRootChildren)
         {
             return allUserRootChildren
                 .Where(i => string.Equals(i.Path, item.Path, StringComparison.OrdinalIgnoreCase) || i.PhysicalLocations.Contains(item.Path, StringComparer.OrdinalIgnoreCase))
@@ -2247,7 +2240,7 @@ namespace Emby.Server.Implementations.Library
         {
             if (parent == null)
             {
-                throw new ArgumentNullException("parent");
+                throw new ArgumentNullException(nameof(parent));
             }
 
             var name = parent.Name;
@@ -2313,7 +2306,7 @@ namespace Emby.Server.Implementations.Library
         {
             if (string.IsNullOrEmpty(name))
             {
-                throw new ArgumentNullException("name");
+                throw new ArgumentNullException(nameof(name));
             }
 
             var parentIdString = parentId.Equals(Guid.Empty) ? null : parentId.ToString("N");
@@ -2708,15 +2701,15 @@ namespace Emby.Server.Implementations.Library
         {
             if (string.IsNullOrWhiteSpace(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
             if (string.IsNullOrWhiteSpace(from))
             {
-                throw new ArgumentNullException("from");
+                throw new ArgumentNullException(nameof(from));
             }
             if (string.IsNullOrWhiteSpace(to))
             {
-                throw new ArgumentNullException("to");
+                throw new ArgumentNullException(nameof(to));
             }
 
             from = from.Trim();
@@ -2864,7 +2857,7 @@ namespace Emby.Server.Implementations.Library
         {
             if (string.IsNullOrWhiteSpace(name))
             {
-                throw new ArgumentNullException("name");
+                throw new ArgumentNullException(nameof(name));
             }
 
             name = _fileSystem.GetValidFilename(name);
@@ -2937,7 +2930,7 @@ namespace Emby.Server.Implementations.Library
             });
         }
 
-        private bool ValidateNetworkPath(string path)
+        private static bool ValidateNetworkPath(string path)
         {
             //if (Environment.OSVersion.Platform == PlatformID.Win32NT)
             //{
@@ -2962,14 +2955,14 @@ namespace Emby.Server.Implementations.Library
         {
             if (pathInfo == null)
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(pathInfo));
             }
 
             var path = pathInfo.Path;
 
             if (string.IsNullOrWhiteSpace(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             if (!_fileSystem.DirectoryExists(path))
@@ -3017,7 +3010,7 @@ namespace Emby.Server.Implementations.Library
         {
             if (pathInfo == null)
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(pathInfo));
             }
 
             if (!string.IsNullOrWhiteSpace(pathInfo.NetworkPath) && !ValidateNetworkPath(pathInfo.NetworkPath))
@@ -3075,7 +3068,7 @@ namespace Emby.Server.Implementations.Library
         {
             if (string.IsNullOrWhiteSpace(name))
             {
-                throw new ArgumentNullException("name");
+                throw new ArgumentNullException(nameof(name));
             }
 
             var rootFolderPath = ConfigurationManager.ApplicationPaths.DefaultUserViewsPath;
@@ -3116,7 +3109,7 @@ namespace Emby.Server.Implementations.Library
         {
             if (string.IsNullOrWhiteSpace(path))
             {
-                throw new ArgumentNullException("path");
+                throw new ArgumentNullException(nameof(path));
             }
 
             var removeList = new List<NameValuePair>();
@@ -3148,7 +3141,7 @@ namespace Emby.Server.Implementations.Library
         {
             if (string.IsNullOrEmpty(mediaPath))
             {
-                throw new ArgumentNullException("mediaPath");
+                throw new ArgumentNullException(nameof(mediaPath));
             }
 
             var rootFolderPath = ConfigurationManager.ApplicationPaths.DefaultUserViewsPath;

+ 10 - 9
Emby.Server.Implementations/Library/MediaSourceManager.cs

@@ -1,4 +1,4 @@
-using MediaBrowser.Common.Extensions;
+using MediaBrowser.Common.Extensions;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Audio;
 using MediaBrowser.Controller.Library;
@@ -74,7 +74,7 @@ namespace Emby.Server.Implementations.Library
             return list;
         }
 
-        private bool StreamSupportsExternalStream(MediaStream stream)
+        private static bool StreamSupportsExternalStream(MediaStream stream)
         {
             if (stream.IsExternal)
             {
@@ -261,7 +261,7 @@ namespace Emby.Server.Implementations.Library
             }
         }
 
-        private void SetKeyProperties(IMediaSourceProvider provider, MediaSourceInfo mediaSource)
+        private static void SetKeyProperties(IMediaSourceProvider provider, MediaSourceInfo mediaSource)
         {
             var prefix = provider.GetType().FullName.GetMD5().ToString("N") + LiveStreamIdDelimeter;
 
@@ -292,7 +292,7 @@ namespace Emby.Server.Implementations.Library
         {
             if (item == null)
             {
-                throw new ArgumentNullException("item");
+                throw new ArgumentNullException(nameof(item));
             }
 
             var hasMediaSources = (IHasMediaSources)item;
@@ -401,7 +401,7 @@ namespace Emby.Server.Implementations.Library
             }
         }
 
-        private IEnumerable<MediaSourceInfo> SortMediaSources(IEnumerable<MediaSourceInfo> sources)
+        private static IEnumerable<MediaSourceInfo> SortMediaSources(IEnumerable<MediaSourceInfo> sources)
         {
             return sources.OrderBy(i =>
             {
@@ -501,7 +501,7 @@ namespace Emby.Server.Implementations.Library
             }, liveStream as IDirectStreamProvider);
         }
 
-        private void AddMediaInfo(MediaSourceInfo mediaSource, bool isAudio)
+        private static void AddMediaInfo(MediaSourceInfo mediaSource, bool isAudio)
         {
             mediaSource.DefaultSubtitleStreamIndex = null;
 
@@ -629,6 +629,7 @@ namespace Emby.Server.Implementations.Library
                 }
                 catch (Exception ex)
                 {
+                    _logger.LogDebug(ex, "_jsonSerializer.DeserializeFromFile threw an exception.");
                 }
             }
 
@@ -759,7 +760,7 @@ namespace Emby.Server.Implementations.Library
         {
             if (string.IsNullOrEmpty(id))
             {
-                throw new ArgumentNullException("id");
+                throw new ArgumentNullException(nameof(id));
             }
 
             var info = await GetLiveStreamInfo(id, cancellationToken).ConfigureAwait(false);
@@ -770,7 +771,7 @@ namespace Emby.Server.Implementations.Library
         {
             if (string.IsNullOrEmpty(id))
             {
-                throw new ArgumentNullException("id");
+                throw new ArgumentNullException(nameof(id));
             }
 
             await _liveStreamSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false);
@@ -803,7 +804,7 @@ namespace Emby.Server.Implementations.Library
         {
             if (string.IsNullOrEmpty(id))
             {
-                throw new ArgumentNullException("id");
+                throw new ArgumentNullException(nameof(id));
             }
 
             await _liveStreamSemaphore.WaitAsync().ConfigureAwait(false);

+ 2 - 2
Emby.Server.Implementations/Library/PathExtensions.cs

@@ -16,12 +16,12 @@ namespace Emby.Server.Implementations.Library
         {
             if (string.IsNullOrEmpty(str))
             {
-                throw new ArgumentNullException("str");
+                throw new ArgumentNullException(nameof(str));
             }
 
             if (string.IsNullOrEmpty(attrib))
             {
-                throw new ArgumentNullException("attrib");
+                throw new ArgumentNullException(nameof(attrib));
             }
 
             string srch = "[" + attrib + "=";

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно