Mayor code cleanup

Add Argument*Exceptions now use proper nameof operators.

Added exception messages to quite a few Argument*Exceptions.

Fixed rethorwing to be proper syntax.

Added a ton of null checkes. (This is only a start, there are about 500 places that need proper null handling)

Added some TODOs to log certain exceptions.

Fix sln again.

Fixed all AssemblyInfo's and added proper copyright (where I could find them)

We live in *current year*.

Fixed the use of braces.

Fixed a ton of properties, and made a fair amount of functions static that should be and can be static.

Made more Methods that should be static static.

You can now use static to find bad functions!

Removed unused variable. And added one more proper XML comment.
This commit is contained in:
Erwin de Haan
2019-01-06 21:50:43 +01:00
parent 3d867c2c46
commit ec1f5dc317
334 changed files with 1632 additions and 2603 deletions

View File

@@ -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));
}
}
}

View File

@@ -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;

View File

@@ -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");
}
}

View File

@@ -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);

View File

@@ -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)
{

View File

@@ -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;

View File

@@ -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)
{

View File

@@ -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()

View File

@@ -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";
}
}

View File

@@ -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].

View File

@@ -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.");
}
}

View File

@@ -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();

View File

@@ -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())

View File

@@ -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();

View File

@@ -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>();

View File

@@ -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())

View File

@@ -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);

View File

@@ -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");
}
@@ -93,7 +90,7 @@ namespace Emby.Server.Implementations.Devices
public DeviceId(IApplicationPaths appPaths, ILogger logger, IFileSystem fileSystem)
{
if (fileSystem == null) {
throw new ArgumentNullException ("fileSystem");
throw new ArgumentNullException(nameof(fileSystem));
}
_appPaths = appPaths;
@@ -101,9 +98,6 @@ namespace Emby.Server.Implementations.Devices
_fileSystem = fileSystem;
}
public string Value
{
get { return _id ?? (_id = GetDeviceId()); }
}
public string Value => _id ?? (_id = GetDeviceId());
}
}

View File

@@ -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)
{

View File

@@ -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()
{

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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)
{

View File

@@ -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)
{

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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>();

View File

@@ -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; }

View File

@@ -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))
{

View File

@@ -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)
{

View File

@@ -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; }

View File

@@ -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);

View File

@@ -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))
{

View File

@@ -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;

View File

@@ -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.

View File

@@ -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)

View File

@@ -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));

View File

@@ -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);

View File

@@ -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
{

View File

@@ -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);

View File

@@ -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.");
}

View File

@@ -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)
{

View File

@@ -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;

View File

@@ -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;

View File

@@ -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);

View File

@@ -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 + "=";

View File

@@ -117,15 +117,15 @@ namespace Emby.Server.Implementations.Library
{
if (fileSystem == null)
{
throw new ArgumentNullException("fileSystem");
throw new ArgumentNullException(nameof(fileSystem));
}
if (item == null)
{
throw new ArgumentNullException("item");
throw new ArgumentNullException(nameof(item));
}
if (args == null)
{
throw new ArgumentNullException("args");
throw new ArgumentNullException(nameof(args));
}
// See if a different path came out of the resolver than what went in

View File

@@ -1,4 +1,4 @@
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Resolvers;
using MediaBrowser.Model.Entities;
using System;
@@ -30,10 +30,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.Audio
/// Gets the priority.
/// </summary>
/// <value>The priority.</value>
public override ResolverPriority Priority
{
get { return ResolverPriority.Fourth; }
}
public override ResolverPriority Priority => ResolverPriority.Fourth;
public MultiItemResolverResult ResolveMultiple(Folder parent,
List<FileSystemMetadata> files,
@@ -264,12 +261,12 @@ namespace Emby.Server.Implementations.Library.Resolvers.Audio
result.Extras.Any(i => ContainsFile(i, file));
}
private bool ContainsFile(AudioBookFileInfo result, FileSystemMetadata file)
private static bool ContainsFile(AudioBookFileInfo result, FileSystemMetadata file)
{
return string.Equals(result.Path, file.FullName, StringComparison.OrdinalIgnoreCase);
}
private bool IsIgnored(string filename)
private static bool IsIgnored(string filename)
{
return false;
}

View File

@@ -36,14 +36,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.Audio
/// Gets the priority.
/// </summary>
/// <value>The priority.</value>
public override ResolverPriority Priority
{
get
{
// Behind special folder resolver
return ResolverPriority.Second;
}
}
public override ResolverPriority Priority => ResolverPriority.Second;
/// <summary>
/// Resolves the specified args.

View File

@@ -35,14 +35,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.Audio
/// Gets the priority.
/// </summary>
/// <value>The priority.</value>
public override ResolverPriority Priority
{
get
{
// Behind special folder resolver
return ResolverPriority.Second;
}
}
public override ResolverPriority Priority => ResolverPriority.Second;
/// <summary>
/// Resolves the specified args.

View File

@@ -13,10 +13,7 @@ namespace Emby.Server.Implementations.Library.Resolvers
/// Gets the priority.
/// </summary>
/// <value>The priority.</value>
public override ResolverPriority Priority
{
get { return ResolverPriority.Last; }
}
public override ResolverPriority Priority => ResolverPriority.Last;
/// <summary>
/// Resolves the specified args.

View File

@@ -25,13 +25,7 @@ namespace Emby.Server.Implementations.Library.Resolvers
/// Gets the priority.
/// </summary>
/// <value>The priority.</value>
public virtual ResolverPriority Priority
{
get
{
return ResolverPriority.First;
}
}
public virtual ResolverPriority Priority => ResolverPriority.First;
/// <summary>
/// Sets initial values on the newly resolved item

View File

@@ -1,4 +1,4 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Entities;
@@ -61,7 +61,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.Movies
/// Sets the provider id from path.
/// </summary>
/// <param name="item">The item.</param>
private void SetProviderIdFromPath(BaseItem item)
private static void SetProviderIdFromPath(BaseItem item)
{
//we need to only look at the name of this actual item (not parents)
var justName = Path.GetFileName(item.Path);

View File

@@ -1,4 +1,4 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
@@ -27,17 +27,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.Movies
/// Gets the priority.
/// </summary>
/// <value>The priority.</value>
public override ResolverPriority Priority
{
get
{
// Give plugins a chance to catch iso's first
// Also since we have to loop through child files looking for videos,
// see if we can avoid some of that by letting other resolvers claim folders first
// Also run after series resolver
return ResolverPriority.Third;
}
}
public override ResolverPriority Priority => ResolverPriority.Third;
public MultiItemResolverResult ResolveMultiple(Folder parent,
List<FileSystemMetadata> files,
@@ -176,7 +166,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.Movies
return result;
}
private bool IsIgnored(string filename)
private static bool IsIgnored(string filename)
{
// Ignore samples
var sampleFilename = " " + filename.Replace(".", " ", StringComparison.OrdinalIgnoreCase)
@@ -204,7 +194,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.Movies
result.Extras.Any(i => ContainsFile(i, file));
}
private bool ContainsFile(VideoFileInfo result, FileSystemMetadata file)
private static bool ContainsFile(VideoFileInfo result, FileSystemMetadata file)
{
return string.Equals(result.Path, file.FullName, StringComparison.OrdinalIgnoreCase);
}
@@ -330,7 +320,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.Movies
/// Sets the provider id from path.
/// </summary>
/// <param name="item">The item.</param>
private void SetProviderIdsFromPath(Video item)
private static void SetProviderIdsFromPath(Video item)
{
if (item is Movie || item is MusicVideo)
{

View File

@@ -79,13 +79,6 @@ namespace Emby.Server.Implementations.Library.Resolvers
return false;
}
public override ResolverPriority Priority
{
get
{
// Behind special folder resolver
return ResolverPriority.Second;
}
}
public override ResolverPriority Priority => ResolverPriority.Second;
}
}

View File

@@ -26,10 +26,7 @@ namespace Emby.Server.Implementations.Library.Resolvers
/// Gets the priority.
/// </summary>
/// <value>The priority.</value>
public override ResolverPriority Priority
{
get { return ResolverPriority.First; }
}
public override ResolverPriority Priority => ResolverPriority.First;
/// <summary>
/// Resolves the specified args.

View File

@@ -1,4 +1,4 @@
using System.Globalization;
using System.Globalization;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
@@ -28,6 +28,9 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
/// Initializes a new instance of the <see cref="SeasonResolver"/> class.
/// </summary>
/// <param name="config">The config.</param>
/// <param name="libraryManager">The library manager.</param>
/// <param name="localization">The localization</param>
/// <param name="logger">The logger</param>
public SeasonResolver(IServerConfigurationManager config, ILibraryManager libraryManager, ILocalizationManager localization, ILogger logger)
{
_config = config;

View File

@@ -1,4 +1,4 @@
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Controller.Resolvers;
@@ -38,13 +38,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
/// Gets the priority.
/// </summary>
/// <value>The priority.</value>
public override ResolverPriority Priority
{
get
{
return ResolverPriority.Second;
}
}
public override ResolverPriority Priority => ResolverPriority.Second;
/// <summary>
/// Resolves the specified args.
@@ -195,7 +189,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
{
if (string.IsNullOrEmpty(path))
{
throw new ArgumentNullException("path");
throw new ArgumentNullException(nameof(path));
}
var extension = Path.GetExtension(path);
@@ -236,7 +230,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
/// </summary>
/// <param name="item">The item.</param>
/// <param name="path">The path.</param>
private void SetProviderIdFromPath(Series item, string path)
private static void SetProviderIdFromPath(Series item, string path)
{
var justName = Path.GetFileName(path);

View File

@@ -1,4 +1,4 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Library;
using Microsoft.Extensions.Logging;
@@ -64,7 +64,7 @@ namespace Emby.Server.Implementations.Library
};
}
private void AddIfMissing(List<string> list, string value)
private static void AddIfMissing(List<string> list, string value)
{
if (!list.Contains(value, StringComparer.OrdinalIgnoreCase))
{
@@ -85,7 +85,7 @@ namespace Emby.Server.Implementations.Library
if (string.IsNullOrEmpty(searchTerm))
{
throw new ArgumentNullException("searchTerm");
throw new ArgumentNullException(nameof(searchTerm));
}
searchTerm = searchTerm.Trim().RemoveDiacritics();

View File

@@ -53,11 +53,11 @@ namespace Emby.Server.Implementations.Library
{
if (userData == null)
{
throw new ArgumentNullException("userData");
throw new ArgumentNullException(nameof(userData));
}
if (item == null)
{
throw new ArgumentNullException("item");
throw new ArgumentNullException(nameof(item));
}
cancellationToken.ThrowIfCancellationRequested();
@@ -150,7 +150,7 @@ namespace Emby.Server.Implementations.Library
/// Gets the internal key.
/// </summary>
/// <returns>System.String.</returns>
private string GetCacheKey(long internalUserId, Guid itemId)
private static string GetCacheKey(long internalUserId, Guid itemId)
{
return internalUserId.ToString(CultureInfo.InvariantCulture) + "-" + itemId.ToString("N");
}
@@ -198,7 +198,7 @@ namespace Emby.Server.Implementations.Library
{
if (data == null)
{
throw new ArgumentNullException("data");
throw new ArgumentNullException(nameof(data));
}
return new UserItemDataDto
@@ -226,7 +226,7 @@ namespace Emby.Server.Implementations.Library
// If a position has been reported, and if we know the duration
if (positionTicks > 0 && hasRuntime)
{
var pctIn = Decimal.Divide(positionTicks, runtimeTicks) * 100;
var pctIn = decimal.Divide(positionTicks, runtimeTicks) * 100;
// Don't track in very beginning
if (pctIn < _config.Configuration.MinResumePct)

View File

@@ -1,4 +1,4 @@
using MediaBrowser.Common.Events;
using MediaBrowser.Common.Events;
using MediaBrowser.Common.Net;
using MediaBrowser.Controller;
using MediaBrowser.Controller.Configuration;
@@ -44,7 +44,7 @@ namespace Emby.Server.Implementations.Library
/// Gets the users.
/// </summary>
/// <value>The users.</value>
public IEnumerable<User> Users { get { return _users; } }
public IEnumerable<User> Users => _users;
private User[] _users;
@@ -163,7 +163,7 @@ namespace Emby.Server.Implementations.Library
{
if (id.Equals(Guid.Empty))
{
throw new ArgumentNullException("id");
throw new ArgumentNullException(nameof(id));
}
return Users.FirstOrDefault(u => u.Id == id);
@@ -183,7 +183,7 @@ namespace Emby.Server.Implementations.Library
{
if (string.IsNullOrWhiteSpace(name))
{
throw new ArgumentNullException("name");
throw new ArgumentNullException(nameof(name));
}
return Users.FirstOrDefault(u => string.Equals(u.Name, name, StringComparison.OrdinalIgnoreCase));
@@ -222,7 +222,7 @@ namespace Emby.Server.Implementations.Library
return true;
}
private bool IsValidUsernameCharacter(char i)
private static bool IsValidUsernameCharacter(char i)
{
return !char.Equals(i, '<') && !char.Equals(i, '>');
}
@@ -251,7 +251,7 @@ namespace Emby.Server.Implementations.Library
{
if (string.IsNullOrWhiteSpace(username))
{
throw new ArgumentNullException("username");
throw new ArgumentNullException(nameof(username));
}
var user = Users
@@ -344,7 +344,7 @@ namespace Emby.Server.Implementations.Library
return success ? user : null;
}
private string GetAuthenticationProviderId(IAuthenticationProvider provider)
private static string GetAuthenticationProviderId(IAuthenticationProvider provider)
{
return provider.GetType().FullName;
}
@@ -526,7 +526,7 @@ namespace Emby.Server.Implementations.Library
{
if (user == null)
{
throw new ArgumentNullException("user");
throw new ArgumentNullException(nameof(user));
}
var hasConfiguredPassword = GetAuthenticationProvider(user).HasPassword(user).Result;
@@ -625,12 +625,12 @@ namespace Emby.Server.Implementations.Library
{
if (user == null)
{
throw new ArgumentNullException("user");
throw new ArgumentNullException(nameof(user));
}
if (string.IsNullOrEmpty(newName))
{
throw new ArgumentNullException("newName");
throw new ArgumentNullException(nameof(newName));
}
if (Users.Any(u => u.Id != user.Id && u.Name.Equals(newName, StringComparison.OrdinalIgnoreCase)))
@@ -658,7 +658,7 @@ namespace Emby.Server.Implementations.Library
{
if (user == null)
{
throw new ArgumentNullException("user");
throw new ArgumentNullException(nameof(user));
}
if (user.Id.Equals(Guid.Empty) || !Users.Any(u => u.Id.Equals(user.Id)))
@@ -689,7 +689,7 @@ namespace Emby.Server.Implementations.Library
{
if (string.IsNullOrWhiteSpace(name))
{
throw new ArgumentNullException("name");
throw new ArgumentNullException(nameof(name));
}
if (!IsValidUsername(name))
@@ -737,7 +737,7 @@ namespace Emby.Server.Implementations.Library
{
if (user == null)
{
throw new ArgumentNullException("user");
throw new ArgumentNullException(nameof(user));
}
var allUsers = Users.ToList();
@@ -804,7 +804,7 @@ namespace Emby.Server.Implementations.Library
{
if (user == null)
{
throw new ArgumentNullException("user");
throw new ArgumentNullException(nameof(user));
}
if (user.ConnectLinkType.HasValue && user.ConnectLinkType.Value == UserLinkType.Guest)
@@ -823,7 +823,7 @@ namespace Emby.Server.Implementations.Library
{
if (user == null)
{
throw new ArgumentNullException("user");
throw new ArgumentNullException(nameof(user));
}
if (newPassword != null)
@@ -833,7 +833,7 @@ namespace Emby.Server.Implementations.Library
if (string.IsNullOrWhiteSpace(newPasswordHash))
{
throw new ArgumentNullException("newPasswordHash");
throw new ArgumentNullException(nameof(newPasswordHash));
}
user.EasyPassword = newPasswordHash;
@@ -848,7 +848,7 @@ namespace Emby.Server.Implementations.Library
/// </summary>
/// <param name="name">The name.</param>
/// <returns>User.</returns>
private User InstantiateNewUser(string name)
private static User InstantiateNewUser(string name)
{
return new User
{
@@ -861,10 +861,7 @@ namespace Emby.Server.Implementations.Library
};
}
private string PasswordResetFile
{
get { return Path.Combine(ConfigurationManager.ApplicationPaths.ProgramDataPath, "passwordreset.txt"); }
}
private string PasswordResetFile => Path.Combine(ConfigurationManager.ApplicationPaths.ProgramDataPath, "passwordreset.txt");
private string _lastPin;
private PasswordPinCreationResult _lastPasswordPinCreationResult;
@@ -1047,7 +1044,7 @@ namespace Emby.Server.Implementations.Library
}
}
private UserPolicy GetDefaultPolicy(User user)
private static UserPolicy GetDefaultPolicy(User user)
{
return new UserPolicy
{
@@ -1109,12 +1106,12 @@ namespace Emby.Server.Implementations.Library
}
}
private string GetPolicyFilePath(User user)
private static string GetPolicyFilePath(User user)
{
return Path.Combine(user.ConfigurationDirectoryPath, "policy.xml");
}
private string GetConfigurationFilePath(User user)
private static string GetConfigurationFilePath(User user)
{
return Path.Combine(user.ConfigurationDirectoryPath, "config.xml");
}

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Globalization;
@@ -254,27 +254,15 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
if (requiresRefresh)
{
await _libraryManager.ValidateMediaLibrary(new SimpleProgress<Double>(), CancellationToken.None);
await _libraryManager.ValidateMediaLibrary(new SimpleProgress<double>(), CancellationToken.None);
}
}
public string Name
{
get { return "Emby"; }
}
public string Name => "Emby";
public string DataPath
{
get { return Path.Combine(_config.CommonApplicationPaths.DataPath, "livetv"); }
}
public string DataPath => Path.Combine(_config.CommonApplicationPaths.DataPath, "livetv");
private string DefaultRecordingPath
{
get
{
return Path.Combine(DataPath, "recordings");
}
}
private string DefaultRecordingPath => Path.Combine(DataPath, "recordings");
private string RecordingPath
{
@@ -288,10 +276,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
}
}
public string HomePageUrl
{
get { return "https://github.com/jellyfin/jellyfin"; }
}
public string HomePageUrl => "https://github.com/jellyfin/jellyfin";
public async Task RefreshSeriesTimers(CancellationToken cancellationToken, IProgress<double> progress)
{
@@ -491,7 +476,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
return GetEpgChannelFromTunerChannel(info, tunerChannel, epgChannels);
}
private string GetMappedChannel(string channelId, NameValuePair[] mappings)
private static string GetMappedChannel(string channelId, NameValuePair[] mappings)
{
foreach (NameValuePair mapping in mappings)
{
@@ -850,7 +835,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
return Task.CompletedTask;
}
private void UpdateExistingTimerWithNewMetadata(TimerInfo existingTimer, TimerInfo updatedTimer)
private static void UpdateExistingTimerWithNewMetadata(TimerInfo existingTimer, TimerInfo updatedTimer)
{
// Update the program info but retain the status
existingTimer.ChannelId = updatedTimer.ChannelId;
@@ -980,7 +965,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
if (string.IsNullOrWhiteSpace(tunerHostId))
{
throw new ArgumentNullException("tunerHostId");
throw new ArgumentNullException(nameof(tunerHostId));
}
return info.EnabledTuners.Contains(tunerHostId, StringComparer.OrdinalIgnoreCase);
@@ -1114,7 +1099,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
if (string.IsNullOrWhiteSpace(channelId))
{
throw new ArgumentNullException("channelId");
throw new ArgumentNullException(nameof(channelId));
}
foreach (var hostInstance in _liveTvManager.TunerHosts)
@@ -1342,7 +1327,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
if (timer == null)
{
throw new ArgumentNullException("timer");
throw new ArgumentNullException(nameof(timer));
}
LiveTvProgram programInfo = null;
@@ -1795,7 +1780,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
}
}
private string GetPostProcessArguments(string path, string arguments)
private static string GetPostProcessArguments(string path, string arguments)
{
return arguments.Replace("{path}", path, StringComparison.OrdinalIgnoreCase);
}
@@ -2501,7 +2486,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
if (seriesTimer == null)
{
throw new ArgumentNullException("seriesTimer");
throw new ArgumentNullException(nameof(seriesTimer));
}
var query = new InternalItemsQuery

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
@@ -55,14 +55,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
_assemblyInfo = assemblyInfo;
}
private bool CopySubtitles
{
get
{
return false;
//return string.Equals(OutputFormat, "mkv", StringComparison.OrdinalIgnoreCase);
}
}
private static bool CopySubtitles => false;
public string GetOutputPath(MediaSourceInfo mediaSource, string targetFile)
{
@@ -226,7 +219,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
return inputModifier + " " + commandLineArgs;
}
private string GetAudioArgs(MediaSourceInfo mediaSource)
private static string GetAudioArgs(MediaSourceInfo mediaSource)
{
var mediaStreams = mediaSource.MediaStreams ?? new List<MediaStream>();
var inputAudioCodec = mediaStreams.Where(i => i.Type == MediaStreamType.Audio).Select(i => i.Codec).FirstOrDefault() ?? string.Empty;
@@ -242,7 +235,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
//return "-codec:a:0 aac -strict experimental -ab 320000";
}
private bool EncodeVideo(MediaSourceInfo mediaSource)
private static bool EncodeVideo(MediaSourceInfo mediaSource)
{
return false;
}
@@ -383,6 +376,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
}
catch (ObjectDisposedException)
{
// TODO Investigate and properly fix.
// Don't spam the log. This doesn't seem to throw in windows, but sometimes under linux
}
catch (Exception ex)

View File

@@ -68,7 +68,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
if (newList == null)
{
throw new ArgumentNullException("newList");
throw new ArgumentNullException(nameof(newList));
}
var file = _dataPath + ".json";
@@ -85,7 +85,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
if (item == null)
{
throw new ArgumentNullException("item");
throw new ArgumentNullException(nameof(item));
}
var list = GetAll().ToList();
@@ -106,7 +106,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
if (item == null)
{
throw new ArgumentNullException("item");
throw new ArgumentNullException(nameof(item));
}
var list = GetAll().ToList();

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Concurrent;
using System.Globalization;
using System.Linq;
@@ -90,7 +90,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
AddOrUpdateSystemTimer(item);
}
private bool ShouldStartTimer(TimerInfo item)
private static bool ShouldStartTimer(TimerInfo item)
{
if (item.Status == RecordingStatus.Completed ||
item.Status == RecordingStatus.Cancelled)

View File

@@ -1,4 +1,4 @@
using System.Net;
using System.Net;
using MediaBrowser.Common;
using MediaBrowser.Common.Net;
using MediaBrowser.Controller.LiveTv;
@@ -38,12 +38,9 @@ namespace Emby.Server.Implementations.LiveTv.Listings
_appHost = appHost;
}
private string UserAgent
{
get { return "Emby/" + _appHost.ApplicationVersion; }
}
private string UserAgent => "Emby/" + _appHost.ApplicationVersion;
private List<string> GetScheduleRequestDates(DateTime startDateUtc, DateTime endDateUtc)
private static List<string> GetScheduleRequestDates(DateTime startDateUtc, DateTime endDateUtc)
{
List<string> dates = new List<string>();
@@ -63,7 +60,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
{
if (string.IsNullOrEmpty(channelId))
{
throw new ArgumentNullException("channelId");
throw new ArgumentNullException(nameof(channelId));
}
// Normalize incoming input
@@ -189,7 +186,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
}
}
private int GetSizeOrder(ScheduleDirect.ImageData image)
private static int GetSizeOrder(ScheduleDirect.ImageData image)
{
if (!string.IsNullOrWhiteSpace(image.height))
{
@@ -202,7 +199,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
return 0;
}
private string GetChannelNumber(ScheduleDirect.Map map)
private static string GetChannelNumber(ScheduleDirect.Map map)
{
var channelNumber = map.logicalChannelNumber;
@@ -218,7 +215,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
return channelNumber.TrimStart('0');
}
private bool IsMovie(ScheduleDirect.ProgramDetails programInfo)
private static bool IsMovie(ScheduleDirect.ProgramDetails programInfo)
{
return string.Equals(programInfo.entityType, "movie", StringComparison.OrdinalIgnoreCase);
}
@@ -390,7 +387,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
return info;
}
private DateTime GetDate(string value)
private static DateTime GetDate(string value)
{
var date = DateTime.ParseExact(value, "yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'", CultureInfo.InvariantCulture);
@@ -429,7 +426,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
}
}
private double GetAspectRatio(ScheduleDirect.ImageData i)
private static double GetAspectRatio(ScheduleDirect.ImageData i)
{
int width = 0;
int height = 0;
@@ -664,7 +661,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
}
}
options.RequestHeaders["token"] = await GetToken(providerInfo, options.CancellationToken).ConfigureAwait(false);;
options.RequestHeaders["token"] = await GetToken(providerInfo, options.CancellationToken).ConfigureAwait(false);
return await Post(options, false, providerInfo).ConfigureAwait(false);
}
@@ -765,16 +762,10 @@ namespace Emby.Server.Implementations.LiveTv.Listings
}
}
public string Name
{
get { return "Schedules Direct"; }
}
public string Name => "Schedules Direct";
public static string TypeName = "SchedulesDirect";
public string Type
{
get { return TypeName; }
}
public string Type => TypeName;
private async Task<bool> HasLineup(ListingsProviderInfo info, CancellationToken cancellationToken)
{
@@ -951,7 +942,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
return null;
}
private string NormalizeName(string value)
private static string NormalizeName(string value)
{
return value.Replace(" ", string.Empty).Replace("-", string.Empty);
}

View File

@@ -36,15 +36,9 @@ namespace Jellyfin.Server.Implementations.LiveTv.Listings
_zipClient = zipClient;
}
public string Name
{
get { return "XmlTV"; }
}
public string Name => "XmlTV";
public string Type
{
get { return "xmltv"; }
}
public string Type => "xmltv";
private string GetLanguage(ListingsProviderInfo info)
{
@@ -78,7 +72,7 @@ namespace Jellyfin.Server.Implementations.LiveTv.Listings
{
CancellationToken = cancellationToken,
Url = path,
Progress = new SimpleProgress<Double>(),
Progress = new SimpleProgress<double>(),
DecompressionMethod = CompressionMethod.Gzip,
// It's going to come back gzipped regardless of this value
@@ -164,7 +158,7 @@ namespace Jellyfin.Server.Implementations.LiveTv.Listings
{
if (string.IsNullOrWhiteSpace(channelId))
{
throw new ArgumentNullException("channelId");
throw new ArgumentNullException(nameof(channelId));
}
/*
@@ -187,7 +181,7 @@ namespace Jellyfin.Server.Implementations.LiveTv.Listings
.Select(p => GetProgramInfo(p, info));
}
private ProgramInfo GetProgramInfo(XmlTvProgram program, ListingsProviderInfo info)
private static ProgramInfo GetProgramInfo(XmlTvProgram program, ListingsProviderInfo info)
{
string episodeTitle = program.Episode?.Title;
@@ -210,9 +204,9 @@ namespace Jellyfin.Server.Implementations.LiveTv.Listings
IsMovie = program.Categories.Any(c => info.MovieCategories.Contains(c, StringComparer.OrdinalIgnoreCase)),
IsNews = program.Categories.Any(c => info.NewsCategories.Contains(c, StringComparer.OrdinalIgnoreCase)),
IsSports = program.Categories.Any(c => info.SportsCategories.Contains(c, StringComparer.OrdinalIgnoreCase)),
ImageUrl = program.Icon != null && !String.IsNullOrEmpty(program.Icon.Source) ? program.Icon.Source : null,
HasImage = program.Icon != null && !String.IsNullOrEmpty(program.Icon.Source),
OfficialRating = program.Rating != null && !String.IsNullOrEmpty(program.Rating.Value) ? program.Rating.Value : null,
ImageUrl = program.Icon != null && !string.IsNullOrEmpty(program.Icon.Source) ? program.Icon.Source : null,
HasImage = program.Icon != null && !string.IsNullOrEmpty(program.Icon.Source),
OfficialRating = program.Rating != null && !string.IsNullOrEmpty(program.Rating.Value) ? program.Rating.Value : null,
CommunityRating = program.StarRating,
SeriesId = program.Episode == null ? null : program.Title.GetMD5().ToString("N")
};
@@ -246,7 +240,7 @@ namespace Jellyfin.Server.Implementations.LiveTv.Listings
}
// Construct an id from the channel and start date
programInfo.Id = String.Format("{0}_{1:O}", program.ChannelId, program.StartDate);
programInfo.Id = string.Format("{0}_{1:O}", program.ChannelId, program.StartDate);
if (programInfo.IsMovie)
{
@@ -294,7 +288,7 @@ namespace Jellyfin.Server.Implementations.LiveTv.Listings
{
Id = c.Id,
Name = c.DisplayName,
ImageUrl = c.Icon != null && !String.IsNullOrEmpty(c.Icon.Source) ? c.Icon.Source : null,
ImageUrl = c.Icon != null && !string.IsNullOrEmpty(c.Icon.Source) ? c.Icon.Source : null,
Number = string.IsNullOrWhiteSpace(c.Number) ? c.Id : c.Number
}).ToList();

View File

@@ -1,4 +1,4 @@
using MediaBrowser.Common;
using MediaBrowser.Common;
using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Dto;
@@ -321,6 +321,7 @@ namespace Emby.Server.Implementations.LiveTv
}
catch (Exception ex)
{
_logger.LogDebug(ex, "GetImageCacheTag raised an exception in LiveTvDtoService.FillImages.");
}
}
@@ -331,10 +332,10 @@ namespace Emby.Server.Implementations.LiveTv
{
try
{
dto.ParentBackdropImageTags = new string[]
{
_imageProcessor.GetImageCacheTag(program, image)
};
dto.ParentBackdropImageTags = new []
{
_imageProcessor.GetImageCacheTag(program, image)
};
dto.ParentBackdropItemId = program.Id.ToString("N");
}
catch (Exception ex)

View File

@@ -1,4 +1,4 @@
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Extensions;
using MediaBrowser.Common.Progress;
using MediaBrowser.Controller.Configuration;
@@ -104,10 +104,7 @@ namespace Emby.Server.Implementations.LiveTv
/// Gets the services.
/// </summary>
/// <value>The services.</value>
public IReadOnlyList<ILiveTvService> Services
{
get { return _services; }
}
public IReadOnlyList<ILiveTvService> Services => _services;
private LiveTvOptions GetConfiguration()
{
@@ -167,15 +164,9 @@ namespace Emby.Server.Implementations.LiveTv
});
}
public ITunerHost[] TunerHosts
{
get { return _tunerHosts; }
}
public ITunerHost[] TunerHosts => _tunerHosts;
public IListingsProvider[] ListingProviders
{
get { return _listingProviders; }
}
public IListingsProvider[] ListingProviders => _listingProviders;
public List<NameIdPair> GetTunerHostTypes()
{
@@ -323,7 +314,7 @@ namespace Emby.Server.Implementations.LiveTv
return _services.FirstOrDefault(i => string.Equals(i.Name, name, StringComparison.OrdinalIgnoreCase));
}
private void Normalize(MediaSourceInfo mediaSource, ILiveTvService service, bool isVideo)
private static void Normalize(MediaSourceInfo mediaSource, ILiveTvService service, bool isVideo)
{
// Not all of the plugins are setting this
mediaSource.IsInfiniteStream = true;
@@ -1418,6 +1409,7 @@ namespace Emby.Server.Implementations.LiveTv
if (query.IsInProgress ?? false)
{
//TODO Fix The co-variant conversion between Video[] and BaseItem[], this can generate runtime issues.
result.Items = result
.Items
.OfType<Video>()
@@ -2188,7 +2180,7 @@ namespace Emby.Server.Implementations.LiveTv
return Services.Select(GetServiceInfo).ToArray();
}
private LiveTvServiceInfo GetServiceInfo(ILiveTvService service)
private static LiveTvServiceInfo GetServiceInfo(ILiveTvService service)
{
return new LiveTvServiceInfo
{
@@ -2245,7 +2237,7 @@ namespace Emby.Server.Implementations.LiveTv
return service.ResetTuner(parts[1], cancellationToken);
}
private void RemoveFields(DtoOptions options)
private static void RemoveFields(DtoOptions options)
{
var fields = options.Fields.ToList();

View File

@@ -20,20 +20,11 @@ namespace Emby.Server.Implementations.LiveTv
_config = config;
}
public string Name
{
get { return "Refresh Guide"; }
}
public string Name => "Refresh Guide";
public string Description
{
get { return "Downloads channel information from live tv services."; }
}
public string Description => "Downloads channel information from live tv services.";
public string Category
{
get { return "Live TV"; }
}
public string Category => "Live TV";
public Task Execute(System.Threading.CancellationToken cancellationToken, IProgress<double> progress)
{
@@ -60,24 +51,12 @@ namespace Emby.Server.Implementations.LiveTv
return _config.GetConfiguration<LiveTvOptions>("livetv");
}
public bool IsHidden
{
get { return _liveTvManager.Services.Count == 1 && GetConfiguration().TunerHosts.Length == 0; }
}
public bool IsHidden => _liveTvManager.Services.Count == 1 && GetConfiguration().TunerHosts.Length == 0;
public bool IsEnabled
{
get { return true; }
}
public bool IsEnabled => true;
public bool IsLogged
{
get { return true; }
}
public bool IsLogged => true;
public string Key
{
get { return "RefreshGuide"; }
}
public string Key => "RefreshGuide";
}
}

View File

@@ -40,13 +40,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
FileSystem = fileSystem;
}
public virtual bool IsSupported
{
get
{
return true;
}
}
public virtual bool IsSupported => true;
protected abstract Task<List<ChannelInfo>> GetChannelsInternal(TunerHostInfo tuner, CancellationToken cancellationToken);
public abstract string Type { get; }
@@ -140,7 +134,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
{
if (string.IsNullOrEmpty(channelId))
{
throw new ArgumentNullException("channelId");
throw new ArgumentNullException(nameof(channelId));
}
if (IsValidChannelId(channelId))
@@ -175,7 +169,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
{
if (string.IsNullOrEmpty(channelId))
{
throw new ArgumentNullException("channelId");
throw new ArgumentNullException(nameof(channelId));
}
if (!IsValidChannelId(channelId))
@@ -228,18 +222,13 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
throw new LiveTvConflictException();
}
protected virtual string ChannelIdPrefix
{
get
{
return Type + "_";
}
}
protected virtual string ChannelIdPrefix => Type + "_";
protected virtual bool IsValidChannelId(string channelId)
{
if (string.IsNullOrEmpty(channelId))
{
throw new ArgumentNullException("channelId");
throw new ArgumentNullException(nameof(channelId));
}
return channelId.StartsWith(ChannelIdPrefix, StringComparison.OrdinalIgnoreCase);

View File

@@ -1,4 +1,4 @@
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Net;
using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Model.Dto;
@@ -42,28 +42,13 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
_environment = environment;
}
public string Name
{
get { return "HD Homerun"; }
}
public string Name => "HD Homerun";
public override string Type
{
get { return DeviceType; }
}
public override string Type => DeviceType;
public static string DeviceType
{
get { return "hdhomerun"; }
}
public static string DeviceType => "hdhomerun";
protected override string ChannelIdPrefix
{
get
{
return "hdhr_";
}
}
protected override string ChannelIdPrefix => "hdhr_";
private string GetChannelId(TunerHostInfo info, Channels i)
{
@@ -274,7 +259,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
for (int i = 0; i < model.TunerCount; ++i)
{
var name = String.Format("Tuner {0}", i + 1);
var name = string.Format("Tuner {0}", i + 1);
var currentChannel = "none"; /// @todo Get current channel and map back to Station Id
var isAvailable = await manager.CheckTunerAvailability(ipInfo, i, cancellationToken).ConfigureAwait(false);
LiveTvTunerStatus status = isAvailable ? LiveTvTunerStatus.Available : LiveTvTunerStatus.LiveTv;
@@ -325,7 +310,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
return await GetTunerInfosHttp(info, cancellationToken).ConfigureAwait(false);
}
private string GetApiUrl(TunerHostInfo info)
private static string GetApiUrl(TunerHostInfo info)
{
var url = info.Url;
@@ -359,7 +344,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
return Config.GetConfiguration<EncodingOptions>("encoding");
}
private string GetHdHrIdFromChannelId(string channelId)
private static string GetHdHrIdFromChannelId(string channelId)
{
return channelId.Split('_')[1];
}

View File

@@ -37,10 +37,10 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
{
var commands = new List<Tuple<string, string>>();
if (!String.IsNullOrEmpty(_channel))
if (!string.IsNullOrEmpty(_channel))
commands.Add(Tuple.Create("channel", _channel));
if (!String.IsNullOrEmpty(_program))
if (!string.IsNullOrEmpty(_program))
commands.Add(Tuple.Create("program", _program));
return commands;
}
@@ -61,11 +61,11 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
{
var commands = new List<Tuple<string, string>>();
if (!String.IsNullOrEmpty(_channel))
if (!string.IsNullOrEmpty(_channel))
{
if (!string.IsNullOrEmpty(_profile) && !string.Equals(_profile, "native", StringComparison.OrdinalIgnoreCase))
{
commands.Add(Tuple.Create("vchannel", String.Format("{0} transcode={1}", _channel, _profile)));
commands.Add(Tuple.Create("vchannel", string.Format("{0} transcode={1}", _channel, _profile)));
}
else
{
@@ -123,7 +123,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
}
}
private async Task<bool> CheckTunerAvailability(ISocket socket, IpAddressInfo remoteIp, int tuner, CancellationToken cancellationToken)
private static async Task<bool> CheckTunerAvailability(ISocket socket, IpAddressInfo remoteIp, int tuner, CancellationToken cancellationToken)
{
var ipEndPoint = new IpEndPointInfo(remoteIp, HdHomeRunPort);
@@ -164,7 +164,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
continue;
_activeTuner = i;
var lockKeyString = String.Format("{0:d}", lockKeyValue);
var lockKeyString = string.Format("{0:d}", lockKeyValue);
var lockkeyMsg = CreateSetMessage(i, "lockkey", lockKeyString, null);
await tcpClient.SendToAsync(lockkeyMsg, 0, lockkeyMsg.Length, ipEndPoint, cancellationToken).ConfigureAwait(false);
var response = await tcpClient.ReceiveAsync(receiveBuffer, 0, receiveBuffer.Length, cancellationToken).ConfigureAwait(false);
@@ -188,7 +188,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
}
var targetValue = String.Format("rtp://{0}:{1}", localIp, localPort);
var targetValue = string.Format("rtp://{0}:{1}", localIp, localPort);
var targetMsg = CreateSetMessage(i, "target", targetValue, lockKeyValue);
await tcpClient.SendToAsync(targetMsg, 0, targetMsg.Length, ipEndPoint, cancellationToken).ConfigureAwait(false);
@@ -262,7 +262,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
private static byte[] CreateGetMessage(int tuner, string name)
{
var byteName = Encoding.UTF8.GetBytes(String.Format("/tuner{0}/{1}\0", tuner, name));
var byteName = Encoding.UTF8.GetBytes(string.Format("/tuner{0}/{1}\0", tuner, name));
int messageLength = byteName.Length + 10; // 4 bytes for header + 4 bytes for crc + 2 bytes for tag name and length
var message = new byte[messageLength];
@@ -280,10 +280,10 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
return message;
}
private static byte[] CreateSetMessage(int tuner, String name, String value, uint? lockkey)
private static byte[] CreateSetMessage(int tuner, string name, string value, uint? lockkey)
{
var byteName = Encoding.UTF8.GetBytes(String.Format("/tuner{0}/{1}\0", tuner, name));
var byteValue = Encoding.UTF8.GetBytes(String.Format("{0}\0", value));
var byteName = Encoding.UTF8.GetBytes(string.Format("/tuner{0}/{1}\0", tuner, name));
var byteValue = Encoding.UTF8.GetBytes(string.Format("{0}\0", value));
int messageLength = byteName.Length + byteValue.Length + 12;
if (lockkey.HasValue)
@@ -360,7 +360,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
private static bool ParseReturnMessage(byte[] buf, int numBytes, out string returnVal)
{
returnVal = String.Empty;
returnVal = string.Empty;
if (numBytes < 4)
return false;
@@ -411,7 +411,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
private class HdHomerunCrc
{
private static UInt32[] crc_table = {
private static uint[] crc_table = {
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
@@ -477,7 +477,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d };
public static UInt32 GetCrc32(byte[] bytes, int numBytes)
public static uint GetCrc32(byte[] bytes, int numBytes)
{
var hash = 0xffffffff;
for (var i = 0; i < numBytes; i++)

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
@@ -38,7 +38,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
EnableStreamSharing = true;
}
private Socket CreateSocket(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)
private static Socket CreateSocket(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)
{
var socket = new Socket(addressFamily, SocketType.Stream, ProtocolType.Tcp);
@@ -144,7 +144,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
});
}
private void Resolve(TaskCompletionSource<bool> openTaskCompletionSource)
private static void Resolve(TaskCompletionSource<bool> openTaskCompletionSource)
{
Task.Run(() =>
{
@@ -204,16 +204,16 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
public override async Task<int> ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
{
if (buffer == null)
throw new ArgumentNullException("buffer");
throw new ArgumentNullException(nameof(buffer));
if (offset + count < 0)
throw new ArgumentOutOfRangeException("offset + count must not be negative", "offset+count");
throw new ArgumentOutOfRangeException(nameof(offset),"offset + count must not be negative");
if (offset + count > buffer.Length)
throw new ArgumentException("offset + count must not be greater than the length of buffer", "offset+count");
throw new ArgumentException("offset + count must not be greater than the length of buffer");
if (disposed)
throw new ObjectDisposedException(typeof(UdpClientStream).ToString());
throw new ObjectDisposedException(nameof(UdpClientStream));
// This will always receive a 1328 packet size (PacketSize + RtpHeaderSize)
// The RTP header will be stripped so see how many reads we need to make to fill the buffer.
@@ -238,16 +238,16 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
public override int Read(byte[] buffer, int offset, int count)
{
if (buffer == null)
throw new ArgumentNullException("buffer");
throw new ArgumentNullException(nameof(buffer));
if (offset + count < 0)
throw new ArgumentOutOfRangeException("offset + count must not be negative", "offset+count");
if (offset + count > buffer.Length)
throw new ArgumentException("offset + count must not be greater than the length of buffer", "offset+count");
throw new ArgumentException("offset + count must not be greater than the length of buffer");
if (disposed)
throw new ObjectDisposedException(typeof(UdpClientStream).ToString());
throw new ObjectDisposedException(nameof(UdpClientStream));
// This will always receive a 1328 packet size (PacketSize + RtpHeaderSize)
// The RTP header will be stripped so see how many reads we need to make to fill the buffer.
@@ -274,49 +274,19 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
disposed = true;
}
public override bool CanRead
{
get
{
throw new NotImplementedException();
}
}
public override bool CanRead => throw new NotImplementedException();
public override bool CanSeek
{
get
{
throw new NotImplementedException();
}
}
public override bool CanSeek => throw new NotImplementedException();
public override bool CanWrite
{
get
{
throw new NotImplementedException();
}
}
public override bool CanWrite => throw new NotImplementedException();
public override long Length
{
get
{
throw new NotImplementedException();
}
}
public override long Length => throw new NotImplementedException();
public override long Position
{
get
{
throw new NotImplementedException();
}
get => throw new NotImplementedException();
set
{
throw new NotImplementedException();
}
set => throw new NotImplementedException();
}
public override void Flush()

View File

@@ -217,13 +217,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
}
}
protected virtual int EmptyReadLimit
{
get
{
return 1000;
}
}
protected virtual int EmptyReadLimit => 1000;
private void TrySeek(FileStream stream, long offset)
{

View File

@@ -39,15 +39,9 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
_mediaSourceManager = mediaSourceManager;
}
public override string Type
{
get { return "m3u"; }
}
public override string Type => "m3u";
public virtual string Name
{
get { return "M3U Tuner"; }
}
public virtual string Name => "M3U Tuner";
private string GetFullChannelIdPrefix(TunerHostInfo info)
{

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
@@ -251,7 +251,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
return numberString;
}
private bool IsValidChannelNumber(string numberString)
private static bool IsValidChannelNumber(string numberString)
{
if (string.IsNullOrWhiteSpace(numberString) ||
string.Equals(numberString, "-1", StringComparison.OrdinalIgnoreCase) ||
@@ -269,7 +269,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
return true;
}
private string GetChannelName(string extInf, Dictionary<string, string> attributes)
private static string GetChannelName(string extInf, Dictionary<string, string> attributes)
{
var nameParts = extInf.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
var nameInExtInf = nameParts.Length > 1 ? nameParts.Last().Trim() : null;
@@ -314,7 +314,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
return name;
}
private Dictionary<string, string> ParseExtInf(string line, out string remaining)
private static Dictionary<string, string> ParseExtInf(string line, out string remaining)
{
var dict = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);

View File

@@ -1,4 +1,4 @@
using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.Extensions;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Globalization;
@@ -165,13 +165,7 @@ namespace Emby.Server.Implementations.Localization
/// Gets the localization path.
/// </summary>
/// <value>The localization path.</value>
public string LocalizationPath
{
get
{
return Path.Combine(_configurationManager.ApplicationPaths.ProgramDataPath, "localization");
}
}
public string LocalizationPath => Path.Combine(_configurationManager.ApplicationPaths.ProgramDataPath, "localization");
public string RemoveDiacritics(string text)
{
@@ -357,7 +351,7 @@ namespace Emby.Server.Implementations.Localization
{
if (string.IsNullOrEmpty(rating))
{
throw new ArgumentNullException("rating");
throw new ArgumentNullException(nameof(rating));
}
if (_unratedValues.Contains(rating, StringComparer.OrdinalIgnoreCase))
@@ -452,7 +446,7 @@ namespace Emby.Server.Implementations.Localization
{
if (string.IsNullOrEmpty(culture))
{
throw new ArgumentNullException("culture");
throw new ArgumentNullException(nameof(culture));
}
const string prefix = "Core";
@@ -465,7 +459,7 @@ namespace Emby.Server.Implementations.Localization
{
if (string.IsNullOrEmpty(culture))
{
throw new ArgumentNullException("culture");
throw new ArgumentNullException(nameof(culture));
}
var dictionary = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
@@ -494,7 +488,7 @@ namespace Emby.Server.Implementations.Localization
}
}
private string GetResourceFilename(string culture)
private static string GetResourceFilename(string culture)
{
var parts = culture.Split('-');

View File

@@ -12,13 +12,13 @@ namespace Emby.Server.Implementations.Localization
{
if (text == null)
{
throw new ArgumentNullException("text");
throw new ArgumentNullException(nameof(text));
}
var chars = Normalize(text, NormalizationForm.FormD)
.Where(ch => CharUnicodeInfo.GetUnicodeCategory(ch) != UnicodeCategory.NonSpacingMark);
return Normalize(String.Concat(chars), NormalizationForm.FormC);
return Normalize(string.Concat(chars), NormalizationForm.FormC);
}
private static string Normalize(string text, NormalizationForm form, bool stripStringOnFailure = true)

View File

@@ -1,4 +1,4 @@
using MediaBrowser.Controller.Chapters;
using MediaBrowser.Controller.Chapters;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;
@@ -46,7 +46,7 @@ namespace Emby.Server.Implementations.MediaEncoder
/// Gets the chapter images data path.
/// </summary>
/// <value>The chapter images data path.</value>
private string GetChapterImagesPath(BaseItem item)
private static string GetChapterImagesPath(BaseItem item)
{
return Path.Combine(item.GetInternalMetadataPath(), "chapters");
}
@@ -202,7 +202,7 @@ namespace Emby.Server.Implementations.MediaEncoder
return Path.Combine(GetChapterImagesPath(video), filename);
}
private List<string> GetSavedChapterImages(Video video, IDirectoryService directoryService)
private static List<string> GetSavedChapterImages(Video video, IDirectoryService directoryService)
{
var path = GetChapterImagesPath(video);

View File

@@ -1,4 +1,4 @@
using System;
using System;
namespace Emby.Server.Implementations.Net
{
@@ -16,15 +16,17 @@ namespace Emby.Server.Implementations.Net
/// <param name="disposing">True if managed objects should be disposed, if false, only unmanaged resources should be released.</param>
protected abstract void Dispose(bool disposing);
//TODO Remove and reimplement using the IsDisposed property directly.
/// <summary>
/// Throws and <see cref="System.ObjectDisposedException"/> if the <see cref="IsDisposed"/> property is true.
/// Throws an <see cref="System.ObjectDisposedException"/> if the <see cref="IsDisposed"/> property is true.
/// </summary>
/// <seealso cref="IsDisposed"/>
/// <exception cref="System.ObjectDisposedException">Thrown if the <see cref="IsDisposed"/> property is true.</exception>
/// <seealso cref="Dispose()"/>
protected virtual void ThrowIfDisposed()
{
if (this.IsDisposed) throw new ObjectDisposedException(this.GetType().FullName);
if (IsDisposed) throw new ObjectDisposedException(GetType().Name);
}
#endregion

View File

@@ -23,7 +23,7 @@ namespace Emby.Server.Implementations.Net
{
if (logger == null)
{
throw new ArgumentNullException("logger");
throw new ArgumentNullException(nameof(logger));
}
_logger = logger;
@@ -31,7 +31,7 @@ namespace Emby.Server.Implementations.Net
public ISocket CreateTcpSocket(IpAddressInfo remoteAddress, int remotePort)
{
if (remotePort < 0) throw new ArgumentException("remotePort cannot be less than zero.", "remotePort");
if (remotePort < 0) throw new ArgumentException("remotePort cannot be less than zero.", nameof(remotePort));
var addressFamily = remoteAddress.AddressFamily == IpAddressFamily.InterNetwork
? AddressFamily.InterNetwork
@@ -67,7 +67,7 @@ namespace Emby.Server.Implementations.Net
/// <param name="localPort">An integer specifying the local port to bind the acceptSocket to.</param>
public ISocket CreateUdpSocket(int localPort)
{
if (localPort < 0) throw new ArgumentException("localPort cannot be less than zero.", "localPort");
if (localPort < 0) throw new ArgumentException("localPort cannot be less than zero.", nameof(localPort));
var retVal = new Socket(AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Dgram, System.Net.Sockets.ProtocolType.Udp);
try
@@ -86,7 +86,7 @@ namespace Emby.Server.Implementations.Net
public ISocket CreateUdpBroadcastSocket(int localPort)
{
if (localPort < 0) throw new ArgumentException("localPort cannot be less than zero.", "localPort");
if (localPort < 0) throw new ArgumentException("localPort cannot be less than zero.", nameof(localPort));
var retVal = new Socket(AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Dgram, System.Net.Sockets.ProtocolType.Udp);
try
@@ -111,7 +111,7 @@ namespace Emby.Server.Implementations.Net
/// <returns>An implementation of the <see cref="ISocket"/> interface used by RSSDP components to perform acceptSocket operations.</returns>
public ISocket CreateSsdpUdpSocket(IpAddressInfo localIpAddress, int localPort)
{
if (localPort < 0) throw new ArgumentException("localPort cannot be less than zero.", "localPort");
if (localPort < 0) throw new ArgumentException("localPort cannot be less than zero.", nameof(localPort));
var retVal = new Socket(AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Dgram, System.Net.Sockets.ProtocolType.Udp);
try
@@ -142,10 +142,10 @@ namespace Emby.Server.Implementations.Net
/// <returns></returns>
public ISocket CreateUdpMulticastSocket(string ipAddress, int multicastTimeToLive, int localPort)
{
if (ipAddress == null) throw new ArgumentNullException("ipAddress");
if (ipAddress.Length == 0) throw new ArgumentException("ipAddress cannot be an empty string.", "ipAddress");
if (multicastTimeToLive <= 0) throw new ArgumentException("multicastTimeToLive cannot be zero or less.", "multicastTimeToLive");
if (localPort < 0) throw new ArgumentException("localPort cannot be less than zero.", "localPort");
if (ipAddress == null) throw new ArgumentNullException(nameof(ipAddress));
if (ipAddress.Length == 0) throw new ArgumentException("ipAddress cannot be an empty string.", nameof(ipAddress));
if (multicastTimeToLive <= 0) throw new ArgumentException("multicastTimeToLive cannot be zero or less.", nameof(multicastTimeToLive));
if (localPort < 0) throw new ArgumentException("localPort cannot be less than zero.", nameof(localPort));
var retVal = new Socket(AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Dgram, System.Net.Sockets.ProtocolType.Udp);
@@ -212,26 +212,18 @@ namespace Emby.Server.Implementations.Net
{
}
public override bool CanRead
{
get { return true; }
}
public override bool CanSeek
{
get { return false; }
}
public override bool CanWrite
{
get { return true; }
}
public override long Length
{
get { throw new NotImplementedException(); }
}
public override bool CanRead => true;
public override bool CanSeek => false;
public override bool CanWrite => true;
public override long Length => throw new NotImplementedException();
public override long Position
{
get { throw new NotImplementedException(); }
set { throw new NotImplementedException(); }
get => throw new NotImplementedException();
set => throw new NotImplementedException();
}
public override void Write(byte[] buffer, int offset, int count)

View File

@@ -16,10 +16,7 @@ namespace Emby.Server.Implementations.Net
private Socket _Socket;
private int _LocalPort;
public Socket Socket
{
get { return _Socket; }
}
public Socket Socket => _Socket;
private readonly SocketAsyncEventArgs _receiveSocketAsyncEventArgs = new SocketAsyncEventArgs()
{
@@ -36,7 +33,7 @@ namespace Emby.Server.Implementations.Net
public UdpSocket(Socket socket, int localPort, IPAddress ip)
{
if (socket == null) throw new ArgumentNullException("socket");
if (socket == null) throw new ArgumentNullException(nameof(socket));
_Socket = socket;
_LocalPort = localPort;
@@ -102,7 +99,7 @@ namespace Emby.Server.Implementations.Net
public UdpSocket(Socket socket, IpEndPointInfo endPoint)
{
if (socket == null) throw new ArgumentNullException("socket");
if (socket == null) throw new ArgumentNullException(nameof(socket));
_Socket = socket;
_Socket.Connect(NetworkManager.ToIPEndPoint(endPoint));

View File

@@ -19,13 +19,7 @@ namespace System.Net
#region Count, Array, Enumerator
public BigInteger Count
{
get
{
return this._ipnetwork.Total;
}
}
public BigInteger Count => this._ipnetwork.Total;
public IPAddress this[BigInteger i]
{
@@ -33,7 +27,7 @@ namespace System.Net
{
if (i >= this.Count)
{
throw new ArgumentOutOfRangeException("i");
throw new ArgumentOutOfRangeException(nameof(i));
}
byte width = this._ipnetwork.AddressFamily == Sockets.AddressFamily.InterNetwork ? (byte)32 : (byte)128;
IPNetworkCollection ipn = this._ipnetwork.Subnet(width);
@@ -57,10 +51,7 @@ namespace System.Net
#region IEnumerator<IPNetwork> Members
public IPAddress Current
{
get { return this[this._enumerator]; }
}
public IPAddress Current => this[this._enumerator];
#endregion
@@ -76,10 +67,7 @@ namespace System.Net
#region IEnumerator Members
object IEnumerator.Current
{
get { return this.Current; }
}
object IEnumerator.Current => this.Current;
public bool MoveNext()
{

View File

@@ -41,44 +41,19 @@ namespace System.Net
/// <summary>
/// Network address
/// </summary>
public IPAddress Network
{
get
{
return IPNetwork.ToIPAddress(this._network, this._family);
}
}
public IPAddress Network => IPNetwork.ToIPAddress(this._network, this._family);
/// <summary>
/// Address Family
/// </summary>
public AddressFamily AddressFamily
{
get
{
return this._family;
}
}
public AddressFamily AddressFamily => this._family;
private BigInteger _netmask
{
get
{
return IPNetwork.ToUint(this._cidr, this._family);
}
}
private BigInteger _netmask => IPNetwork.ToUint(this._cidr, this._family);
/// <summary>
/// Netmask
/// </summary>
public IPAddress Netmask
{
get
{
return IPNetwork.ToIPAddress(this._netmask, this._family);
}
}
public IPAddress Netmask => IPNetwork.ToIPAddress(this._netmask, this._family);
private BigInteger _broadcast
{
@@ -171,13 +146,7 @@ namespace System.Net
/// <summary>
/// The CIDR netmask notation
/// </summary>
public byte Cidr
{
get
{
return this._cidr;
}
}
public byte Cidr => this._cidr;
#endregion
@@ -195,7 +164,7 @@ namespace System.Net
int maxCidr = family == Sockets.AddressFamily.InterNetwork ? 32 : 128;
if (cidr > maxCidr)
{
throw new ArgumentOutOfRangeException("cidr");
throw new ArgumentOutOfRangeException(nameof(cidr));
}
this._ipaddress = ipaddress;
@@ -427,7 +396,7 @@ namespace System.Net
{
if (tryParse == false)
{
throw new ArgumentNullException("ipaddress");
throw new ArgumentNullException(nameof(ipaddress));
}
ipnetwork = null;
return;
@@ -437,7 +406,7 @@ namespace System.Net
{
if (tryParse == false)
{
throw new ArgumentNullException("netmask");
throw new ArgumentNullException(nameof(netmask));
}
ipnetwork = null;
return;
@@ -477,7 +446,7 @@ namespace System.Net
{
if (tryParse == false)
{
throw new ArgumentNullException("network");
throw new ArgumentNullException(nameof(network));
}
ipnetwork = null;
return;
@@ -538,7 +507,7 @@ namespace System.Net
{
if (tryParse == false)
{
throw new ArgumentNullException("ipaddress");
throw new ArgumentNullException(nameof(ipaddress));
}
ipnetwork = null;
return;
@@ -548,7 +517,7 @@ namespace System.Net
{
if (tryParse == false)
{
throw new ArgumentNullException("netmask");
throw new ArgumentNullException(nameof(netmask));
}
ipnetwork = null;
return;
@@ -596,7 +565,7 @@ namespace System.Net
{
if (tryParse == false)
{
throw new ArgumentNullException("ipaddress");
throw new ArgumentNullException(nameof(ipaddress));
}
ipnetwork = null;
return;
@@ -680,7 +649,7 @@ namespace System.Net
{
if (tryParse == false)
{
throw new ArgumentNullException("ipaddress");
throw new ArgumentNullException(nameof(ipaddress));
}
uintIpAddress = null;
return;
@@ -751,7 +720,7 @@ namespace System.Net
{
if (tryParse == false)
{
throw new ArgumentOutOfRangeException("cidr");
throw new ArgumentOutOfRangeException(nameof(cidr));
}
uintNetmask = null;
return;
@@ -761,7 +730,7 @@ namespace System.Net
{
if (tryParse == false)
{
throw new ArgumentOutOfRangeException("cidr");
throw new ArgumentOutOfRangeException(nameof(cidr));
}
uintNetmask = null;
return;
@@ -872,7 +841,7 @@ namespace System.Net
{
if (tryParse == false)
{
throw new ArgumentNullException("netmask");
throw new ArgumentNullException(nameof(netmask));
}
cidr = null;
return;
@@ -976,7 +945,7 @@ namespace System.Net
{
if (tryParse == false)
{
throw new ArgumentOutOfRangeException("cidr");
throw new ArgumentOutOfRangeException(nameof(cidr));
}
netmask = null;
return;
@@ -1042,7 +1011,7 @@ namespace System.Net
if (netmask == null)
{
throw new ArgumentNullException("netmask");
throw new ArgumentNullException(nameof(netmask));
}
BigInteger uintNetmask = IPNetwork.ToBigInteger(netmask);
bool valid = IPNetwork.InternalValidNetmask(uintNetmask, netmask.AddressFamily);
@@ -1145,7 +1114,7 @@ namespace System.Net
if (ipaddress == null)
{
throw new ArgumentNullException("ipaddress");
throw new ArgumentNullException(nameof(ipaddress));
}
if (AddressFamily != ipaddress.AddressFamily)
@@ -1174,7 +1143,7 @@ namespace System.Net
if (network2 == null)
{
throw new ArgumentNullException("network2");
throw new ArgumentNullException(nameof(network2));
}
BigInteger uintNetwork = _network;
@@ -1203,7 +1172,7 @@ namespace System.Net
if (network2 == null)
{
throw new ArgumentNullException("network2");
throw new ArgumentNullException(nameof(network2));
}
BigInteger uintNetwork = _network;
@@ -1242,37 +1211,19 @@ namespace System.Net
/// 10.0.0.0/8
/// </summary>
/// <returns></returns>
public static IPNetwork IANA_ABLK_RESERVED1
{
get
{
return _iana_ablock_reserved.Value;
}
}
public static IPNetwork IANA_ABLK_RESERVED1 => _iana_ablock_reserved.Value;
/// <summary>
/// 172.12.0.0/12
/// </summary>
/// <returns></returns>
public static IPNetwork IANA_BBLK_RESERVED1
{
get
{
return _iana_bblock_reserved.Value;
}
}
public static IPNetwork IANA_BBLK_RESERVED1 => _iana_bblock_reserved.Value;
/// <summary>
/// 192.168.0.0/16
/// </summary>
/// <returns></returns>
public static IPNetwork IANA_CBLK_RESERVED1
{
get
{
return _iana_cblock_reserved.Value;
}
}
public static IPNetwork IANA_CBLK_RESERVED1 => _iana_cblock_reserved.Value;
/// <summary>
/// return true if ipaddress is contained in
@@ -1285,7 +1236,7 @@ namespace System.Net
if (ipaddress == null)
{
throw new ArgumentNullException("ipaddress");
throw new ArgumentNullException(nameof(ipaddress));
}
return IPNetwork.IANA_ABLK_RESERVED1.Contains(ipaddress)
@@ -1356,7 +1307,7 @@ namespace System.Net
{
if (trySubnet == false)
{
throw new ArgumentNullException("network");
throw new ArgumentNullException(nameof(network));
}
ipnetworkCollection = null;
return;
@@ -1367,7 +1318,7 @@ namespace System.Net
{
if (trySubnet == false)
{
throw new ArgumentOutOfRangeException("cidr");
throw new ArgumentOutOfRangeException(nameof(cidr));
}
ipnetworkCollection = null;
return;
@@ -1438,7 +1389,7 @@ namespace System.Net
{
if (trySupernet == false)
{
throw new ArgumentNullException("network1");
throw new ArgumentNullException(nameof(network1));
}
supernet = null;
return;
@@ -1448,7 +1399,7 @@ namespace System.Net
{
if (trySupernet == false)
{
throw new ArgumentNullException("network2");
throw new ArgumentNullException(nameof(network2));
}
supernet = null;
return;
@@ -1492,7 +1443,7 @@ namespace System.Net
{
if (trySupernet == false)
{
throw new ArgumentOutOfRangeException("network");
throw new ArgumentOutOfRangeException(nameof(trySupernet), "TrySupernet was false while the first and last networks are not adjacent.");
}
supernet = null;
return;
@@ -1536,8 +1487,7 @@ namespace System.Net
/// 192.168.0.0/24 + 192.168.1.0/24 = 192.168.0.0/23
/// 192.168.0.0/24 + 192.168.1.0/24 + 192.168.2.0/24 + 192.168.3.0/24 = 192.168.0.0/22
/// </summary>
/// <param name="ipnetworks"></param>
/// <param name="supernet"></param>
/// <param name="ipnetworks">The IP networks</param>
/// <returns></returns>
public static IPNetwork[] Supernet(IPNetwork[] ipnetworks)
{
@@ -1573,7 +1523,7 @@ namespace System.Net
{
if (trySupernet == false)
{
throw new ArgumentNullException("ipnetworks");
throw new ArgumentNullException(nameof(ipnetworks));
}
supernet = null;
return false;
@@ -1684,12 +1634,12 @@ namespace System.Net
if (string.IsNullOrEmpty(start))
{
throw new ArgumentNullException("start");
throw new ArgumentNullException(nameof(start));
}
if (string.IsNullOrEmpty(end))
{
throw new ArgumentNullException("end");
throw new ArgumentNullException(nameof(end));
}
IPAddress startIP;
@@ -1750,7 +1700,7 @@ namespace System.Net
{
if (tryWide == false)
{
throw new ArgumentNullException("ipnetworks");
throw new ArgumentNullException(nameof(ipnetworks));
}
ipnetwork = null;
return;
@@ -1973,7 +1923,7 @@ namespace System.Net
#region IComparable<IPNetwork> Members
public static Int32 Compare(IPNetwork left, IPNetwork right)
public static int Compare(IPNetwork left, IPNetwork right)
{
// two null IPNetworks are equal
if (ReferenceEquals(left, null) && ReferenceEquals(right, null)) return 0;
@@ -1994,12 +1944,12 @@ namespace System.Net
return result;
}
public Int32 CompareTo(IPNetwork other)
public int CompareTo(IPNetwork other)
{
return Compare(this, other);
}
public Int32 CompareTo(Object obj)
public int CompareTo(object obj)
{
// null is at less
if (obj == null) return 1;
@@ -2012,7 +1962,7 @@ namespace System.Net
{
throw new ArgumentException(
"The supplied parameter is an invalid type. Please supply an IPNetwork type.",
"obj");
nameof(obj));
}
// perform the comparision
@@ -2023,17 +1973,17 @@ namespace System.Net
#region IEquatable<IPNetwork> Members
public static Boolean Equals(IPNetwork left, IPNetwork right)
public static bool Equals(IPNetwork left, IPNetwork right)
{
return Compare(left, right) == 0;
}
public Boolean Equals(IPNetwork other)
public bool Equals(IPNetwork other)
{
return Equals(this, other);
}
public override Boolean Equals(Object obj)
public override bool Equals(object obj)
{
return Equals(this, obj as IPNetwork);
}
@@ -2042,22 +1992,22 @@ namespace System.Net
#region Operators
public static Boolean operator ==(IPNetwork left, IPNetwork right)
public static bool operator ==(IPNetwork left, IPNetwork right)
{
return Equals(left, right);
}
public static Boolean operator !=(IPNetwork left, IPNetwork right)
public static bool operator !=(IPNetwork left, IPNetwork right)
{
return !Equals(left, right);
}
public static Boolean operator <(IPNetwork left, IPNetwork right)
public static bool operator <(IPNetwork left, IPNetwork right)
{
return Compare(left, right) < 0;
}
public static Boolean operator >(IPNetwork left, IPNetwork right)
public static bool operator >(IPNetwork left, IPNetwork right)
{
return Compare(left, right) > 0;
}

View File

@@ -11,22 +11,12 @@ namespace System.Net
private byte _cidrSubnet;
private IPNetwork _ipnetwork;
private byte _cidr
{
get { return this._ipnetwork.Cidr; }
}
private BigInteger _broadcast
{
get { return IPNetwork.ToBigInteger(this._ipnetwork.Broadcast); }
}
private BigInteger _lastUsable
{
get { return IPNetwork.ToBigInteger(this._ipnetwork.LastUsable); }
}
private BigInteger _network
{
get { return IPNetwork.ToBigInteger(this._ipnetwork.Network); }
}
private byte _cidr => this._ipnetwork.Cidr;
private BigInteger _broadcast => IPNetwork.ToBigInteger(this._ipnetwork.Broadcast);
private BigInteger _lastUsable => IPNetwork.ToBigInteger(this._ipnetwork.LastUsable);
private BigInteger _network => IPNetwork.ToBigInteger(this._ipnetwork.Network);
#if TRAVISCI
public
#else
@@ -38,7 +28,7 @@ namespace System.Net
int maxCidr = ipnetwork.AddressFamily == Sockets.AddressFamily.InterNetwork ? 32 : 128;
if (cidrSubnet > maxCidr)
{
throw new ArgumentOutOfRangeException("cidrSubnet");
throw new ArgumentOutOfRangeException(nameof(cidrSubnet));
}
if (cidrSubnet < ipnetwork.Cidr)
@@ -68,7 +58,7 @@ namespace System.Net
{
if (i >= this.Count)
{
throw new ArgumentOutOfRangeException("i");
throw new ArgumentOutOfRangeException(nameof(i));
}
BigInteger last = this._ipnetwork.AddressFamily == Sockets.AddressFamily.InterNetworkV6
@@ -96,10 +86,7 @@ namespace System.Net
#region IEnumerator<IPNetwork> Members
public IPNetwork Current
{
get { return this[this._enumerator]; }
}
public IPNetwork Current => this[this._enumerator];
#endregion
@@ -115,10 +102,7 @@ namespace System.Net
#region IEnumerator Members
object IEnumerator.Current
{
get { return this.Current; }
}
object IEnumerator.Current => this.Current;
public bool MoveNext()
{

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
@@ -114,7 +114,7 @@ namespace Emby.Server.Implementations.Networking
.ToList();
}
private bool FilterIpAddress(IPAddress address)
private static bool FilterIpAddress(IPAddress address)
{
var addressString = address.ToString();
@@ -228,7 +228,7 @@ namespace Emby.Server.Implementations.Networking
subnet_Test++;
}
var subnet_Match = String.Join(".", unicastIPAddressInformation.Address.ToString().Split('.').Take(subnet_Test).ToArray());
var subnet_Match = string.Join(".", unicastIPAddressInformation.Address.ToString().Split('.').Take(subnet_Test).ToArray());
// TODO: Is this check necessary?
if (adapter.OperationalStatus == OperationalStatus.Up)
@@ -245,7 +245,7 @@ namespace Emby.Server.Implementations.Networking
}
}
private bool Is172AddressPrivate(string endpoint)
private static bool Is172AddressPrivate(string endpoint)
{
for (var i = 16; i <= 31; i++)
{
@@ -268,7 +268,7 @@ namespace Emby.Server.Implementations.Networking
return IsAddressInSubnets(IPAddress.Parse(addressString), addressString, subnets);
}
private bool IsAddressInSubnets(IPAddress address, string addressString, string[] subnets)
private static bool IsAddressInSubnets(IPAddress address, string addressString, string[] subnets)
{
foreach (var subnet in subnets)
{
@@ -296,7 +296,7 @@ namespace Emby.Server.Implementations.Networking
{
if (string.IsNullOrEmpty(endpoint))
{
throw new ArgumentNullException("endpoint");
throw new ArgumentNullException(nameof(endpoint));
}
IPAddress address;
@@ -380,7 +380,7 @@ namespace Emby.Server.Implementations.Networking
return false;
}
private Task<IPAddress[]> GetIpAddresses(string hostName)
private static Task<IPAddress[]> GetIpAddresses(string hostName)
{
return Dns.GetHostAddressesAsync(hostName);
}
@@ -436,7 +436,7 @@ namespace Emby.Server.Implementations.Networking
.ToList();
}
private async Task<IEnumerable<IPAddress>> GetLocalIpAddressesFallback()
private static async Task<IEnumerable<IPAddress>> GetLocalIpAddressesFallback()
{
var host = await Dns.GetHostEntryAsync(Dns.GetHostName()).ConfigureAwait(false);
@@ -480,7 +480,7 @@ namespace Emby.Server.Implementations.Networking
return _macAddresses;
}
private List<string> GetMacAddressesInternal()
private static List<string> GetMacAddressesInternal()
{
return NetworkInterface.GetAllNetworkInterfaces()
.Where(i => i.NetworkInterfaceType != NetworkInterfaceType.Loopback)
@@ -497,8 +497,9 @@ namespace Emby.Server.Implementations.Networking
return physicalAddress.ToString();
}
catch (Exception ex)
catch (Exception)
{
//TODO Log exception.
return null;
}
})
@@ -526,7 +527,7 @@ namespace Emby.Server.Implementations.Networking
/// <exception cref="System.FormatException"></exception>
private static async Task<IPEndPoint> Parse(string endpointstring, int defaultport)
{
if (String.IsNullOrEmpty(endpointstring)
if (string.IsNullOrEmpty(endpointstring)
|| endpointstring.Trim().Length == 0)
{
throw new ArgumentException("Endpoint descriptor may not be empty.");
@@ -536,7 +537,7 @@ namespace Emby.Server.Implementations.Networking
(defaultport < IPEndPoint.MinPort
|| defaultport > IPEndPoint.MaxPort))
{
throw new ArgumentException(String.Format("Invalid default port '{0}'", defaultport));
throw new ArgumentException(string.Format("Invalid default port '{0}'", defaultport));
}
string[] values = endpointstring.Split(new char[] { ':' });
@@ -557,7 +558,7 @@ namespace Emby.Server.Implementations.Networking
//could [a:b:c]:d
if (values[0].StartsWith("[") && values[values.Length - 2].EndsWith("]"))
{
string ipaddressstring = String.Join(":", values.Take(values.Length - 1).ToArray());
string ipaddressstring = string.Join(":", values.Take(values.Length - 1).ToArray());
ipaddy = IPAddress.Parse(ipaddressstring);
port = GetPort(values[values.Length - 1]);
}
@@ -569,11 +570,11 @@ namespace Emby.Server.Implementations.Networking
}
else
{
throw new FormatException(String.Format("Invalid endpoint ipaddress '{0}'", endpointstring));
throw new FormatException(string.Format("Invalid endpoint ipaddress '{0}'", endpointstring));
}
if (port == -1)
throw new ArgumentException(String.Format("No port specified: '{0}'", endpointstring));
throw new ArgumentException(string.Format("No port specified: '{0}'", endpointstring));
return new IPEndPoint(ipaddy, port);
}
@@ -590,11 +591,11 @@ namespace Emby.Server.Implementations.Networking
{
int port;
if (!Int32.TryParse(p, out port)
if (!int.TryParse(p, out port)
|| port < IPEndPoint.MinPort
|| port > IPEndPoint.MaxPort)
{
throw new FormatException(String.Format("Invalid end point port '{0}'", p));
throw new FormatException(string.Format("Invalid end point port '{0}'", p));
}
return port;
@@ -611,7 +612,7 @@ namespace Emby.Server.Implementations.Networking
var hosts = await Dns.GetHostAddressesAsync(p).ConfigureAwait(false);
if (hosts == null || hosts.Length == 0)
throw new ArgumentException(String.Format("Host not found: {0}", p));
throw new ArgumentException(string.Format("Host not found: {0}", p));
return hosts[0];
}

View File

@@ -25,28 +25,13 @@ namespace Emby.Server.Implementations.Playlists
}
[IgnoreDataMember]
public override bool IsHidden
{
get
{
return true;
}
}
public override bool IsHidden => true;
[IgnoreDataMember]
public override bool SupportsInheritedParentImages
{
get
{
return false;
}
}
public override bool SupportsInheritedParentImages => false;
[IgnoreDataMember]
public override string CollectionType
{
get { return MediaBrowser.Model.Entities.CollectionType.Playlists; }
}
public override string CollectionType => MediaBrowser.Model.Entities.CollectionType.Playlists;
protected override QueryResult<BaseItem> GetItemsInternal(InternalItemsQuery query)
{

View File

@@ -1,4 +1,4 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Playlists;
@@ -455,10 +455,17 @@ namespace Emby.Server.Implementations.Playlists
return MakeRelativePath(_fileSystem.GetDirectoryName(playlistPath), itemPath);
}
private static String MakeRelativePath(string folderPath, string fileAbsolutePath)
private static string MakeRelativePath(string folderPath, string fileAbsolutePath)
{
if (String.IsNullOrEmpty(folderPath)) throw new ArgumentNullException("folderPath");
if (String.IsNullOrEmpty(fileAbsolutePath)) throw new ArgumentNullException("filePath");
if (string.IsNullOrEmpty(folderPath))
{
throw new ArgumentException("Folder path was null or empty.",nameof(folderPath));
}
if (string.IsNullOrEmpty(fileAbsolutePath))
{
throw new ArgumentException("File absolute path was null or empty.", nameof(fileAbsolutePath));
}
if (!folderPath.EndsWith(Path.DirectorySeparatorChar.ToString()))
{
@@ -471,7 +478,7 @@ namespace Emby.Server.Implementations.Playlists
if (folderUri.Scheme != fileAbsoluteUri.Scheme) { return fileAbsolutePath; } // path can't be made relative.
Uri relativeUri = folderUri.MakeRelativeUri(fileAbsoluteUri);
String relativePath = Uri.UnescapeDataString(relativeUri.ToString());
string relativePath = Uri.UnescapeDataString(relativeUri.ToString());
if (fileAbsoluteUri.Scheme.Equals("file", StringComparison.CurrentCultureIgnoreCase))
{

View File

@@ -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,20 +8,14 @@ using System.Runtime.InteropServices;
[assembly: AssemblyTitle("Emby.Server.Implementations")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Emby.Server.Implementations")]
[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.*")]
// 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)]

View File

@@ -70,10 +70,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
};
}
public string Key
{
get { return "RefreshChapterImages"; }
}
public string Key => "RefreshChapterImages";
/// <summary>
/// Returns the task to be executed
@@ -156,6 +153,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
}
catch (ObjectDisposedException)
{
//TODO Investigate and properly fix.
break;
}
}
@@ -165,33 +163,18 @@ namespace Emby.Server.Implementations.ScheduledTasks
/// Gets the name of the task
/// </summary>
/// <value>The name.</value>
public string Name
{
get
{
return "Chapter image extraction";
}
}
public string Name => "Chapter image extraction";
/// <summary>
/// Gets the description.
/// </summary>
/// <value>The description.</value>
public string Description
{
get { return "Creates thumbnails for videos that have chapters."; }
}
public string Description => "Creates thumbnails for videos that have chapters.";
/// <summary>
/// Gets the category.
/// </summary>
/// <value>The category.</value>
public string Category
{
get
{
return "Library";
}
}
public string Category => "Library";
}
}

View File

@@ -1,4 +1,4 @@
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Library;
using System;
using System.Collections.Generic;
using System.Threading;
@@ -24,6 +24,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
/// Initializes a new instance of the <see cref="PeopleValidationTask" /> class.
/// </summary>
/// <param name="libraryManager">The library manager.</param>
/// <param name="appHost">The server application host</param>
public PeopleValidationTask(ILibraryManager libraryManager, IServerApplicationHost appHost)
{
_libraryManager = libraryManager;
@@ -46,10 +47,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
};
}
public string Key
{
get { return "RefreshPeople"; }
}
public string Key => "RefreshPeople";
/// <summary>
/// Returns the task to be executed
@@ -66,30 +64,18 @@ namespace Emby.Server.Implementations.ScheduledTasks
/// Gets the name of the task
/// </summary>
/// <value>The name.</value>
public string Name
{
get { return "Refresh people"; }
}
public string Name => "Refresh people";
/// <summary>
/// Gets the description.
/// </summary>
/// <value>The description.</value>
public string Description
{
get { return "Updates metadata for actors and directors in your media library."; }
}
public string Description => "Updates metadata for actors and directors in your media library.";
/// <summary>
/// Gets the category.
/// </summary>
/// <value>The category.</value>
public string Category
{
get
{
return "Library";
}
}
public string Category => "Library";
}
}

View File

@@ -62,35 +62,20 @@ namespace Emby.Server.Implementations.ScheduledTasks
/// Gets the name.
/// </summary>
/// <value>The name.</value>
public string Name
{
get { return "Scan media library"; }
}
public string Name => "Scan media library";
/// <summary>
/// Gets the description.
/// </summary>
/// <value>The description.</value>
public string Description
{
get { return "Scans your media library and refreshes metatata based on configuration."; }
}
public string Description => "Scans your media library and refreshes metatata based on configuration.";
/// <summary>
/// Gets the category.
/// </summary>
/// <value>The category.</value>
public string Category
{
get
{
return "Library";
}
}
public string Category => "Library";
public string Key
{
get { return "RefreshLibrary"; }
}
public string Key => "RefreshLibrary";
}
}

View File

@@ -78,23 +78,23 @@ namespace Emby.Server.Implementations.ScheduledTasks
{
if (scheduledTask == null)
{
throw new ArgumentNullException("scheduledTask");
throw new ArgumentNullException(nameof(scheduledTask));
}
if (applicationPaths == null)
{
throw new ArgumentNullException("applicationPaths");
throw new ArgumentNullException(nameof(applicationPaths));
}
if (taskManager == null)
{
throw new ArgumentNullException("taskManager");
throw new ArgumentNullException(nameof(taskManager));
}
if (jsonSerializer == null)
{
throw new ArgumentNullException("jsonSerializer");
throw new ArgumentNullException(nameof(jsonSerializer));
}
if (logger == null)
{
throw new ArgumentNullException("logger");
throw new ArgumentNullException(nameof(logger));
}
ScheduledTask = scheduledTask;
@@ -171,28 +171,19 @@ namespace Emby.Server.Implementations.ScheduledTasks
/// Gets the name.
/// </summary>
/// <value>The name.</value>
public string Name
{
get { return ScheduledTask.Name; }
}
public string Name => ScheduledTask.Name;
/// <summary>
/// Gets the description.
/// </summary>
/// <value>The description.</value>
public string Description
{
get { return ScheduledTask.Description; }
}
public string Description => ScheduledTask.Description;
/// <summary>
/// Gets the category.
/// </summary>
/// <value>The category.</value>
public string Category
{
get { return ScheduledTask.Category; }
}
public string Category => ScheduledTask.Category;
/// <summary>
/// Gets the current cancellation token
@@ -241,15 +232,12 @@ namespace Emby.Server.Implementations.ScheduledTasks
/// <value>The triggers.</value>
private Tuple<TaskTriggerInfo, ITaskTrigger>[] InternalTriggers
{
get
{
return _triggers;
}
get => _triggers;
set
{
if (value == null)
{
throw new ArgumentNullException("value");
throw new ArgumentNullException(nameof(value));
}
// Cleanup current triggers
@@ -280,7 +268,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
{
if (value == null)
{
throw new ArgumentNullException("value");
throw new ArgumentNullException(nameof(value));
}
// This null check is not great, but is needed to handle bad user input, or user mucking with the config file incorrectly
@@ -730,7 +718,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
{
if (!info.TimeOfDayTicks.HasValue)
{
throw new ArgumentNullException();
throw new ArgumentException("Info did not contain a TimeOfDayTicks.",nameof(info));
}
return new DailyTrigger
@@ -744,12 +732,12 @@ namespace Emby.Server.Implementations.ScheduledTasks
{
if (!info.TimeOfDayTicks.HasValue)
{
throw new ArgumentNullException();
throw new ArgumentException("Info did not contain a TimeOfDayTicks.", nameof(info));
}
if (!info.DayOfWeek.HasValue)
{
throw new ArgumentNullException();
throw new ArgumentException("Info did not contain a DayOfWeek.", nameof(info));
}
return new WeeklyTrigger
@@ -764,7 +752,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
{
if (!info.IntervalTicks.HasValue)
{
throw new ArgumentNullException();
throw new ArgumentException("Info did not contain a IntervalTicks.", nameof(info));
}
return new IntervalTrigger
@@ -778,7 +766,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
{
if (!info.SystemEvent.HasValue)
{
throw new ArgumentNullException();
throw new ArgumentException("Info did not contain a SystemEvent.", nameof(info));
}
return new SystemEventTrigger(_systemEvents)

View File

@@ -162,54 +162,30 @@ namespace Emby.Server.Implementations.ScheduledTasks.Tasks
/// Gets the name of the task
/// </summary>
/// <value>The name.</value>
public string Name
{
get { return "Cache file cleanup"; }
}
public string Name => "Cache file cleanup";
public string Key
{
get { return "DeleteCacheFiles"; }
}
public string Key => "DeleteCacheFiles";
/// <summary>
/// Gets the description.
/// </summary>
/// <value>The description.</value>
public string Description
{
get { return "Deletes cache files no longer needed by the system"; }
}
public string Description => "Deletes cache files no longer needed by the system";
/// <summary>
/// Gets the category.
/// </summary>
/// <value>The category.</value>
public string Category
{
get
{
return "Maintenance";
}
}
public string Category => "Maintenance";
/// <summary>
/// Gets a value indicating whether this instance is hidden.
/// </summary>
/// <value><c>true</c> if this instance is hidden; otherwise, <c>false</c>.</value>
public bool IsHidden
{
get { return true; }
}
public bool IsHidden => true;
public bool IsEnabled
{
get { return true; }
}
public bool IsEnabled => true;
public bool IsLogged
{
get { return true; }
}
public bool IsLogged => true;
}
}

View File

@@ -81,58 +81,34 @@ namespace Emby.Server.Implementations.ScheduledTasks.Tasks
return Task.CompletedTask;
}
public string Key
{
get { return "CleanLogFiles"; }
}
public string Key => "CleanLogFiles";
/// <summary>
/// Gets the name of the task
/// </summary>
/// <value>The name.</value>
public string Name
{
get { return "Log file cleanup"; }
}
public string Name => "Log file cleanup";
/// <summary>
/// Gets the description.
/// </summary>
/// <value>The description.</value>
public string Description
{
get { return string.Format("Deletes log files that are more than {0} days old.", ConfigurationManager.CommonConfiguration.LogFileRetentionDays); }
}
public string Description => string.Format("Deletes log files that are more than {0} days old.", ConfigurationManager.CommonConfiguration.LogFileRetentionDays);
/// <summary>
/// Gets the category.
/// </summary>
/// <value>The category.</value>
public string Category
{
get
{
return "Maintenance";
}
}
public string Category => "Maintenance";
/// <summary>
/// Gets a value indicating whether this instance is hidden.
/// </summary>
/// <value><c>true</c> if this instance is hidden; otherwise, <c>false</c>.</value>
public bool IsHidden
{
get { return true; }
}
public bool IsHidden => true;
public bool IsEnabled
{
get { return true; }
}
public bool IsEnabled => true;
public bool IsLogged
{
get { return true; }
}
public bool IsLogged => true;
}
}

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
@@ -91,7 +91,7 @@ namespace Emby.Server.Implementations.Security
{
if (info == null)
{
throw new ArgumentNullException("info");
throw new ArgumentNullException(nameof(info));
}
using (WriteLock.Write())
@@ -126,7 +126,7 @@ namespace Emby.Server.Implementations.Security
{
if (info == null)
{
throw new ArgumentNullException("entry");
throw new ArgumentNullException(nameof(info));
}
using (WriteLock.Write())
@@ -161,7 +161,7 @@ namespace Emby.Server.Implementations.Security
{
if (info == null)
{
throw new ArgumentNullException("entry");
throw new ArgumentNullException(nameof(info));
}
using (WriteLock.Write())
@@ -183,7 +183,7 @@ namespace Emby.Server.Implementations.Security
private const string BaseSelectText = "select Tokens.Id, AccessToken, DeviceId, AppName, AppVersion, DeviceName, UserId, UserName, DateCreated, DateLastActivity, Devices.CustomName from Tokens left join Devices on Tokens.DeviceId=Devices.Id";
private void BindAuthenticationQueryParams(AuthenticationInfoQuery query, IStatement statement)
private static void BindAuthenticationQueryParams(AuthenticationInfoQuery query, IStatement statement)
{
if (!string.IsNullOrEmpty(query.AccessToken))
{
@@ -205,7 +205,7 @@ namespace Emby.Server.Implementations.Security
{
if (query == null)
{
throw new ArgumentNullException("query");
throw new ArgumentNullException(nameof(query));
}
var commandText = BaseSelectText;
@@ -306,7 +306,7 @@ namespace Emby.Server.Implementations.Security
}
}
private AuthenticationInfo Get(IReadOnlyList<IResultSetValue> reader)
private static AuthenticationInfo Get(IReadOnlyList<IResultSetValue> reader)
{
var info = new AuthenticationInfo
{
@@ -397,7 +397,7 @@ namespace Emby.Server.Implementations.Security
{
if (options == null)
{
throw new ArgumentNullException("options");
throw new ArgumentNullException(nameof(options));
}
using (WriteLock.Write())

View File

@@ -1,4 +1,4 @@
using MediaBrowser.Controller.Security;
using MediaBrowser.Controller.Security;
using System;
using System.Text;
@@ -14,7 +14,10 @@ namespace Emby.Server.Implementations.Security
/// <exception cref="System.ArgumentNullException">value</exception>
public string EncryptString(string value)
{
if (value == null) throw new ArgumentNullException("value");
if (value == null)
{
throw new ArgumentNullException(nameof(value));
}
return EncryptStringUniversal(value);
}
@@ -27,12 +30,15 @@ namespace Emby.Server.Implementations.Security
/// <exception cref="System.ArgumentNullException">value</exception>
public string DecryptString(string value)
{
if (value == null) throw new ArgumentNullException("value");
if (value == null)
{
throw new ArgumentNullException(nameof(value));
}
return DecryptStringUniversal(value);
}
private string EncryptStringUniversal(string value)
private static string EncryptStringUniversal(string value)
{
// Yes, this isn't good, but ProtectedData in mono is throwing exceptions, so use this for now
@@ -40,7 +46,7 @@ namespace Emby.Server.Implementations.Security
return Convert.ToBase64String(bytes);
}
private string DecryptStringUniversal(string value)
private static string DecryptStringUniversal(string value)
{
// Yes, this isn't good, but ProtectedData in mono is throwing exceptions, so use this for now

View File

@@ -19,7 +19,7 @@ namespace Emby.Server.Implementations.Security
public string RegKey
{
get { return _regKey; }
get => _regKey;
set
{
_updateRecords.Clear();
@@ -27,13 +27,7 @@ namespace Emby.Server.Implementations.Security
}
}
private string Filename
{
get
{
return Path.Combine(_appPaths.ConfigurationDirectoryPath, "mb.lic");
}
}
private string Filename => Path.Combine(_appPaths.ConfigurationDirectoryPath, "mb.lic");
private readonly ConcurrentDictionary<Guid, FeatureRegInfo> _updateRecords = new ConcurrentDictionary<Guid, FeatureRegInfo>();
private readonly object _fileLock = new object();

View File

@@ -34,10 +34,7 @@ namespace Emby.Server.Implementations.Security
}
private MBLicenseFile _licenseFile;
private MBLicenseFile LicenseFile
{
get { return _licenseFile ?? (_licenseFile = new MBLicenseFile(_appPaths, _fileSystem, _cryptographyProvider)); }
}
private MBLicenseFile LicenseFile => _licenseFile ?? (_licenseFile = new MBLicenseFile(_appPaths, _fileSystem, _cryptographyProvider));
private readonly IHttpClient _httpClient;
private readonly IJsonSerializer _jsonSerializer;
@@ -55,7 +52,7 @@ namespace Emby.Server.Implementations.Security
{
if (httpClient == null)
{
throw new ArgumentNullException("httpClient");
throw new ArgumentNullException(nameof(httpClient));
}
_appHost = appHost;
@@ -82,14 +79,8 @@ namespace Emby.Server.Implementations.Security
/// <value>The supporter key.</value>
public string SupporterKey
{
get
{
return LicenseFile.RegKey;
}
set
{
throw new Exception("Please call UpdateSupporterKey");
}
get => LicenseFile.RegKey;
set => throw new Exception("Please call UpdateSupporterKey");
}
public async Task UpdateSupporterKey(string newValue)
@@ -138,7 +129,7 @@ namespace Emby.Server.Implementations.Security
_logger.LogError(msg);
throw new ArgumentException(msg);
}
if (!String.IsNullOrEmpty(reg.key))
if (!string.IsNullOrEmpty(reg.key))
{
await UpdateSupporterKey(reg.key).ConfigureAwait(false);
}

Some files were not shown because too many files have changed in this diff Show More