diff options
124 files changed, 417 insertions, 1604 deletions
diff --git a/Emby.Dlna/Ssdp/DeviceDiscovery.cs b/Emby.Dlna/Ssdp/DeviceDiscovery.cs index 85dc4d94f..d91f711d2 100644 --- a/Emby.Dlna/Ssdp/DeviceDiscovery.cs +++ b/Emby.Dlna/Ssdp/DeviceDiscovery.cs @@ -119,7 +119,7 @@ namespace Emby.Dlna.Ssdp } }; - EventHelper.FireEventIfNotNull(DeviceDiscoveredInternal, this, args, _logger); + DeviceDiscoveredInternal?.Invoke(this, args); } private void _DeviceLocator_DeviceUnavailable(object sender, DeviceUnavailableEventArgs e) @@ -139,7 +139,7 @@ namespace Emby.Dlna.Ssdp } }; - EventHelper.FireEventIfNotNull(DeviceLeft, this, args, _logger); + DeviceLeft?.Invoke(this, args); } public void Dispose() diff --git a/Emby.Server.Implementations/Activity/ActivityManager.cs b/Emby.Server.Implementations/Activity/ActivityManager.cs index b0c841397..0bb44a9d5 100644 --- a/Emby.Server.Implementations/Activity/ActivityManager.cs +++ b/Emby.Server.Implementations/Activity/ActivityManager.cs @@ -1,5 +1,4 @@ -using MediaBrowser.Common.Events; -using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Library; using MediaBrowser.Model.Activity; using MediaBrowser.Model.Events; using Microsoft.Extensions.Logging; @@ -30,7 +29,7 @@ namespace Emby.Server.Implementations.Activity _repo.Create(entry); - EventHelper.FireEventIfNotNull(EntryCreated, this, new GenericEventArgs<ActivityLogEntry>(entry), _logger); + EntryCreated?.Invoke(this, new GenericEventArgs<ActivityLogEntry>(entry)); } public QueryResult<ActivityLogEntry> GetActivityLogEntries(DateTime? minDate, bool? hasUserId, int? startIndex, int? limit) diff --git a/Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs b/Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs index fddf19893..bc5168fe8 100644 --- a/Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs +++ b/Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs @@ -283,12 +283,11 @@ namespace Emby.Server.Implementations.AppBase validatingStore.Validate(currentConfiguration, configuration); } - EventHelper.FireEventIfNotNull(NamedConfigurationUpdating, this, new ConfigurationUpdateEventArgs + NamedConfigurationUpdating?.Invoke( this, new ConfigurationUpdateEventArgs { Key = key, NewConfiguration = configuration - - }, Logger); + }); _configurations.AddOrUpdate(key, configuration, (k, v) => configuration); @@ -305,12 +304,11 @@ namespace Emby.Server.Implementations.AppBase protected virtual void OnNamedConfigurationUpdated(string key, object configuration) { - EventHelper.FireEventIfNotNull(NamedConfigurationUpdated, this, new ConfigurationUpdateEventArgs + NamedConfigurationUpdated?.Invoke(this, new ConfigurationUpdateEventArgs { Key = key, NewConfiguration = configuration - - }, Logger); + }); } public Type GetConfigurationType(string key) diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs index ff6586ac1..236851968 100644 --- a/Emby.Server.Implementations/ApplicationHost.cs +++ b/Emby.Server.Implementations/ApplicationHost.cs @@ -966,9 +966,6 @@ namespace Emby.Server.Implementations DeviceManager = new DeviceManager(AuthenticationRepository, JsonSerializer, LibraryManager, LocalizationManager, UserManager, FileSystemManager, LibraryMonitor, ServerConfigurationManager, LoggerFactory.CreateLogger("DeviceManager"), NetworkManager); RegisterSingleInstance(DeviceManager); - var newsService = new Emby.Server.Implementations.News.NewsService(ApplicationPaths, JsonSerializer); - RegisterSingleInstance<INewsService>(newsService); - MediaSourceManager = new MediaSourceManager(ItemRepository, ApplicationPaths, LocalizationManager, UserManager, LibraryManager, LoggerFactory.CreateLogger("MediaSourceManager"), JsonSerializer, FileSystemManager, UserDataManager, TimerFactory, () => MediaEncoder); RegisterSingleInstance(MediaSourceManager); @@ -2268,7 +2265,7 @@ namespace Emby.Server.Implementations if (fireEvent) { - EventHelper.FireEventIfNotNull(HasUpdateAvailableChanged, this, EventArgs.Empty, Logger); + HasUpdateAvailableChanged?.Invoke(this, EventArgs.Empty); } } } @@ -2384,11 +2381,10 @@ namespace Emby.Server.Implementations { Logger.LogInformation("Application has been updated to version {0}", package.versionStr); - EventHelper.FireEventIfNotNull(ApplicationUpdated, this, new GenericEventArgs<PackageVersionInfo> + ApplicationUpdated?.Invoke(this, new GenericEventArgs<PackageVersionInfo> { Argument = package - - }, Logger); + }); NotifyPendingRestart(); } diff --git a/Emby.Server.Implementations/Collections/CollectionManager.cs b/Emby.Server.Implementations/Collections/CollectionManager.cs index d1afb0712..d1d793136 100644 --- a/Emby.Server.Implementations/Collections/CollectionManager.cs +++ b/Emby.Server.Implementations/Collections/CollectionManager.cs @@ -155,12 +155,11 @@ namespace Emby.Server.Implementations.Collections _providerManager.QueueRefresh(collection.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), RefreshPriority.High); } - EventHelper.FireEventIfNotNull(CollectionCreated, this, new CollectionCreatedEventArgs + CollectionCreated?.Invoke(this, new CollectionCreatedEventArgs { Collection = collection, Options = options - - }, _logger); + }); return collection; } @@ -230,12 +229,11 @@ namespace Emby.Server.Implementations.Collections if (fireEvent) { - EventHelper.FireEventIfNotNull(ItemsAddedToCollection, this, new CollectionModifiedEventArgs + ItemsAddedToCollection?.Invoke(this, new CollectionModifiedEventArgs { Collection = collection, ItemsChanged = itemList - - }, _logger); + }); } } } @@ -288,12 +286,11 @@ namespace Emby.Server.Implementations.Collections ForceSave = true }, RefreshPriority.High); - EventHelper.FireEventIfNotNull(ItemsRemovedFromCollection, this, new CollectionModifiedEventArgs + ItemsRemovedFromCollection?.Invoke(this, new CollectionModifiedEventArgs { Collection = collection, ItemsChanged = itemList - - }, _logger); + }); } public IEnumerable<BaseItem> CollapseItemsWithinBoxSets(IEnumerable<BaseItem> items, User user) diff --git a/Emby.Server.Implementations/Configuration/ServerConfigurationManager.cs b/Emby.Server.Implementations/Configuration/ServerConfigurationManager.cs index 26a7c421f..015421197 100644 --- a/Emby.Server.Implementations/Configuration/ServerConfigurationManager.cs +++ b/Emby.Server.Implementations/Configuration/ServerConfigurationManager.cs @@ -1,22 +1,15 @@ using System; using System.Collections.Generic; using System.IO; -using System.Linq; using Emby.Server.Implementations.AppBase; using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Events; using MediaBrowser.Controller; using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Entities.Audio; -using MediaBrowser.Controller.Entities.Movies; -using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Events; using MediaBrowser.Model.IO; using Microsoft.Extensions.Logging; using MediaBrowser.Model.Serialization; -using MediaBrowser.Model.Extensions; namespace Emby.Server.Implementations.Configuration { @@ -143,7 +136,7 @@ namespace Emby.Server.Implementations.Configuration ValidateMetadataPath(newConfig); ValidateSslCertificate(newConfig); - EventHelper.FireEventIfNotNull(ConfigurationUpdating, this, new GenericEventArgs<ServerConfiguration> { Argument = newConfig }, Logger); + ConfigurationUpdating?.Invoke(this, new GenericEventArgs<ServerConfiguration> { Argument = newConfig }); base.ReplaceConfiguration(newConfiguration); } diff --git a/Emby.Server.Implementations/Devices/DeviceManager.cs b/Emby.Server.Implementations/Devices/DeviceManager.cs index 82df96d8b..f5314df6e 100644 --- a/Emby.Server.Implementations/Devices/DeviceManager.cs +++ b/Emby.Server.Implementations/Devices/DeviceManager.cs @@ -1,5 +1,4 @@ using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Events; using MediaBrowser.Common.Net; using MediaBrowser.Controller.Devices; using MediaBrowser.Controller.Library; @@ -254,14 +253,14 @@ namespace Emby.Server.Implementations.Devices if (CameraImageUploaded != null) { - EventHelper.FireEventIfNotNull(CameraImageUploaded, this, new GenericEventArgs<CameraImageUploadInfo> + CameraImageUploaded?.Invoke(this, new GenericEventArgs<CameraImageUploadInfo> { Argument = new CameraImageUploadInfo { Device = device, FileInfo = file } - }, _logger); + }); } } diff --git a/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs b/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs index 704b7f8a6..69ca0f85b 100644 --- a/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs +++ b/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs @@ -8,7 +8,6 @@ using System.Globalization; using System.IO; using System.Linq; using System.Reflection; -using System.Security.Cryptography.X509Certificates; using System.Text; using System.Threading; using System.Threading.Tasks; @@ -16,17 +15,12 @@ using Emby.Server.Implementations.Services; using MediaBrowser.Common.Net; using MediaBrowser.Common.Security; using MediaBrowser.Controller; -using MediaBrowser.Model.Cryptography; using MediaBrowser.Model.Extensions; -using MediaBrowser.Model.IO; -using MediaBrowser.Model.Net; using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Services; -using MediaBrowser.Model.System; using MediaBrowser.Model.Text; using System.Net.Sockets; using Emby.Server.Implementations.Net; -using MediaBrowser.Common.Events; using MediaBrowser.Model.Events; namespace Emby.Server.Implementations.HttpServer @@ -184,7 +178,7 @@ namespace Emby.Server.Implementations.HttpServer if (WebSocketConnected != null) { - EventHelper.FireEventIfNotNull(WebSocketConnected, this, new GenericEventArgs<IWebSocketConnection>(connection), _logger); + WebSocketConnected?.Invoke(this, new GenericEventArgs<IWebSocketConnection>(connection)); } } diff --git a/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs b/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs index 8b5dfd444..914fa9dbc 100644 --- a/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs +++ b/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs @@ -1,5 +1,4 @@ using System.Text; -using MediaBrowser.Common.Events; using MediaBrowser.Controller.Net; using Microsoft.Extensions.Logging; using MediaBrowser.Model.Net; @@ -118,7 +117,7 @@ namespace Emby.Server.Implementations.HttpServer void socket_Closed(object sender, EventArgs e) { - EventHelper.FireEventIfNotNull(Closed, this, EventArgs.Empty, _logger); + Closed?.Invoke(this, EventArgs.Empty); } /// <summary> diff --git a/Emby.Server.Implementations/IO/FileRefresher.cs b/Emby.Server.Implementations/IO/FileRefresher.cs index df484d04c..34c711324 100644 --- a/Emby.Server.Implementations/IO/FileRefresher.cs +++ b/Emby.Server.Implementations/IO/FileRefresher.cs @@ -2,14 +2,9 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using System.Threading; -using System.Threading.Tasks; using MediaBrowser.Model.IO; -using MediaBrowser.Common.Events; -using MediaBrowser.Common.Progress; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Extensions; using Microsoft.Extensions.Logging; @@ -133,7 +128,7 @@ namespace Emby.Server.Implementations.IO Logger.LogDebug("Timer stopped."); DisposeTimer(); - EventHelper.FireEventIfNotNull(Completed, this, EventArgs.Empty, Logger); + Completed?.Invoke(this, EventArgs.Empty); try { diff --git a/Emby.Server.Implementations/Library/UserDataManager.cs b/Emby.Server.Implementations/Library/UserDataManager.cs index 62371799b..27ba32c0c 100644 --- a/Emby.Server.Implementations/Library/UserDataManager.cs +++ b/Emby.Server.Implementations/Library/UserDataManager.cs @@ -1,7 +1,5 @@ -using MediaBrowser.Common.Events; -using MediaBrowser.Controller.Configuration; +using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Persistence; using MediaBrowser.Model.Dto; @@ -11,7 +9,6 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Threading; -using System.Threading.Tasks; using MediaBrowser.Controller.Dto; using System.Globalization; @@ -77,15 +74,14 @@ namespace Emby.Server.Implementations.Library var cacheKey = GetCacheKey(userId, item.Id); _userData.AddOrUpdate(cacheKey, userData, (k, v) => userData); - EventHelper.FireEventIfNotNull(UserDataSaved, this, new UserDataSaveEventArgs + UserDataSaved?.Invoke(this, new UserDataSaveEventArgs { Keys = keys, UserData = userData, SaveReason = reason, UserId = user.Id, Item = item - - }, _logger); + }); } /// <summary> diff --git a/Emby.Server.Implementations/Library/UserManager.cs b/Emby.Server.Implementations/Library/UserManager.cs index ae3577b7d..679116fc0 100644 --- a/Emby.Server.Implementations/Library/UserManager.cs +++ b/Emby.Server.Implementations/Library/UserManager.cs @@ -2,7 +2,6 @@ using MediaBrowser.Common.Net; using MediaBrowser.Controller; using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Connect; using MediaBrowser.Controller.Drawing; using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Entities; @@ -135,7 +134,7 @@ namespace Emby.Server.Implementations.Library /// <param name="user">The user.</param> private void OnUserUpdated(User user) { - EventHelper.FireEventIfNotNull(UserUpdated, this, new GenericEventArgs<User> { Argument = user }, _logger); + UserUpdated?.Invoke(this, new GenericEventArgs<User> { Argument = user }); } #endregion @@ -150,7 +149,7 @@ namespace Emby.Server.Implementations.Library /// <param name="user">The user.</param> private void OnUserDeleted(User user) { - EventHelper.FireEventIfNotNull(UserDeleted, this, new GenericEventArgs<User> { Argument = user }, _logger); + UserDeleted?.Invoke(this, new GenericEventArgs<User> { Argument = user }); } #endregion @@ -471,10 +470,7 @@ namespace Emby.Server.Implementations.Library if (fireLockout) { - if (UserLockedOut != null) - { - EventHelper.FireEventIfNotNull(UserLockedOut, this, new GenericEventArgs<User>(user), _logger); - } + UserLockedOut?.Invoke(this, new GenericEventArgs<User>(user)); } } } @@ -820,7 +816,7 @@ namespace Emby.Server.Implementations.Library UpdateUser(user); - EventHelper.FireEventIfNotNull(UserPasswordChanged, this, new GenericEventArgs<User>(user), _logger); + UserPasswordChanged?.Invoke(this, new GenericEventArgs<User>(user)); } public void ChangeEasyPassword(User user, string newPassword, string newPasswordHash) @@ -844,7 +840,7 @@ namespace Emby.Server.Implementations.Library UpdateUser(user); - EventHelper.FireEventIfNotNull(UserPasswordChanged, this, new GenericEventArgs<User>(user), _logger); + UserPasswordChanged?.Invoke(this, new GenericEventArgs<User>(user)); } /// <summary> @@ -1088,7 +1084,7 @@ namespace Emby.Server.Implementations.Library if (fireEvent) { - EventHelper.FireEventIfNotNull(UserPolicyUpdated, this, new GenericEventArgs<User> { Argument = user }, _logger); + UserPolicyUpdated?.Invoke(this, new GenericEventArgs<User> { Argument = user }); } } @@ -1183,7 +1179,7 @@ namespace Emby.Server.Implementations.Library if (fireEvent) { - EventHelper.FireEventIfNotNull(UserConfigurationUpdated, this, new GenericEventArgs<User> { Argument = user }, _logger); + UserConfigurationUpdated?.Invoke(this, new GenericEventArgs<User> { Argument = user }); } } } diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs index ef96510bd..59f9fe86f 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs +++ b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs @@ -1,9 +1,16 @@ -using MediaBrowser.Common; +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Xml; using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Net; -using MediaBrowser.Common.Security; using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Drawing; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.LiveTv; using MediaBrowser.Controller.MediaEncoding; @@ -14,25 +21,13 @@ using MediaBrowser.Model.Events; using MediaBrowser.Model.LiveTv; using Microsoft.Extensions.Logging; using MediaBrowser.Model.Serialization; -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using System.Xml; using MediaBrowser.Model.IO; -using MediaBrowser.Common.Events; using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Progress; using MediaBrowser.Controller; using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.TV; -using MediaBrowser.Controller.IO; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Diagnostics; using MediaBrowser.Model.System; diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs index 5618579f6..76a044c02 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs +++ b/Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs @@ -1,15 +1,11 @@ -using MediaBrowser.Common.Events; +using System; +using System.Collections.Concurrent; +using System.Globalization; +using System.Linq; using MediaBrowser.Controller.LiveTv; using MediaBrowser.Model.Events; using Microsoft.Extensions.Logging; using MediaBrowser.Model.Serialization; -using System; -using System.Collections.Concurrent; -using System.Globalization; -using System.Linq; -using System.Threading; - -using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; using MediaBrowser.Model.LiveTv; using MediaBrowser.Model.Threading; @@ -122,7 +118,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV if (startDate < now) { - EventHelper.FireEventIfNotNull(TimerFired, this, new GenericEventArgs<TimerInfo> { Argument = item }, base.Logger); + TimerFired?.Invoke(this, new GenericEventArgs<TimerInfo> { Argument = item }); return; } @@ -178,7 +174,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV var timer = GetAll().FirstOrDefault(i => string.Equals(i.Id, timerId, StringComparison.OrdinalIgnoreCase)); if (timer != null) { - EventHelper.FireEventIfNotNull(TimerFired, this, new GenericEventArgs<TimerInfo> { Argument = timer }, base.Logger); + TimerFired?.Invoke(this, new GenericEventArgs<TimerInfo> { Argument = timer }); } } diff --git a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs index a4ffbd2fe..b597a935a 100644 --- a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs @@ -22,7 +22,6 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Model.IO; -using MediaBrowser.Common.Events; using MediaBrowser.Common.Security; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Entities.TV; @@ -144,13 +143,13 @@ namespace Emby.Server.Implementations.LiveTv { var timerId = e.Argument; - EventHelper.FireEventIfNotNull(TimerCancelled, this, new GenericEventArgs<TimerEventInfo> + TimerCancelled?.Invoke(this, new GenericEventArgs<TimerEventInfo> { Argument = new TimerEventInfo { Id = timerId } - }, _logger); + }); } private void EmbyTv_TimerCreated(object sender, GenericEventArgs<TimerInfo> e) @@ -158,14 +157,14 @@ namespace Emby.Server.Implementations.LiveTv var timer = e.Argument; var service = sender as ILiveTvService; - EventHelper.FireEventIfNotNull(TimerCreated, this, new GenericEventArgs<TimerEventInfo> + TimerCreated?.Invoke(this, new GenericEventArgs<TimerEventInfo> { Argument = new TimerEventInfo { ProgramId = _tvDtoService.GetInternalProgramId(timer.ProgramId), Id = timer.Id } - }, _logger); + }); } public ITunerHost[] TunerHosts @@ -1734,13 +1733,13 @@ namespace Emby.Server.Implementations.LiveTv if (!(service is EmbyTV.EmbyTV)) { - EventHelper.FireEventIfNotNull(TimerCancelled, this, new GenericEventArgs<TimerEventInfo> + TimerCancelled?.Invoke(this, new GenericEventArgs<TimerEventInfo> { Argument = new TimerEventInfo { Id = id } - }, _logger); + }); } } @@ -1757,13 +1756,13 @@ namespace Emby.Server.Implementations.LiveTv await service.CancelSeriesTimerAsync(timer.ExternalId, CancellationToken.None).ConfigureAwait(false); - EventHelper.FireEventIfNotNull(SeriesTimerCancelled, this, new GenericEventArgs<TimerEventInfo> + SeriesTimerCancelled?.Invoke(this, new GenericEventArgs<TimerEventInfo> { Argument = new TimerEventInfo { Id = id } - }, _logger); + }); } public async Task<TimerInfoDto> GetTimer(string id, CancellationToken cancellationToken) @@ -2083,14 +2082,14 @@ namespace Emby.Server.Implementations.LiveTv if (!(service is EmbyTV.EmbyTV)) { - EventHelper.FireEventIfNotNull(TimerCreated, this, new GenericEventArgs<TimerEventInfo> + TimerCreated?.Invoke(this, new GenericEventArgs<TimerEventInfo> { Argument = new TimerEventInfo { ProgramId = _tvDtoService.GetInternalProgramId(info.ProgramId), Id = newTimerId } - }, _logger); + }); } } @@ -2123,14 +2122,14 @@ namespace Emby.Server.Implementations.LiveTv await service.CreateSeriesTimerAsync(info, cancellationToken).ConfigureAwait(false); } - EventHelper.FireEventIfNotNull(SeriesTimerCreated, this, new GenericEventArgs<TimerEventInfo> + SeriesTimerCreated?.Invoke(this, new GenericEventArgs<TimerEventInfo> { Argument = new TimerEventInfo { ProgramId = _tvDtoService.GetInternalProgramId(info.ProgramId), Id = newTimerId } - }, _logger); + }); } public async Task UpdateTimer(TimerInfoDto timer, CancellationToken cancellationToken) diff --git a/Emby.Server.Implementations/News/NewsEntryPoint.cs b/Emby.Server.Implementations/News/NewsEntryPoint.cs deleted file mode 100644 index ce6fe6630..000000000 --- a/Emby.Server.Implementations/News/NewsEntryPoint.cs +++ /dev/null @@ -1,279 +0,0 @@ -using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Extensions; -using MediaBrowser.Common.Net; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Notifications; -using MediaBrowser.Controller.Plugins; -using Microsoft.Extensions.Logging; -using MediaBrowser.Model.News; -using MediaBrowser.Model.Notifications; -using MediaBrowser.Model.Serialization; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using System.Xml; -using MediaBrowser.Common.Progress; -using MediaBrowser.Model.IO; -using MediaBrowser.Model.Threading; - -namespace Emby.Server.Implementations.News -{ - public class NewsEntryPoint : IServerEntryPoint - { - private ITimer _timer; - private readonly IHttpClient _httpClient; - private readonly IApplicationPaths _appPaths; - private readonly IFileSystem _fileSystem; - private readonly ILogger _logger; - private readonly IJsonSerializer _json; - - private readonly INotificationManager _notifications; - private readonly IUserManager _userManager; - - private readonly TimeSpan _frequency = TimeSpan.FromHours(24); - private readonly ITimerFactory _timerFactory; - - public NewsEntryPoint(IHttpClient httpClient, IApplicationPaths appPaths, IFileSystem fileSystem, ILogger logger, IJsonSerializer json, INotificationManager notifications, IUserManager userManager, ITimerFactory timerFactory) - { - _httpClient = httpClient; - _appPaths = appPaths; - _fileSystem = fileSystem; - _logger = logger; - _json = json; - _notifications = notifications; - _userManager = userManager; - _timerFactory = timerFactory; - } - - public void Run() - { - _timer = _timerFactory.Create(OnTimerFired, null, TimeSpan.FromMilliseconds(500), _frequency); - } - - /// <summary> - /// Called when [timer fired]. - /// </summary> - /// <param name="state">The state.</param> - private async void OnTimerFired(object state) - { - var path = Path.Combine(_appPaths.CachePath, "news.json"); - - try - { - await DownloadNews(path).ConfigureAwait(false); - } - catch (Exception ex) - { - _logger.LogError(ex, "Error downloading news"); - } - } - - private async Task DownloadNews(string path) - { - DateTime? lastUpdate = null; - - if (_fileSystem.FileExists(path)) - { - lastUpdate = _fileSystem.GetLastWriteTimeUtc(path); - } - - var requestOptions = new HttpRequestOptions - { - Url = "https://github.com/jellyfin/jellyfin", - Progress = new SimpleProgress<double>(), - UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.42 Safari/537.36", - BufferContent = false - }; - - using (var response = await _httpClient.SendAsync(requestOptions, "GET").ConfigureAwait(false)) - { - using (var stream = response.Content) - { - using (var reader = XmlReader.Create(stream)) - { - var news = ParseRssItems(reader).ToList(); - - _json.SerializeToFile(news, path); - - await CreateNotifications(news, lastUpdate, CancellationToken.None).ConfigureAwait(false); - } - } - } - } - - private Task CreateNotifications(List<NewsItem> items, DateTime? lastUpdate, CancellationToken cancellationToken) - { - if (lastUpdate.HasValue) - { - items = items.Where(i => i.Date.ToUniversalTime() >= lastUpdate.Value) - .ToList(); - } - - var tasks = items.Select(i => _notifications.SendNotification(new NotificationRequest - { - Date = i.Date, - Name = i.Title, - Description = i.Description, - Url = i.Link, - UserIds = _userManager.Users.Select(u => u.Id).ToArray() - - }, cancellationToken)); - - return Task.WhenAll(tasks); - } - - private IEnumerable<NewsItem> ParseRssItems(XmlReader reader) - { - reader.MoveToContent(); - reader.Read(); - - while (!reader.EOF && reader.ReadState == ReadState.Interactive) - { - if (reader.NodeType == XmlNodeType.Element) - { - switch (reader.Name) - { - case "channel": - { - if (!reader.IsEmptyElement) - { - using (var subReader = reader.ReadSubtree()) - { - return ParseFromChannelNode(subReader); - } - } - else - { - reader.Read(); - } - break; - } - default: - { - reader.Skip(); - break; - } - } - } - else - { - reader.Read(); - } - } - - return new List<NewsItem>(); - } - - private IEnumerable<NewsItem> ParseFromChannelNode(XmlReader reader) - { - var list = new List<NewsItem>(); - - reader.MoveToContent(); - reader.Read(); - - while (!reader.EOF && reader.ReadState == ReadState.Interactive) - { - if (reader.NodeType == XmlNodeType.Element) - { - switch (reader.Name) - { - case "item": - { - if (!reader.IsEmptyElement) - { - using (var subReader = reader.ReadSubtree()) - { - list.Add(ParseItem(subReader)); - } - } - else - { - reader.Read(); - } - break; - } - default: - { - reader.Skip(); - break; - } - } - } - else - { - reader.Read(); - } - } - - return list; - } - - private NewsItem ParseItem(XmlReader reader) - { - var item = new NewsItem(); - - reader.MoveToContent(); - reader.Read(); - - while (!reader.EOF && reader.ReadState == ReadState.Interactive) - { - if (reader.NodeType == XmlNodeType.Element) - { - switch (reader.Name) - { - case "title": - { - item.Title = reader.ReadElementContentAsString(); - break; - } - case "link": - { - item.Link = reader.ReadElementContentAsString(); - break; - } - case "description": - { - item.DescriptionHtml = reader.ReadElementContentAsString(); - item.Description = item.DescriptionHtml.StripHtml(); - break; - } - case "pubDate": - { - var date = reader.ReadElementContentAsString(); - DateTime parsedDate; - - if (DateTime.TryParse(date, out parsedDate)) - { - item.Date = parsedDate; - } - break; - } - default: - { - reader.Skip(); - break; - } - } - } - else - { - reader.Read(); - } - } - - return item; - } - - public void Dispose() - { - if (_timer != null) - { - _timer.Dispose(); - _timer = null; - } - } - } -} diff --git a/Emby.Server.Implementations/News/NewsService.cs b/Emby.Server.Implementations/News/NewsService.cs deleted file mode 100644 index 80e799634..000000000 --- a/Emby.Server.Implementations/News/NewsService.cs +++ /dev/null @@ -1,77 +0,0 @@ -using MediaBrowser.Common.Configuration; -using MediaBrowser.Model.News; -using MediaBrowser.Model.Querying; -using MediaBrowser.Model.Serialization; -using System.Collections.Generic; -using System.IO; -using System.Linq; - -namespace Emby.Server.Implementations.News -{ - public class NewsService : INewsService - { - private readonly IApplicationPaths _appPaths; - private readonly IJsonSerializer _json; - - public NewsService(IApplicationPaths appPaths, IJsonSerializer json) - { - _appPaths = appPaths; - _json = json; - } - - public QueryResult<NewsItem> GetProductNews(NewsQuery query) - { - try - { - return GetProductNewsInternal(query); - } - catch (FileNotFoundException) - { - // No biggie - return new QueryResult<NewsItem> - { - Items = new NewsItem[] { } - }; - } - catch (IOException) - { - // No biggie - return new QueryResult<NewsItem> - { - Items = new NewsItem[] { } - }; - } - } - - private QueryResult<NewsItem> GetProductNewsInternal(NewsQuery query) - { - var path = Path.Combine(_appPaths.CachePath, "news.json"); - - var items = GetNewsItems(path).OrderByDescending(i => i.Date); - - var itemsArray = items.ToArray(); - var count = itemsArray.Length; - - if (query.StartIndex.HasValue) - { - itemsArray = itemsArray.Skip(query.StartIndex.Value).ToArray(); - } - - if (query.Limit.HasValue) - { - itemsArray = itemsArray.Take(query.Limit.Value).ToArray(); - } - - return new QueryResult<NewsItem> - { - Items = itemsArray, - TotalRecordCount = count - }; - } - - private IEnumerable<NewsItem> GetNewsItems(string path) - { - return _json.DeserializeFromFile<List<NewsItem>>(path); - } - } -} diff --git a/Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs b/Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs index 7c2ce4af3..0bebca8fc 100644 --- a/Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs +++ b/Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs @@ -5,7 +5,6 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Events; using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Progress; using MediaBrowser.Model.Events; @@ -465,11 +464,10 @@ namespace Emby.Server.Implementations.ScheduledTasks CurrentProgress = e; - EventHelper.FireEventIfNotNull(TaskProgress, this, new GenericEventArgs<double> + TaskProgress?.Invoke(this, new GenericEventArgs<double> { Argument = e - - }, Logger); + }); } /// <summary> diff --git a/Emby.Server.Implementations/ScheduledTasks/TaskManager.cs b/Emby.Server.Implementations/ScheduledTasks/TaskManager.cs index 0322583dc..361c31acb 100644 --- a/Emby.Server.Implementations/ScheduledTasks/TaskManager.cs +++ b/Emby.Server.Implementations/ScheduledTasks/TaskManager.cs @@ -1,17 +1,16 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Threading.Tasks; using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Events; using MediaBrowser.Model.Events; using MediaBrowser.Model.IO; using Microsoft.Extensions.Logging; using MediaBrowser.Model.Serialization; using MediaBrowser.Model.System; using MediaBrowser.Model.Tasks; -using System.IO; namespace Emby.Server.Implementations.ScheduledTasks { @@ -331,11 +330,10 @@ namespace Emby.Server.Implementations.ScheduledTasks /// <param name="task">The task.</param> internal void OnTaskExecuting(IScheduledTaskWorker task) { - EventHelper.FireEventIfNotNull(TaskExecuting, this, new GenericEventArgs<IScheduledTaskWorker> + TaskExecuting?.Invoke(this, new GenericEventArgs<IScheduledTaskWorker> { Argument = task - - }, Logger); + }); } /// <summary> @@ -345,12 +343,11 @@ namespace Emby.Server.Implementations.ScheduledTasks /// <param name="result">The result.</param> internal void OnTaskCompleted(IScheduledTaskWorker task, TaskResult result) { - EventHelper.FireEventIfNotNull(TaskCompleted, task, new TaskCompletionEventArgs + TaskCompleted?.Invoke(task, new TaskCompletionEventArgs { Result = result, Task = task - - }, Logger); + }); ExecuteQueuedTasks(); } diff --git a/Emby.Server.Implementations/Session/SessionManager.cs b/Emby.Server.Implementations/Session/SessionManager.cs index 2b2b3c677..419c24f13 100644 --- a/Emby.Server.Implementations/Session/SessionManager.cs +++ b/Emby.Server.Implementations/Session/SessionManager.cs @@ -18,7 +18,6 @@ using MediaBrowser.Model.Library; using Microsoft.Extensions.Logging; using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Session; -using MediaBrowser.Model.Users; using System; using System.Collections.Concurrent; using System.Collections.Generic; @@ -255,11 +254,10 @@ namespace Emby.Server.Implementations.Session if ((activityDate - lastActivityDate).TotalSeconds > 10) { - EventHelper.FireEventIfNotNull(SessionActivity, this, new SessionEventArgs + SessionActivity?.Invoke(this, new SessionEventArgs { SessionInfo = session - - }, _logger); + }); } return session; @@ -693,7 +691,7 @@ namespace Emby.Server.Implementations.Session } } - EventHelper.FireEventIfNotNull(PlaybackProgress, this, new PlaybackProgressEventArgs + PlaybackProgress?.Invoke(this, new PlaybackProgressEventArgs { Item = libraryItem, Users = users, @@ -707,8 +705,7 @@ namespace Emby.Server.Implementations.Session PlaySessionId = info.PlaySessionId, IsAutomated = isAutomated, Session = session - - }, _logger); + }); if (!isAutomated) { @@ -1399,7 +1396,7 @@ namespace Emby.Server.Implementations.Session if (result == null) { - EventHelper.FireEventIfNotNull(AuthenticationFailed, this, new GenericEventArgs<AuthenticationRequest>(request), _logger); + AuthenticationFailed?.Invoke(this, new GenericEventArgs<AuthenticationRequest>(request)); throw new SecurityException("Invalid user or password entered."); } @@ -1424,7 +1421,7 @@ namespace Emby.Server.Implementations.Session ServerId = _appHost.SystemId }; - EventHelper.FireEventIfNotNull(AuthenticationSucceeded, this, new GenericEventArgs<AuthenticationResult>(returnResult), _logger); + AuthenticationSucceeded?.Invoke(this, new GenericEventArgs<AuthenticationResult>(returnResult)); return returnResult; } @@ -1587,11 +1584,10 @@ namespace Emby.Server.Implementations.Session if (saveCapabilities) { - EventHelper.FireEventIfNotNull(CapabilitiesChanged, this, new SessionEventArgs + CapabilitiesChanged?.Invoke(this, new SessionEventArgs { SessionInfo = session - - }, _logger); + }); try { diff --git a/Emby.Server.Implementations/SystemEvents.cs b/Emby.Server.Implementations/SystemEvents.cs index f39d63002..578338aee 100644 --- a/Emby.Server.Implementations/SystemEvents.cs +++ b/Emby.Server.Implementations/SystemEvents.cs @@ -1,6 +1,6 @@ using System; -using Microsoft.Extensions.Logging; using MediaBrowser.Model.System; +using Microsoft.Extensions.Logging; namespace Emby.Server.Implementations { diff --git a/Emby.Server.Implementations/Updates/InstallationManager.cs b/Emby.Server.Implementations/Updates/InstallationManager.cs index 27741863b..82b61c15a 100644 --- a/Emby.Server.Implementations/Updates/InstallationManager.cs +++ b/Emby.Server.Implementations/Updates/InstallationManager.cs @@ -7,7 +7,6 @@ using System.Threading; using System.Threading.Tasks; using MediaBrowser.Common; using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Events; using MediaBrowser.Common.Net; using MediaBrowser.Common.Plugins; using MediaBrowser.Common.Progress; @@ -60,7 +59,7 @@ namespace Emby.Server.Implementations.Updates /// <param name="plugin">The plugin.</param> private void OnPluginUninstalled(IPlugin plugin) { - EventHelper.FireEventIfNotNull(PluginUninstalled, this, new GenericEventArgs<IPlugin> { Argument = plugin }, _logger); + PluginUninstalled?.Invoke(this, new GenericEventArgs<IPlugin> { Argument = plugin }); } #endregion @@ -78,7 +77,7 @@ namespace Emby.Server.Implementations.Updates { _logger.LogInformation("Plugin updated: {0} {1} {2}", newVersion.name, newVersion.versionStr ?? string.Empty, newVersion.classification); - EventHelper.FireEventIfNotNull(PluginUpdated, this, new GenericEventArgs<Tuple<IPlugin, PackageVersionInfo>> { Argument = new Tuple<IPlugin, PackageVersionInfo>(plugin, newVersion) }, _logger); + PluginUpdated?.Invoke(this, new GenericEventArgs<Tuple<IPlugin, PackageVersionInfo>> { Argument = new Tuple<IPlugin, PackageVersionInfo>(plugin, newVersion) }); _applicationHost.NotifyPendingRestart(); } @@ -97,7 +96,7 @@ namespace Emby.Server.Implementations.Updates { _logger.LogInformation("New plugin installed: {0} {1} {2}", package.name, package.versionStr ?? string.Empty, package.classification); - EventHelper.FireEventIfNotNull(PluginInstalled, this, new GenericEventArgs<PackageVersionInfo> { Argument = package }, _logger); + PluginInstalled?.Invoke(this, new GenericEventArgs<PackageVersionInfo> { Argument = package }); _applicationHost.NotifyPendingRestart(); } @@ -469,7 +468,7 @@ namespace Emby.Server.Implementations.Updates PackageVersionInfo = package }; - EventHelper.FireEventIfNotNull(PackageInstalling, this, installationEventArgs, _logger); + PackageInstalling?.Invoke(this, installationEventArgs); try { @@ -482,7 +481,7 @@ namespace Emby.Server.Implementations.Updates CompletedInstallationsInternal.Add(installationInfo); - EventHelper.FireEventIfNotNull(PackageInstallationCompleted, this, installationEventArgs, _logger); + PackageInstallationCompleted?.Invoke(this, installationEventArgs); } catch (OperationCanceledException) { @@ -493,7 +492,7 @@ namespace Emby.Server.Implementations.Updates _logger.LogInformation("Package installation cancelled: {0} {1}", package.name, package.versionStr); - EventHelper.FireEventIfNotNull(PackageInstallationCancelled, this, installationEventArgs, _logger); + PackageInstallationCancelled?.Invoke(this, installationEventArgs); throw; } @@ -506,12 +505,11 @@ namespace Emby.Server.Implementations.Updates CurrentInstallations.Remove(tuple); } - EventHelper.FireEventIfNotNull(PackageInstallationFailed, this, new InstallationFailedEventArgs + PackageInstallationFailed?.Invoke(this, new InstallationFailedEventArgs { InstallationInfo = installationInfo, Exception = ex - - }, _logger); + }); throw; } diff --git a/Jellyfin.Server/SocketSharp/SharpWebSocket.cs b/Jellyfin.Server/SocketSharp/SharpWebSocket.cs index 1c72035a5..77de50267 100644 --- a/Jellyfin.Server/SocketSharp/SharpWebSocket.cs +++ b/Jellyfin.Server/SocketSharp/SharpWebSocket.cs @@ -1,9 +1,8 @@ -using System; +using System; using System.Threading; using System.Threading.Tasks; using System.Net.WebSockets; using Emby.Server.Implementations.Net; -using MediaBrowser.Common.Events; using Microsoft.Extensions.Logging; namespace Jellyfin.SocketSharp @@ -55,15 +54,15 @@ namespace Jellyfin.SocketSharp void socket_OnError(object sender, SocketHttpListener.ErrorEventArgs e) { - _logger.LogError("Error in SharpWebSocket: {0}", e.Message ?? string.Empty); - //EventHelper.FireEventIfNotNull(Closed, this, EventArgs.Empty, _logger); + _logger.LogError("Error in SharpWebSocket: {Message}", e.Message ?? string.Empty); + //Closed?.Invoke(this, EventArgs.Empty); } void socket_OnClose(object sender, SocketHttpListener.CloseEventArgs e) { _taskCompletionSource.TrySetResult(true); - EventHelper.FireEventIfNotNull(Closed, this, EventArgs.Empty, _logger); + Closed?.Invoke(this, EventArgs.Empty); } void socket_OnMessage(object sender, SocketHttpListener.MessageEventArgs e) diff --git a/MediaBrowser.Api/BaseApiService.cs b/MediaBrowser.Api/BaseApiService.cs index 07b8185c5..ed31cbd1d 100644 --- a/MediaBrowser.Api/BaseApiService.cs +++ b/MediaBrowser.Api/BaseApiService.cs @@ -55,12 +55,11 @@ namespace MediaBrowser.Api return Request.Headers[name]; } - private static readonly string[] EmptyStringArray = Array.Empty<string>(); public static string[] SplitValue(string value, char delim) { if (string.IsNullOrWhiteSpace(value)) { - return EmptyStringArray; + return Array.Empty<string>(); } return value.Split(new[] { delim }, StringSplitOptions.RemoveEmptyEntries); diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs index af56f6382..28e75bf55 100644 --- a/MediaBrowser.Api/Playback/BaseStreamingService.cs +++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs @@ -686,7 +686,7 @@ namespace MediaBrowser.Api.Playback }; var auth = AuthorizationContext.GetAuthorizationInfo(Request); - if (auth.UserId != null) + if (!auth.UserId.Equals(Guid.Empty)) { state.User = UserManager.GetUserById(auth.UserId); } diff --git a/MediaBrowser.Api/UserService.cs b/MediaBrowser.Api/UserService.cs index 29f3070a5..913a55b2b 100644 --- a/MediaBrowser.Api/UserService.cs +++ b/MediaBrowser.Api/UserService.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Common.Extensions; +using MediaBrowser.Controller.Authentication; +using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Net; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Devices; @@ -10,11 +11,9 @@ using MediaBrowser.Model.Connect; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Users; using System; -using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using MediaBrowser.Model.Services; -using MediaBrowser.Controller.Authentication; namespace MediaBrowser.Api { diff --git a/MediaBrowser.Common/Events/EventHelper.cs b/MediaBrowser.Common/Events/EventHelper.cs index 04a2270e3..2630ce7da 100644 --- a/MediaBrowser.Common/Events/EventHelper.cs +++ b/MediaBrowser.Common/Events/EventHelper.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; namespace MediaBrowser.Common.Events { + // TODO: @bond Remove /// <summary> /// Class EventHelper /// </summary> @@ -59,50 +60,5 @@ namespace MediaBrowser.Common.Events }); } } - - /// <summary> - /// Fires the event. - /// </summary> - /// <param name="handler">The handler.</param> - /// <param name="sender">The sender.</param> - /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> - /// <param name="logger">The logger.</param> - public static void FireEventIfNotNull(EventHandler handler, object sender, EventArgs args, ILogger logger) - { - if (handler != null) - { - try - { - handler(sender, args); - } - catch (Exception ex) - { - logger.LogError(ex, "Error in event handler"); - } - } - } - - /// <summary> - /// Fires the event. - /// </summary> - /// <typeparam name="T"></typeparam> - /// <param name="handler">The handler.</param> - /// <param name="sender">The sender.</param> - /// <param name="args">The args.</param> - /// <param name="logger">The logger.</param> - public static void FireEventIfNotNull<T>(EventHandler<T> handler, object sender, T args, ILogger logger) - { - if (handler != null) - { - try - { - handler(sender, args); - } - catch (Exception ex) - { - logger.LogError(ex, "Error in event handler"); - } - } - } } } diff --git a/MediaBrowser.Controller/Authentication/IAuthenticationProvider.cs b/MediaBrowser.Controller/Authentication/IAuthenticationProvider.cs index becb3ea62..82308296f 100644 --- a/MediaBrowser.Controller/Authentication/IAuthenticationProvider.cs +++ b/MediaBrowser.Controller/Authentication/IAuthenticationProvider.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Threading; -using System.Threading.Tasks; +using System.Threading.Tasks; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Users; diff --git a/MediaBrowser.Controller/Chapters/IChapterManager.cs b/MediaBrowser.Controller/Chapters/IChapterManager.cs index 2a20eb365..161e87094 100644 --- a/MediaBrowser.Controller/Chapters/IChapterManager.cs +++ b/MediaBrowser.Controller/Chapters/IChapterManager.cs @@ -1,5 +1,4 @@ using System.Collections.Generic; -using System.Threading.Tasks; using MediaBrowser.Model.Entities; namespace MediaBrowser.Controller.Chapters @@ -10,12 +9,6 @@ namespace MediaBrowser.Controller.Chapters public interface IChapterManager { /// <summary> - /// Gets the chapters. - /// </summary> - /// <param name="itemId">The item identifier.</param> - /// <returns>List{ChapterInfo}.</returns> - - /// <summary> /// Saves the chapters. /// </summary> void SaveChapters(string itemId, List<ChapterInfo> chapters); diff --git a/MediaBrowser.Controller/Collections/CollectionCreationOptions.cs b/MediaBrowser.Controller/Collections/CollectionCreationOptions.cs index 727b487a7..5363e035c 100644 --- a/MediaBrowser.Controller/Collections/CollectionCreationOptions.cs +++ b/MediaBrowser.Controller/Collections/CollectionCreationOptions.cs @@ -20,8 +20,8 @@ namespace MediaBrowser.Controller.Collections public CollectionCreationOptions() { ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - ItemIdList = new string[] {}; - UserIds = new Guid[] {}; + ItemIdList = Array.Empty<string>(); + UserIds = Array.Empty<Guid>(); } } } diff --git a/MediaBrowser.Controller/Connect/IConnectManager.cs b/MediaBrowser.Controller/Connect/IConnectManager.cs deleted file mode 100644 index 8ac61bf2b..000000000 --- a/MediaBrowser.Controller/Connect/IConnectManager.cs +++ /dev/null @@ -1,45 +0,0 @@ -using MediaBrowser.Controller.Entities; -using MediaBrowser.Model.Connect; -using System.Collections.Generic; -using System.Threading.Tasks; - -namespace MediaBrowser.Controller.Connect -{ - public interface IConnectManager - { - /// <summary> - /// Gets the wan API address. - /// </summary> - /// <value>The wan API address.</value> - string WanApiAddress { get; } - - /// <summary> - /// Links the user. - /// </summary> - /// <param name="userId">The user identifier.</param> - /// <param name="connectUsername">The connect username.</param> - /// <returns>Task.</returns> - Task<UserLinkResult> LinkUser(string userId, string connectUsername); - - /// <summary> - /// Removes the link. - /// </summary> - /// <param name="userId">The user identifier.</param> - /// <returns>Task.</returns> - Task RemoveConnect(string userId); - - User GetUserFromExchangeToken(string token); - - /// <summary> - /// Authenticates the specified username. - /// </summary> - Task<ConnectAuthenticationResult> Authenticate(string username, string password, string passwordMd5); - - /// <summary> - /// Determines whether [is authorization token valid] [the specified token]. - /// </summary> - /// <param name="token">The token.</param> - /// <returns><c>true</c> if [is authorization token valid] [the specified token]; otherwise, <c>false</c>.</returns> - bool IsAuthorizationTokenValid(string token); - } -} diff --git a/MediaBrowser.Controller/Dto/IDtoService.cs b/MediaBrowser.Controller/Dto/IDtoService.cs index 219b36789..37e83e45a 100644 --- a/MediaBrowser.Controller/Dto/IDtoService.cs +++ b/MediaBrowser.Controller/Dto/IDtoService.cs @@ -2,7 +2,6 @@ using MediaBrowser.Model.Dto; using MediaBrowser.Model.Querying; using System.Collections.Generic; -using MediaBrowser.Controller.Sync; namespace MediaBrowser.Controller.Dto { diff --git a/MediaBrowser.Controller/Entities/AggregateFolder.cs b/MediaBrowser.Controller/Entities/AggregateFolder.cs index 4f4b3483c..a4601c270 100644 --- a/MediaBrowser.Controller/Entities/AggregateFolder.cs +++ b/MediaBrowser.Controller/Entities/AggregateFolder.cs @@ -20,7 +20,7 @@ namespace MediaBrowser.Controller.Entities { public AggregateFolder() { - PhysicalLocationsList = new string[] { }; + PhysicalLocationsList = Array.Empty<string>(); } [IgnoreDataMember] diff --git a/MediaBrowser.Controller/Entities/Audio/Audio.cs b/MediaBrowser.Controller/Entities/Audio/Audio.cs index d07e31d8a..1aeae6052 100644 --- a/MediaBrowser.Controller/Entities/Audio/Audio.cs +++ b/MediaBrowser.Controller/Entities/Audio/Audio.cs @@ -2,13 +2,8 @@ using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; -using MediaBrowser.Model.MediaInfo; using System; using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Threading; -using MediaBrowser.Common.Extensions; using MediaBrowser.Controller.Persistence; using MediaBrowser.Model.Serialization; @@ -36,8 +31,8 @@ namespace MediaBrowser.Controller.Entities.Audio public Audio() { - Artists = new string[] {}; - AlbumArtists = new string[] {}; + Artists = Array.Empty<string>(); + AlbumArtists = Array.Empty<string>(); } public override double GetDefaultPrimaryImageAspectRatio() diff --git a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs index 48b5c64b2..870e6e07e 100644 --- a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs +++ b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs @@ -23,8 +23,8 @@ namespace MediaBrowser.Controller.Entities.Audio public MusicAlbum() { - Artists = new string[] {}; - AlbumArtists = new string[] {}; + Artists = Array.Empty<string>(); + AlbumArtists = Array.Empty<string>(); } [IgnoreDataMember] diff --git a/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs b/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs index 2774dc944..56ed10ced 100644 --- a/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs +++ b/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs @@ -129,13 +129,12 @@ namespace MediaBrowser.Controller.Entities.Audio return base.IsSaveLocalMetadataEnabled(); } - private readonly Task _cachedTask = Task.FromResult(true); protected override Task ValidateChildrenInternal(IProgress<double> progress, CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService) { if (IsAccessedByName) { // Should never get in here anyway - return _cachedTask; + return Task.CompletedTask; } return base.ValidateChildrenInternal(progress, cancellationToken, recursive, refreshChildMetadata, refreshOptions, directoryService); diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index e80fe3387..a268e6d76 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -35,24 +35,24 @@ namespace MediaBrowser.Controller.Entities /// </summary> public abstract class BaseItem : IHasProviderIds, IHasLookupInfo<ItemLookupInfo> { - protected static MetadataFields[] EmptyMetadataFieldsArray = new MetadataFields[] { }; - protected static MediaUrl[] EmptyMediaUrlArray = new MediaUrl[] { }; - protected static ItemImageInfo[] EmptyItemImageInfoArray = new ItemImageInfo[] { }; - public static readonly LinkedChild[] EmptyLinkedChildArray = new LinkedChild[] { }; + protected static MetadataFields[] EmptyMetadataFieldsArray = Array.Empty<MetadataFields>(); + protected static MediaUrl[] EmptyMediaUrlArray = Array.Empty<MediaUrl>(); + protected static ItemImageInfo[] EmptyItemImageInfoArray = Array.Empty<ItemImageInfo>(); + public static readonly LinkedChild[] EmptyLinkedChildArray = Array.Empty<LinkedChild>(); protected BaseItem() { - ThemeSongIds = new Guid[] {}; - ThemeVideoIds = new Guid[] {}; - Tags = new string[] {}; - Genres = new string[] {}; - Studios = new string[] {}; + ThemeSongIds = Array.Empty<Guid>(); + ThemeVideoIds = Array.Empty<Guid>(); + Tags = Array.Empty<string>(); + Genres = Array.Empty<string>(); + Studios = Array.Empty<string>(); ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); LockedFields = EmptyMetadataFieldsArray; ImageInfos = EmptyItemImageInfoArray; - ProductionLocations = new string[] {}; - RemoteTrailers = new MediaUrl[] { }; - ExtraIds = new Guid[] {}; + ProductionLocations = Array.Empty<string>(); + RemoteTrailers = Array.Empty<MediaUrl>(); + ExtraIds = Array.Empty<Guid>(); } public static readonly char[] SlugReplaceChars = { '?', '/', '&' }; @@ -62,7 +62,6 @@ namespace MediaBrowser.Controller.Entities /// The supported image extensions /// </summary> public static readonly string[] SupportedImageExtensions = { ".png", ".jpg", ".jpeg", ".tbn", ".gif" }; - public static readonly List<string> SupportedImageExtensionsList = SupportedImageExtensions.ToList(); /// <summary> /// The trailer folder name @@ -2895,6 +2894,10 @@ namespace MediaBrowser.Controller.Entities return ThemeVideoIds.Select(LibraryManager.GetItemById).Where(i => i.ExtraType.Equals(Model.Entities.ExtraType.ThemeVideo)).OrderBy(i => i.SortName); } + /// <summary> + /// Gets or sets the remote trailers. + /// </summary> + /// <value>The remote trailers.</value> public MediaUrl[] RemoteTrailers { get; set; } public IEnumerable<BaseItem> GetExtras() @@ -2913,21 +2916,24 @@ namespace MediaBrowser.Controller.Entities } public virtual bool IsHD { - get{ + get + { return Height >= 720; - } + } } public bool IsShortcut{ get; set;} public string ShortcutPath{ get; set;} public int Width { get; set; } public int Height { get; set; } public Guid[] ExtraIds { get; set; } - public virtual long GetRunTimeTicksForPlayState() { + public virtual long GetRunTimeTicksForPlayState() + { return RunTimeTicks ?? 0; } // what does this do? public static ExtraType[] DisplayExtraTypes = new[] {Model.Entities.ExtraType.ThemeSong, Model.Entities.ExtraType.ThemeVideo }; - public virtual bool SupportsExternalTransfer { + public virtual bool SupportsExternalTransfer + { get { return false; } diff --git a/MediaBrowser.Controller/Entities/CollectionFolder.cs b/MediaBrowser.Controller/Entities/CollectionFolder.cs index 7292b166a..75d6b9381 100644 --- a/MediaBrowser.Controller/Entities/CollectionFolder.cs +++ b/MediaBrowser.Controller/Entities/CollectionFolder.cs @@ -31,18 +31,10 @@ namespace MediaBrowser.Controller.Entities public CollectionFolder() { - PhysicalLocationsList = new string[] { }; - PhysicalFolderIds = new Guid[] { }; + PhysicalLocationsList = Array.Empty<string>(); + PhysicalFolderIds = Array.Empty<Guid>(); } - //public override double? GetDefaultPrimaryImageAspectRatio() - //{ - // double value = 16; - // value /= 9; - - // return value; - //} - [IgnoreDataMember] public override bool SupportsPlayedStatus { @@ -339,7 +331,7 @@ namespace MediaBrowser.Controller.Entities /// <returns>Task.</returns> protected override Task ValidateChildrenInternal(IProgress<double> progress, CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService) { - return Task.FromResult(true); + return Task.CompletedTask; } /// <summary> diff --git a/MediaBrowser.Controller/Entities/Game.cs b/MediaBrowser.Controller/Entities/Game.cs index 3d006a699..4efc5648e 100644 --- a/MediaBrowser.Controller/Entities/Game.cs +++ b/MediaBrowser.Controller/Entities/Game.cs @@ -12,10 +12,10 @@ namespace MediaBrowser.Controller.Entities { public Game() { - MultiPartGameFiles = new string[] {}; + MultiPartGameFiles = Array.Empty<string>(); RemoteTrailers = EmptyMediaUrlArray; - LocalTrailerIds = new Guid[] {}; - RemoteTrailerIds = new Guid[] {}; + LocalTrailerIds = Array.Empty<Guid>(); + RemoteTrailerIds = Array.Empty<Guid>(); } public Guid[] LocalTrailerIds { get; set; } @@ -39,12 +39,6 @@ namespace MediaBrowser.Controller.Entities } /// <summary> - /// Gets or sets the remote trailers. - /// </summary> - /// <value>The remote trailers.</value> - public MediaUrl[] RemoteTrailers { get; set; } - - /// <summary> /// Gets the type of the media. /// </summary> /// <value>The type of the media.</value> diff --git a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs index ff57c2471..bb99c0a84 100644 --- a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs +++ b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs @@ -4,7 +4,6 @@ using System.Collections.Generic; using MediaBrowser.Model.Configuration; using System.Linq; using MediaBrowser.Controller.Dto; -using MediaBrowser.Model.Querying; namespace MediaBrowser.Controller.Entities { @@ -48,7 +47,6 @@ namespace MediaBrowser.Controller.Entities public string PresentationUniqueKey { get; set; } public string Path { get; set; } - public string PathNotStartsWith { get; set; } public string Name { get; set; } public string Person { get; set; } @@ -160,8 +158,6 @@ namespace MediaBrowser.Controller.Entities public bool EnableGroupByMetadataKey { get; set; } public bool? HasChapterImages { get; set; } - // why tuple vs value tuple? - //public Tuple<string, SortOrder>[] OrderBy { get; set; } public ValueTuple<string, SortOrder>[] OrderBy { get; set; } public DateTime? MinDateCreated { get; set; } @@ -180,44 +176,44 @@ namespace MediaBrowser.Controller.Entities public InternalItemsQuery() { - AlbumArtistIds = new Guid[] {}; - AlbumIds = new Guid[] {}; - AncestorIds = new Guid[] {}; - ArtistIds = new Guid[] {}; - BlockUnratedItems = new UnratedItem[] { }; - BoxSetLibraryFolders = new Guid[] {}; - ChannelIds = new Guid[] {}; - ContributingArtistIds = new Guid[] {}; + AlbumArtistIds = Array.Empty<Guid>(); + AlbumIds = Array.Empty<Guid>(); + AncestorIds = Array.Empty<Guid>(); + ArtistIds = Array.Empty<Guid>(); + BlockUnratedItems = Array.Empty<UnratedItem>(); + BoxSetLibraryFolders = Array.Empty<Guid>(); + ChannelIds = Array.Empty<Guid>(); + ContributingArtistIds = Array.Empty<Guid>(); DtoOptions = new DtoOptions(); EnableTotalRecordCount = true; - ExcludeArtistIds = new Guid[] {}; - ExcludeInheritedTags = new string[] {}; - ExcludeItemIds = new Guid[] {}; - ExcludeItemTypes = new string[] {}; + ExcludeArtistIds = Array.Empty<Guid>(); + ExcludeInheritedTags = Array.Empty<string>(); + ExcludeItemIds = Array.Empty<Guid>(); + ExcludeItemTypes = Array.Empty<string>(); ExcludeProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - ExcludeTags = new string[] {}; - GenreIds = new Guid[] {}; - Genres = new string[] {}; + ExcludeTags = Array.Empty<string>(); + GenreIds = Array.Empty<Guid>(); + Genres = Array.Empty<string>(); GroupByPresentationUniqueKey = true; HasAnyProviderId = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - ImageTypes = new ImageType[] { }; - IncludeItemTypes = new string[] {}; - ItemIds = new Guid[] {}; - MediaTypes = new string[] {}; + ImageTypes = Array.Empty<ImageType>(); + IncludeItemTypes = Array.Empty<string>(); + ItemIds = Array.Empty<Guid>(); + MediaTypes = Array.Empty<string>(); MinSimilarityScore = 20; - OfficialRatings = new string[] {}; + OfficialRatings = Array.Empty<string>(); OrderBy = Array.Empty<ValueTuple<string, SortOrder>>(); - PersonIds = new Guid[] {}; - PersonTypes = new string[] {}; - PresetViews = new string[] {}; - SeriesStatuses = new SeriesStatus[] { }; - SourceTypes = new SourceType[] { }; - StudioIds = new Guid[] {}; - Tags = new string[] {}; - TopParentIds = new Guid[] {}; - TrailerTypes = new TrailerType[] { }; - VideoTypes = new VideoType[] { }; - Years = new int[] { }; + PersonIds = Array.Empty<Guid>(); + PersonTypes = Array.Empty<string>(); + PresetViews = Array.Empty<string>(); + SeriesStatuses = Array.Empty<SeriesStatus>(); + SourceTypes = Array.Empty<SourceType>(); + StudioIds = Array.Empty<Guid>(); + Tags = Array.Empty<string>(); + TopParentIds = Array.Empty<Guid>(); + TrailerTypes = Array.Empty<TrailerType>(); + VideoTypes = Array.Empty<VideoType>(); + Years = Array.Empty<int>(); } public InternalItemsQuery(User user) diff --git a/MediaBrowser.Controller/Entities/InternalPeopleQuery.cs b/MediaBrowser.Controller/Entities/InternalPeopleQuery.cs index 7e00834e3..ce3e9e070 100644 --- a/MediaBrowser.Controller/Entities/InternalPeopleQuery.cs +++ b/MediaBrowser.Controller/Entities/InternalPeopleQuery.cs @@ -14,8 +14,8 @@ namespace MediaBrowser.Controller.Entities public InternalPeopleQuery() { - PersonTypes = new string[] { }; - ExcludePersonTypes = new string[] { }; + PersonTypes = Array.Empty<string>(); + ExcludePersonTypes = Array.Empty<string>(); } } } diff --git a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs index 5918bf981..e888a5582 100644 --- a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs +++ b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs @@ -19,8 +19,8 @@ namespace MediaBrowser.Controller.Entities.Movies public BoxSet() { RemoteTrailers = EmptyMediaUrlArray; - LocalTrailerIds = new Guid[] { }; - RemoteTrailerIds = new Guid[] { }; + LocalTrailerIds = Array.Empty<Guid>(); + RemoteTrailerIds = Array.Empty<Guid>(); DisplayOrder = ItemSortBy.PremiereDate; } @@ -53,12 +53,6 @@ namespace MediaBrowser.Controller.Entities.Movies public Guid[] RemoteTrailerIds { get; set; } /// <summary> - /// Gets or sets the remote trailers. - /// </summary> - /// <value>The remote trailers.</value> - public MediaUrl[] RemoteTrailers { get; set; } - - /// <summary> /// Gets or sets the display order. /// </summary> /// <value>The display order.</value> @@ -70,12 +64,7 @@ namespace MediaBrowser.Controller.Entities.Movies } public override double GetDefaultPrimaryImageAspectRatio() - { - double value = 2; - value /= 3; - - return value; - } + => 2 / 3; public override UnratedItem GetBlockUnratedType() { @@ -254,7 +243,7 @@ namespace MediaBrowser.Controller.Entities.Movies return FlattenItems(boxset.GetLinkedChildren(), expandedFolders); } - return new BaseItem[] { }; + return Array.Empty<BaseItem>(); } return new[] { item }; diff --git a/MediaBrowser.Controller/Entities/Movies/Movie.cs b/MediaBrowser.Controller/Entities/Movies/Movie.cs index 878b1b860..4f743991b 100644 --- a/MediaBrowser.Controller/Entities/Movies/Movie.cs +++ b/MediaBrowser.Controller/Entities/Movies/Movie.cs @@ -6,8 +6,6 @@ using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; - -using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; using MediaBrowser.Model.Providers; using MediaBrowser.Model.Serialization; @@ -32,8 +30,6 @@ namespace MediaBrowser.Controller.Entities.Movies public Guid[] LocalTrailerIds { get; set; } public Guid[] RemoteTrailerIds { get; set; } - public MediaUrl[] RemoteTrailers { get; set; } - /// <summary> /// Gets or sets the name of the TMDB collection. /// </summary> @@ -55,10 +51,7 @@ namespace MediaBrowser.Controller.Entities.Movies return 0; } - double value = 2; - value /= 3; - - return value; + return 2 / 3; } protected override async Task<bool> RefreshedOwnedItems(MetadataRefreshOptions options, List<FileSystemMetadata> fileSystemChildren, CancellationToken cancellationToken) diff --git a/MediaBrowser.Controller/Entities/MusicVideo.cs b/MediaBrowser.Controller/Entities/MusicVideo.cs index 78f9d0671..4015a1178 100644 --- a/MediaBrowser.Controller/Entities/MusicVideo.cs +++ b/MediaBrowser.Controller/Entities/MusicVideo.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Controller.Entities public MusicVideo() { - Artists = new string[] {}; + Artists = Array.Empty<string>(); } [IgnoreDataMember] diff --git a/MediaBrowser.Controller/Entities/Photo.cs b/MediaBrowser.Controller/Entities/Photo.cs index 01c10831d..662aa4249 100644 --- a/MediaBrowser.Controller/Entities/Photo.cs +++ b/MediaBrowser.Controller/Entities/Photo.cs @@ -58,6 +58,7 @@ namespace MediaBrowser.Controller.Entities public override double GetDefaultPrimaryImageAspectRatio() { + // REVIEW: @bond if (Width.HasValue && Height.HasValue) { double width = Width.Value; @@ -85,8 +86,8 @@ namespace MediaBrowser.Controller.Entities return base.GetDefaultPrimaryImageAspectRatio(); } - public int? Width { get; set; } - public int? Height { get; set; } + public new int? Width { get; set; } + public new int? Height { get; set; } public string CameraMake { get; set; } public string CameraModel { get; set; } public string Software { get; set; } diff --git a/MediaBrowser.Controller/Entities/TV/Episode.cs b/MediaBrowser.Controller/Entities/TV/Episode.cs index 3a3a902a3..00e055c51 100644 --- a/MediaBrowser.Controller/Entities/TV/Episode.cs +++ b/MediaBrowser.Controller/Entities/TV/Episode.cs @@ -1,4 +1,4 @@ -using MediaBrowser.Controller.Providers; +using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; using System; @@ -19,13 +19,12 @@ namespace MediaBrowser.Controller.Entities.TV public Episode() { RemoteTrailers = EmptyMediaUrlArray; - LocalTrailerIds = new Guid[] {}; - RemoteTrailerIds = new Guid[] {}; + LocalTrailerIds = Array.Empty<Guid>(); + RemoteTrailerIds = Array.Empty<Guid>(); } public Guid[] LocalTrailerIds { get; set; } public Guid[] RemoteTrailerIds { get; set; } - public MediaUrl[] RemoteTrailers { get; set; } /// <summary> /// Gets the season in which it aired. @@ -112,10 +111,7 @@ namespace MediaBrowser.Controller.Entities.TV return 0; } - double value = 16; - value /= 9; - - return value; + return 16 / 9; } public override List<string> GetUserDataKeys() diff --git a/MediaBrowser.Controller/Entities/TV/Season.cs b/MediaBrowser.Controller/Entities/TV/Season.cs index b5f77df55..cb3a7f345 100644 --- a/MediaBrowser.Controller/Entities/TV/Season.cs +++ b/MediaBrowser.Controller/Entities/TV/Season.cs @@ -102,10 +102,11 @@ namespace MediaBrowser.Controller.Entities.TV get { var seriesId = SeriesId; - if (seriesId.Equals(Guid.Empty)) { + if (seriesId == Guid.Empty) + { seriesId = FindSeriesId(); } - return !seriesId.Equals(Guid.Empty) ? (LibraryManager.GetItemById(seriesId) as Series) : null; + return seriesId == Guid.Empty ? null : (LibraryManager.GetItemById(seriesId) as Series); } } @@ -227,7 +228,7 @@ namespace MediaBrowser.Controller.Entities.TV public Guid FindSeriesId() { var series = FindParent<Series>(); - return series == null ? Guid.Empty: series.Id; + return series == null ? Guid.Empty : series.Id; } /// <summary> diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs index 88fde1760..d4a62626e 100644 --- a/MediaBrowser.Controller/Entities/TV/Series.cs +++ b/MediaBrowser.Controller/Entities/TV/Series.cs @@ -23,9 +23,9 @@ namespace MediaBrowser.Controller.Entities.TV public Series() { RemoteTrailers = EmptyMediaUrlArray; - LocalTrailerIds = new Guid[] {}; - RemoteTrailerIds = new Guid[] {}; - AirDays = new DayOfWeek[] { }; + LocalTrailerIds = Array.Empty<Guid>(); + RemoteTrailerIds = Array.Empty<Guid>(); + AirDays = Array.Empty<DayOfWeek>(); } public DayOfWeek[] AirDays { get; set; } @@ -73,8 +73,6 @@ namespace MediaBrowser.Controller.Entities.TV public Guid[] LocalTrailerIds { get; set; } public Guid[] RemoteTrailerIds { get; set; } - public MediaUrl[] RemoteTrailers { get; set; } - /// <summary> /// airdate, dvd or absolute /// </summary> diff --git a/MediaBrowser.Controller/Entities/Trailer.cs b/MediaBrowser.Controller/Entities/Trailer.cs index 4f2a5631b..2ef268ed1 100644 --- a/MediaBrowser.Controller/Entities/Trailer.cs +++ b/MediaBrowser.Controller/Entities/Trailer.cs @@ -15,18 +15,13 @@ namespace MediaBrowser.Controller.Entities { public Trailer() { - TrailerTypes = new TrailerType[] { }; + TrailerTypes = Array.Empty<TrailerType>(); } public TrailerType[] TrailerTypes { get; set; } public override double GetDefaultPrimaryImageAspectRatio() - { - double value = 2; - value /= 3; - - return value; - } + => 2 / 3; public override UnratedItem GetBlockUnratedType() { diff --git a/MediaBrowser.Controller/Entities/UserView.cs b/MediaBrowser.Controller/Entities/UserView.cs index 984cad481..b7c9884ff 100644 --- a/MediaBrowser.Controller/Entities/UserView.cs +++ b/MediaBrowser.Controller/Entities/UserView.cs @@ -1,21 +1,18 @@ using MediaBrowser.Controller.Playlists; using MediaBrowser.Controller.TV; -using MediaBrowser.Model.Entities; using MediaBrowser.Model.Querying; using System; using System.Collections.Generic; using System.Linq; using MediaBrowser.Model.Serialization; using System.Threading.Tasks; -using MediaBrowser.Controller.Dto; -using MediaBrowser.Controller.Collections; namespace MediaBrowser.Controller.Entities { public class UserView : Folder, IHasCollectionType { public string ViewType { get; set; } - public Guid DisplayParentId { get; set; } + public new Guid DisplayParentId { get; set; } public Guid? UserId { get; set; } @@ -68,14 +65,6 @@ namespace MediaBrowser.Controller.Entities } } - //public override double? GetDefaultPrimaryImageAspectRatio() - //{ - // double value = 16; - // value /= 9; - - // return value; - //} - public override int GetChildCount(User user) { return GetChildren(user, true).Count; @@ -161,8 +150,8 @@ namespace MediaBrowser.Controller.Entities public static bool IsEligibleForGrouping(Folder folder) { - var collectionFolder = folder as ICollectionFolder; - return collectionFolder != null && IsEligibleForGrouping(collectionFolder.CollectionType); + return folder is ICollectionFolder collectionFolder + && IsEligibleForGrouping(collectionFolder.CollectionType); } private static string[] ViewTypesEligibleForGrouping = new string[] @@ -195,7 +184,7 @@ namespace MediaBrowser.Controller.Entities protected override Task ValidateChildrenInternal(IProgress<double> progress, System.Threading.CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, Providers.MetadataRefreshOptions refreshOptions, Providers.IDirectoryService directoryService) { - return Task.FromResult(true); + return Task.CompletedTask; } [IgnoreDataMember] diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs index 65f5b8382..2db200ee2 100644 --- a/MediaBrowser.Controller/Entities/Video.cs +++ b/MediaBrowser.Controller/Entities/Video.cs @@ -10,7 +10,6 @@ using System.Globalization; using System.Linq; using System.Threading; using System.Threading.Tasks; -using MediaBrowser.Common.Extensions; using MediaBrowser.Model.IO; using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Extensions; @@ -132,8 +131,6 @@ namespace MediaBrowser.Controller.Entities public bool HasSubtitles { get; set; } public bool IsPlaceHolder { get; set; } - public bool IsShortcut { get; set; } - public string ShortcutPath { get; set; } /// <summary> /// Gets or sets the default index of the video stream. @@ -173,7 +170,7 @@ namespace MediaBrowser.Controller.Entities } else { - return new string[] {}; + return Array.Empty<string>(); } return mediaEncoder.GetPlayableStreamFileNames(Path, videoType); } @@ -186,9 +183,9 @@ namespace MediaBrowser.Controller.Entities public Video() { - AdditionalParts = new string[] {}; - LocalAlternateVersions = new string[] {}; - SubtitleFiles = new string[] {}; + AdditionalParts = Array.Empty<string>(); + LocalAlternateVersions = Array.Empty<string>(); + SubtitleFiles = Array.Empty<string>(); LinkedAlternateVersions = EmptyLinkedChildArray; } @@ -215,10 +212,10 @@ namespace MediaBrowser.Controller.Entities { if (!string.IsNullOrEmpty(PrimaryVersionId)) { - var item = LibraryManager.GetItemById(PrimaryVersionId) as Video; - if (item != null) + var item = LibraryManager.GetItemById(PrimaryVersionId); + if (item is Video video) { - return item.MediaSourceCount; + return video.MediaSourceCount; } } return LinkedAlternateVersions.Length + LocalAlternateVersions.Length + 1; @@ -366,7 +363,7 @@ namespace MediaBrowser.Controller.Entities /// Gets the additional parts. /// </summary> /// <returns>IEnumerable{Video}.</returns> - public IEnumerable<Video> GetAdditionalParts() + public IOrderedEnumerable<Video> GetAdditionalParts() { return GetAdditionalPartIds() .Select(i => LibraryManager.GetItemById(i)) @@ -420,8 +417,7 @@ namespace MediaBrowser.Controller.Entities { var updateType = base.UpdateFromResolvedItem(newItem); - var newVideo = newItem as Video; - if (newVideo != null) + if (newItem is Video newVideo) { if (!AdditionalParts.SequenceEqual(newVideo.AdditionalParts, StringComparer.Ordinal)) { @@ -463,7 +459,7 @@ namespace MediaBrowser.Controller.Entities .Select(i => i.FullName) .ToArray(); } - return new string[] {}; + return Array.Empty<string>(); } /// <summary> @@ -618,9 +614,5 @@ namespace MediaBrowser.Controller.Entities return list; } - - public static bool IsHD (Video video) { - return video.Height >= 720; - } } } diff --git a/MediaBrowser.Controller/Library/IUserDataManager.cs b/MediaBrowser.Controller/Library/IUserDataManager.cs index 11d77f81a..f3f81378b 100644 --- a/MediaBrowser.Controller/Library/IUserDataManager.cs +++ b/MediaBrowser.Controller/Library/IUserDataManager.cs @@ -5,7 +5,6 @@ using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using System; using System.Threading; -using MediaBrowser.Model.Querying; namespace MediaBrowser.Controller.Library { diff --git a/MediaBrowser.Controller/Library/ItemResolveArgs.cs b/MediaBrowser.Controller/Library/ItemResolveArgs.cs index 7197425f3..9812802e7 100644 --- a/MediaBrowser.Controller/Library/ItemResolveArgs.cs +++ b/MediaBrowser.Controller/Library/ItemResolveArgs.cs @@ -2,10 +2,7 @@ using MediaBrowser.Controller.Providers; using System; using System.Collections.Generic; -using System.IO; using System.Linq; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.IO; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.IO; @@ -169,6 +166,7 @@ namespace MediaBrowser.Controller.Library AdditionalLocations.Add(path); } + // REVIEW: @bond /// <summary> /// Gets the physical locations. /// </summary> @@ -177,7 +175,7 @@ namespace MediaBrowser.Controller.Library { get { - var paths = string.IsNullOrEmpty(Path) ? new string[] { } : new[] { Path }; + var paths = string.IsNullOrEmpty(Path) ? Array.Empty<string>() : new[] { Path }; return AdditionalLocations == null ? paths : paths.Concat(AdditionalLocations).ToArray(); } } @@ -261,7 +259,7 @@ namespace MediaBrowser.Controller.Library } /// <summary> - /// Equalses the specified args. + /// Equals the specified args. /// </summary> /// <param name="args">The args.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> diff --git a/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs b/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs index fa3aab4f2..4dc6c7517 100644 --- a/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs +++ b/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs @@ -47,52 +47,21 @@ namespace MediaBrowser.Controller.LiveTv return list; } - public static double GetDefaultPrimaryImageAspectRatio(IHasProgramAttributes item) + private static string EmbyServiceName = "Emby"; + public override double GetDefaultPrimaryImageAspectRatio() { - var serviceName = item.ServiceName; + var serviceName = ServiceName; - if (item.IsMovie) + if (string.Equals(serviceName, EmbyServiceName, StringComparison.OrdinalIgnoreCase) || string.Equals(serviceName, "Next Pvr", StringComparison.OrdinalIgnoreCase)) { - if (string.Equals(serviceName, EmbyServiceName, StringComparison.OrdinalIgnoreCase) || string.Equals(serviceName, "Next Pvr", StringComparison.OrdinalIgnoreCase)) - { - double value = 2; - value /= 3; - - return value; - } - else - { - double value = 16; - value /= 9; - - return value; - } + return 2 / 3; } else { - if (string.Equals(serviceName, EmbyServiceName, StringComparison.OrdinalIgnoreCase) || string.Equals(serviceName, "Next Pvr", StringComparison.OrdinalIgnoreCase)) - { - double value = 2; - value /= 3; - - return value; - } - else - { - double value = 16; - value /= 9; - - return value; - } + return 16 / 9; } } - private static string EmbyServiceName = "Emby"; - public override double GetDefaultPrimaryImageAspectRatio() - { - return GetDefaultPrimaryImageAspectRatio(this); - } - [IgnoreDataMember] public override SourceType SourceType { diff --git a/MediaBrowser.Controller/LiveTv/TimerInfo.cs b/MediaBrowser.Controller/LiveTv/TimerInfo.cs index baf0b0b13..c9eb6fee6 100644 --- a/MediaBrowser.Controller/LiveTv/TimerInfo.cs +++ b/MediaBrowser.Controller/LiveTv/TimerInfo.cs @@ -10,11 +10,11 @@ namespace MediaBrowser.Controller.LiveTv { public TimerInfo() { - Genres = new string[] { }; + Genres = Array.Empty<string>(); KeepUntil = KeepUntil.UntilDeleted; ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); SeriesProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - Tags = new string[] { }; + Tags = Array.Empty<string>(); } public Dictionary<string, string> ProviderIds { get; set; } diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs index 881e318ce..4fb9a711e 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; -using System.Threading; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Dlna; @@ -12,8 +11,6 @@ using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.Extensions; -using MediaBrowser.Common.Configuration; -using MediaBrowser.Model.Reflection; namespace MediaBrowser.Controller.MediaEncoding { @@ -343,19 +340,19 @@ namespace MediaBrowser.Controller.MediaEncoding public int GetVideoProfileScore(string profile) { - var list = new [] + string[] list = { - "Constrained Baseline", + "ConstrainedBaseline", "Baseline", "Extended", "Main", "High", - "Progressive High", - "Constrained High" + "ProgressiveHigh", + "ConstrainedHigh" }; // strip spaces because they may be stripped out on the query string - return Array.FindIndex(list, t => string.Equals(t.Replace(" ", ""), profile.Replace(" ", ""), StringComparison.OrdinalIgnoreCase)); + return Array.FindIndex(list, t => string.Equals(t, profile.Replace(" ", ""), StringComparison.OrdinalIgnoreCase)); } public string GetInputPathArgument(EncodingJobInfo state) @@ -516,18 +513,12 @@ namespace MediaBrowser.Controller.MediaEncoding public string NormalizeTranscodingLevel(string videoCodec, string level) { - double requestLevel; - // Clients may direct play higher than level 41, but there's no reason to transcode higher - if (double.TryParse(level, NumberStyles.Any, _usCulture, out requestLevel)) + if (double.TryParse(level, NumberStyles.Any, _usCulture, out double requestLevel) + && string.Equals(videoCodec, "h264", StringComparison.OrdinalIgnoreCase) + && requestLevel > 41) { - if (string.Equals(videoCodec, "h264", StringComparison.OrdinalIgnoreCase)) - { - if (requestLevel > 41) - { - return "41"; - } - } + return "41"; } return level; @@ -623,7 +614,7 @@ namespace MediaBrowser.Controller.MediaEncoding // h264 (h264_qsv) else if (string.Equals(videoEncoder, "h264_qsv", StringComparison.OrdinalIgnoreCase)) { - string[] valid_h264_qsv = new string[] { "veryslow", "slower", "slow", "medium", "fast", "faster", "veryfast" }; + string[] valid_h264_qsv = { "veryslow", "slower", "slow", "medium", "fast", "faster", "veryfast" }; if (valid_h264_qsv.Contains(encodingOptions.H264Preset, StringComparer.OrdinalIgnoreCase)) { @@ -1958,12 +1949,12 @@ namespace MediaBrowser.Controller.MediaEncoding } else { - state.PlayableStreamFileNames = new string[] { }; + state.PlayableStreamFileNames = Array.Empty<string>(); } } else { - state.PlayableStreamFileNames = new string[] { }; + state.PlayableStreamFileNames = Array.Empty<string>(); } if (mediaSource.Timestamp.HasValue) diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingJobInfo.cs b/MediaBrowser.Controller/MediaEncoding/EncodingJobInfo.cs index c8c2367e6..3f6da59d8 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingJobInfo.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingJobInfo.cs @@ -207,7 +207,7 @@ namespace MediaBrowser.Controller.MediaEncoding } } - return new string[] { }; + return Array.Empty<string>(); } public string GetRequestedLevel(string codec) @@ -317,10 +317,10 @@ namespace MediaBrowser.Controller.MediaEncoding _logger = logger; TranscodingType = jobType; RemoteHttpHeaders = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - PlayableStreamFileNames = new string[] { }; - SupportedAudioCodecs = new string[] { }; - SupportedVideoCodecs = new string[] { }; - SupportedSubtitleCodecs = new string[] { }; + PlayableStreamFileNames = Array.Empty<string>(); + SupportedAudioCodecs = Array.Empty<string>(); + SupportedVideoCodecs = Array.Empty<string>(); + SupportedSubtitleCodecs = Array.Empty<string>(); } public bool IsSegmentedLiveStream diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs b/MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs index befbb2140..101748a5a 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs @@ -10,7 +10,6 @@ namespace MediaBrowser.Controller.MediaEncoding public class EncodingJobOptions : BaseEncodingJobOptions { public string OutputDirectory { get; set; } - public string ItemId { get; set; } public string MediaSourceId { get; set; } public string AudioCodec { get; set; } diff --git a/MediaBrowser.Controller/MediaEncoding/MediaInfoRequest.cs b/MediaBrowser.Controller/MediaEncoding/MediaInfoRequest.cs index 1d7222801..b191f9905 100644 --- a/MediaBrowser.Controller/MediaEncoding/MediaInfoRequest.cs +++ b/MediaBrowser.Controller/MediaEncoding/MediaInfoRequest.cs @@ -18,7 +18,7 @@ namespace MediaBrowser.Controller.MediaEncoding public MediaInfoRequest() { - PlayableStreamFileNames = new string[] {}; + PlayableStreamFileNames = Array.Empty<string>(); } } } diff --git a/MediaBrowser.Controller/Net/AuthorizationInfo.cs b/MediaBrowser.Controller/Net/AuthorizationInfo.cs index a68060db5..848d8fa15 100644 --- a/MediaBrowser.Controller/Net/AuthorizationInfo.cs +++ b/MediaBrowser.Controller/Net/AuthorizationInfo.cs @@ -1,7 +1,6 @@ using MediaBrowser.Controller.Entities; using System; - namespace MediaBrowser.Controller.Net { public class AuthorizationInfo @@ -12,12 +11,7 @@ namespace MediaBrowser.Controller.Net /// <value>The user identifier.</value> public Guid UserId { get { - if (User == null) { - return Guid.Empty; - } - else { - return User.Id; - } + return User == null ? Guid.Empty : User.Id; } } diff --git a/MediaBrowser.Controller/Net/WebSocketConnectEventArgs.cs b/MediaBrowser.Controller/Net/WebSocketConnectEventArgs.cs index b200f883a..26abbc2d2 100644 --- a/MediaBrowser.Controller/Net/WebSocketConnectEventArgs.cs +++ b/MediaBrowser.Controller/Net/WebSocketConnectEventArgs.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Specialized; using MediaBrowser.Model.Services; namespace MediaBrowser.Controller.Net @@ -7,7 +6,6 @@ namespace MediaBrowser.Controller.Net /// <summary> /// Class WebSocketConnectEventArgs /// </summary> - public class WebSocketConnectingEventArgs : EventArgs { /// <summary> diff --git a/MediaBrowser.Controller/Playlists/IPlaylistManager.cs b/MediaBrowser.Controller/Playlists/IPlaylistManager.cs index 5e790111d..d481bf7c5 100644 --- a/MediaBrowser.Controller/Playlists/IPlaylistManager.cs +++ b/MediaBrowser.Controller/Playlists/IPlaylistManager.cs @@ -4,7 +4,6 @@ using System.Collections.Generic; using System.Threading.Tasks; using System; - namespace MediaBrowser.Controller.Playlists { public interface IPlaylistManager diff --git a/MediaBrowser.Controller/Playlists/Playlist.cs b/MediaBrowser.Controller/Playlists/Playlist.cs index 78614340a..642dfde80 100644 --- a/MediaBrowser.Controller/Playlists/Playlist.cs +++ b/MediaBrowser.Controller/Playlists/Playlist.cs @@ -15,14 +15,14 @@ namespace MediaBrowser.Controller.Playlists { public class Playlist : Folder, IHasShares { - public static string[] SupportedExtensions = new string[] { - - ".m3u", - ".m3u8", - ".pls", - ".wpl", - ".zpl" - }; + public static string[] SupportedExtensions = + { + ".m3u", + ".m3u8", + ".pls", + ".wpl", + ".zpl" + }; public Guid OwnerUserId { get; set; } @@ -30,7 +30,7 @@ namespace MediaBrowser.Controller.Playlists public Playlist() { - Shares = new Share[] { }; + Shares = Array.Empty<Share>(); } [IgnoreDataMember] @@ -131,7 +131,7 @@ namespace MediaBrowser.Controller.Playlists protected override Task ValidateChildrenInternal(IProgress<double> progress, CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService) { - return Task.FromResult(true); + return Task.CompletedTask; } public override List<BaseItem> GetChildren(User user, bool includeLinkedChildren, InternalItemsQuery query) @@ -186,8 +186,7 @@ namespace MediaBrowser.Controller.Playlists private static IEnumerable<BaseItem> GetPlaylistItems(BaseItem item, User user, string mediaType, DtoOptions options) { - var musicGenre = item as MusicGenre; - if (musicGenre != null) + if (item is MusicGenre musicGenre) { return LibraryManager.GetItemList(new InternalItemsQuery(user) { @@ -199,8 +198,7 @@ namespace MediaBrowser.Controller.Playlists }); } - var musicArtist = item as MusicArtist; - if (musicArtist != null) + if (item is MusicArtist musicArtist) { return LibraryManager.GetItemList(new InternalItemsQuery(user) { @@ -212,8 +210,7 @@ namespace MediaBrowser.Controller.Playlists }); } - var folder = item as Folder; - if (folder != null) + if (item is Folder folder) { var query = new InternalItemsQuery(user) { diff --git a/MediaBrowser.Controller/Providers/AlbumInfo.cs b/MediaBrowser.Controller/Providers/AlbumInfo.cs index 74feb4ea2..b0b443fc0 100644 --- a/MediaBrowser.Controller/Providers/AlbumInfo.cs +++ b/MediaBrowser.Controller/Providers/AlbumInfo.cs @@ -22,7 +22,7 @@ namespace MediaBrowser.Controller.Providers { ArtistProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); SongInfos = new List<SongInfo>(); - AlbumArtists = EmptyStringArray; + AlbumArtists = Array.Empty<string>(); } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.Controller/Providers/ImageRefreshOptions.cs b/MediaBrowser.Controller/Providers/ImageRefreshOptions.cs index 942d25071..6cc8a691e 100644 --- a/MediaBrowser.Controller/Providers/ImageRefreshOptions.cs +++ b/MediaBrowser.Controller/Providers/ImageRefreshOptions.cs @@ -20,7 +20,7 @@ namespace MediaBrowser.Controller.Providers ImageRefreshMode = MetadataRefreshMode.Default; DirectoryService = directoryService; - ReplaceImages = new ImageType[] { }; + ReplaceImages = Array.Empty<ImageType>(); IsAutomated = true; } @@ -30,4 +30,4 @@ namespace MediaBrowser.Controller.Providers (ReplaceAllImages || ReplaceImages.Contains(type)); } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.Controller/Providers/ItemLookupInfo.cs b/MediaBrowser.Controller/Providers/ItemLookupInfo.cs index 98122e776..dc7a04135 100644 --- a/MediaBrowser.Controller/Providers/ItemLookupInfo.cs +++ b/MediaBrowser.Controller/Providers/ItemLookupInfo.cs @@ -6,8 +6,6 @@ namespace MediaBrowser.Controller.Providers { public class ItemLookupInfo : IHasProviderIds { - protected static string[] EmptyStringArray = new string[] { }; - /// <summary> /// Gets or sets the name. /// </summary> diff --git a/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs b/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs index 2494be83a..3dbcc5305 100644 --- a/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs +++ b/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs @@ -1,8 +1,6 @@ using System; -using System.Collections.Generic; using System.Linq; using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; using Microsoft.Extensions.Logging; using MediaBrowser.Model.Providers; @@ -47,7 +45,7 @@ namespace MediaBrowser.Controller.Providers { if (RefreshPaths == null) { - RefreshPaths = new string[] { }; + RefreshPaths = Array.Empty<string>(); } RefreshPaths = copy.RefreshPaths.ToArray(); diff --git a/MediaBrowser.Controller/Providers/MetadataResult.cs b/MediaBrowser.Controller/Providers/MetadataResult.cs index f35d41ca4..271f784d7 100644 --- a/MediaBrowser.Controller/Providers/MetadataResult.cs +++ b/MediaBrowser.Controller/Providers/MetadataResult.cs @@ -74,4 +74,4 @@ namespace MediaBrowser.Controller.Providers return userData; } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.Controller/Providers/SongInfo.cs b/MediaBrowser.Controller/Providers/SongInfo.cs index e3a6f5d37..61e950130 100644 --- a/MediaBrowser.Controller/Providers/SongInfo.cs +++ b/MediaBrowser.Controller/Providers/SongInfo.cs @@ -1,3 +1,4 @@ +using System; namespace MediaBrowser.Controller.Providers { @@ -9,8 +10,8 @@ namespace MediaBrowser.Controller.Providers public SongInfo() { - Artists = EmptyStringArray; - AlbumArtists = EmptyStringArray; + Artists = Array.Empty<string>(); + AlbumArtists = Array.Empty<string>(); } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.Controller/Session/AuthenticationRequest.cs b/MediaBrowser.Controller/Session/AuthenticationRequest.cs index eb64db8c3..0489cf9b6 100644 --- a/MediaBrowser.Controller/Session/AuthenticationRequest.cs +++ b/MediaBrowser.Controller/Session/AuthenticationRequest.cs @@ -1,6 +1,5 @@ using System; - namespace MediaBrowser.Controller.Session { public class AuthenticationRequest @@ -9,7 +8,6 @@ namespace MediaBrowser.Controller.Session public Guid UserId { get; set; } public string Password { get; set; } public string PasswordSha1 { get; set; } - public string PasswordMd5 { get; set; } public string App { get; set; } public string AppVersion { get; set; } public string DeviceId { get; set; } diff --git a/MediaBrowser.Controller/Session/ISessionManager.cs b/MediaBrowser.Controller/Session/ISessionManager.cs index b7719e556..eca345cbc 100644 --- a/MediaBrowser.Controller/Session/ISessionManager.cs +++ b/MediaBrowser.Controller/Session/ISessionManager.cs @@ -5,7 +5,6 @@ using MediaBrowser.Controller.Security; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Events; using MediaBrowser.Model.Session; -using MediaBrowser.Model.Users; using System; using System.Collections.Generic; using System.Threading; diff --git a/MediaBrowser.Controller/Session/SessionInfo.cs b/MediaBrowser.Controller/Session/SessionInfo.cs index 98848a440..77e786ead 100644 --- a/MediaBrowser.Controller/Session/SessionInfo.cs +++ b/MediaBrowser.Controller/Session/SessionInfo.cs @@ -22,9 +22,9 @@ namespace MediaBrowser.Controller.Session _sessionManager = sessionManager; _logger = logger; - AdditionalUsers = new SessionUserInfo[] { }; + AdditionalUsers = Array.Empty<SessionUserInfo>(); PlayState = new PlayerStateInfo(); - SessionControllers = new ISessionController[] { }; + SessionControllers = Array.Empty<ISessionController>(); } public PlayerStateInfo PlayState { get; set; } @@ -49,7 +49,7 @@ namespace MediaBrowser.Controller.Session { if (Capabilities == null) { - return new string[] {}; + return Array.Empty<string>(); } return Capabilities.PlayableMediaTypes; } @@ -363,7 +363,7 @@ namespace MediaBrowser.Controller.Session StopAutomaticProgress(); var controllers = SessionControllers.ToList(); - SessionControllers = new ISessionController[] { }; + SessionControllers = Array.Empty<ISessionController>(); foreach (var controller in controllers) { diff --git a/MediaBrowser.Controller/Subtitles/SubtitleSearchRequest.cs b/MediaBrowser.Controller/Subtitles/SubtitleSearchRequest.cs index 84bf28c05..daef6db79 100644 --- a/MediaBrowser.Controller/Subtitles/SubtitleSearchRequest.cs +++ b/MediaBrowser.Controller/Subtitles/SubtitleSearchRequest.cs @@ -32,8 +32,8 @@ namespace MediaBrowser.Controller.Subtitles SearchAllProviders = true; ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - DisabledSubtitleFetchers = new string[] {}; - SubtitleFetcherOrder = new string[] {}; + DisabledSubtitleFetchers = Array.Empty<string>(); + SubtitleFetcherOrder = Array.Empty<string>(); } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs index 1fbdcf39a..e46709b78 100644 --- a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs @@ -77,12 +77,12 @@ namespace MediaBrowser.LocalMetadata.Images return directoryService.GetFileSystemEntries(path) .Where(i => BaseItem.SupportedImageExtensions.Contains(i.Extension, StringComparer.OrdinalIgnoreCase) || i.IsDirectory) - .OrderBy(i => BaseItem.SupportedImageExtensionsList.IndexOf(i.Extension ?? string.Empty)); + .OrderBy(i => Array.IndexOf(BaseItem.SupportedImageExtensions, i.Extension ?? string.Empty)); } return directoryService.GetFiles(path) .Where(i => BaseItem.SupportedImageExtensions.Contains(i.Extension, StringComparer.OrdinalIgnoreCase)) - .OrderBy(i => BaseItem.SupportedImageExtensionsList.IndexOf(i.Extension ?? string.Empty)); + .OrderBy(i => Array.IndexOf(BaseItem.SupportedImageExtensions, i.Extension ?? string.Empty)); } public List<LocalImageInfo> GetImages(BaseItem item, IDirectoryService directoryService) @@ -106,7 +106,7 @@ namespace MediaBrowser.LocalMetadata.Images IEnumerable<FileSystemMetadata> files = paths.SelectMany(i => _fileSystem.GetFiles(i, BaseItem.SupportedImageExtensions, true, false)); files = files - .OrderBy(i => BaseItem.SupportedImageExtensionsList.IndexOf(i.Extension ?? string.Empty)); + .OrderBy(i => Array.IndexOf(BaseItem.SupportedImageExtensions, i.Extension ?? string.Empty)); var list = new List<LocalImageInfo>(); diff --git a/MediaBrowser.Model/Channels/ChannelFeatures.cs b/MediaBrowser.Model/Channels/ChannelFeatures.cs index 39b40cabc..d4caf499b 100644 --- a/MediaBrowser.Model/Channels/ChannelFeatures.cs +++ b/MediaBrowser.Model/Channels/ChannelFeatures.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System; namespace MediaBrowser.Model.Channels { @@ -76,10 +76,9 @@ namespace MediaBrowser.Model.Channels public ChannelFeatures() { - MediaTypes = new ChannelMediaType[] { }; - ContentTypes = new ChannelMediaContentType[] { }; - - DefaultSortFields = new ChannelItemSortField[] { }; + MediaTypes = Array.Empty<ChannelMediaType>(); + ContentTypes = Array.Empty<ChannelMediaContentType>(); + DefaultSortFields = Array.Empty<ChannelItemSortField>(); } } } diff --git a/MediaBrowser.Model/Configuration/LibraryOptions.cs b/MediaBrowser.Model/Configuration/LibraryOptions.cs index a271d43af..cc70cc888 100644 --- a/MediaBrowser.Model/Configuration/LibraryOptions.cs +++ b/MediaBrowser.Model/Configuration/LibraryOptions.cs @@ -6,7 +6,6 @@ namespace MediaBrowser.Model.Configuration { public class LibraryOptions { - public bool EnableArchiveMediaFiles { get; set; } public bool EnablePhotos { get; set; } public bool EnableRealtimeMonitor { get; set; } public bool EnableChapterImageExtraction { get; set; } @@ -65,10 +64,10 @@ namespace MediaBrowser.Model.Configuration public LibraryOptions() { - TypeOptions = new TypeOptions[] { }; - DisabledSubtitleFetchers = new string[] { }; - SubtitleFetcherOrder = new string[] { }; - DisabledLocalMetadataReaders = new string[] { }; + TypeOptions = Array.Empty<TypeOptions>(); + DisabledSubtitleFetchers = Array.Empty<string>(); + SubtitleFetcherOrder = Array.Empty<string>(); + DisabledLocalMetadataReaders = Array.Empty<string>(); SkipSubtitlesIfAudioTrackMatches = true; RequirePerfectSubtitleMatch = true; @@ -76,7 +75,7 @@ namespace MediaBrowser.Model.Configuration EnablePhotos = true; SaveSubtitlesWithMedia = true; EnableRealtimeMonitor = true; - PathInfos = new MediaPathInfo[] { }; + PathInfos = Array.Empty<MediaPathInfo>(); EnableInternetProviders = true; EnableAutomaticSeriesGrouping = true; SeasonZeroDisplayName = "Specials"; @@ -141,11 +140,11 @@ namespace MediaBrowser.Model.Configuration public TypeOptions() { - MetadataFetchers = new string[] { }; - MetadataFetcherOrder = new string[] { }; - ImageFetchers = new string[] { }; - ImageFetcherOrder = new string[] { }; - ImageOptions = new ImageOption[] { }; + MetadataFetchers = Array.Empty<string>(); + MetadataFetcherOrder = Array.Empty<string>(); + ImageFetchers = Array.Empty<string>(); + ImageFetcherOrder = Array.Empty<string>(); + ImageOptions = Array.Empty<ImageOption>(); } public static Dictionary<string, ImageOption[]> DefaultImageOptions = new Dictionary<string, ImageOption[]> diff --git a/MediaBrowser.Model/Configuration/MetadataOptions.cs b/MediaBrowser.Model/Configuration/MetadataOptions.cs index 26cfee085..dde2bd090 100644 --- a/MediaBrowser.Model/Configuration/MetadataOptions.cs +++ b/MediaBrowser.Model/Configuration/MetadataOptions.cs @@ -1,5 +1,4 @@ -using MediaBrowser.Model.Extensions; -using System; +using System; namespace MediaBrowser.Model.Configuration { @@ -21,18 +20,12 @@ namespace MediaBrowser.Model.Configuration public MetadataOptions() { - DisabledMetadataSavers = new string[] { }; - LocalMetadataReaderOrder = new string[] { }; - - DisabledMetadataFetchers = new string[] { }; - MetadataFetcherOrder = new string[] { }; - DisabledImageFetchers = new string[] { }; - ImageFetcherOrder = new string[] { }; - } - - public bool IsMetadataSaverEnabled(string name) - { - return !ListHelper.ContainsIgnoreCase(DisabledMetadataSavers, name); + DisabledMetadataSavers = Array.Empty<string>(); + LocalMetadataReaderOrder = Array.Empty<string>(); + DisabledMetadataFetchers = Array.Empty<string>(); + MetadataFetcherOrder = Array.Empty<string>(); + DisabledImageFetchers = Array.Empty<string>(); + ImageFetcherOrder = Array.Empty<string>(); } } } diff --git a/MediaBrowser.Model/Configuration/MetadataPluginSummary.cs b/MediaBrowser.Model/Configuration/MetadataPluginSummary.cs index 80142cf43..0bd20f837 100644 --- a/MediaBrowser.Model/Configuration/MetadataPluginSummary.cs +++ b/MediaBrowser.Model/Configuration/MetadataPluginSummary.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System; using MediaBrowser.Model.Entities; namespace MediaBrowser.Model.Configuration @@ -25,8 +25,8 @@ namespace MediaBrowser.Model.Configuration public MetadataPluginSummary() { - SupportedImageTypes = new ImageType[] { }; - Plugins = new MetadataPlugin[] { }; + SupportedImageTypes = Array.Empty<ImageType>(); + Plugins = Array.Empty<MetadataPlugin>(); } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs index 09b783587..565d5f74b 100644 --- a/MediaBrowser.Model/Configuration/ServerConfiguration.cs +++ b/MediaBrowser.Model/Configuration/ServerConfiguration.cs @@ -173,8 +173,6 @@ namespace MediaBrowser.Model.Configuration public int RemoteClientBitrateLimit { get; set; } - public int SchemaVersion { get; set; } - public bool EnableFolderView { get; set; } public bool EnableGroupingIntoCollections { get; set; } public bool DisplaySpecialsWithinSeasons { get; set; } @@ -201,13 +199,13 @@ namespace MediaBrowser.Model.Configuration /// </summary> public ServerConfiguration() { - UninstalledPlugins = new string[] { }; - RemoteIPFilter = new string[] { }; - LocalNetworkSubnets = new string[] { }; - LocalNetworkAddresses = new string[] { }; - CodecsUsed = new string[] { }; + UninstalledPlugins = Array.Empty<string>(); + RemoteIPFilter = Array.Empty<string>(); + LocalNetworkSubnets = Array.Empty<string>(); + LocalNetworkAddresses = Array.Empty<string>(); + CodecsUsed = Array.Empty<string>(); ImageExtractionTimeoutMs = 0; - PathSubstitutions = new PathSubstitution[] { }; + PathSubstitutions = Array.Empty<PathSubstitution>(); EnableSimpleArtistDetection = true; DisplaySpecialsWithinSeasons = true; @@ -235,7 +233,7 @@ namespace MediaBrowser.Model.Configuration LibraryMonitorDelay = 60; - ContentTypes = new NameValuePair[] { }; + ContentTypes = Array.Empty<NameValuePair>(); PreferredMetadataLanguage = "en"; MetadataCountryCode = "US"; @@ -248,56 +246,51 @@ namespace MediaBrowser.Model.Configuration MetadataOptions = new[] { - new MetadataOptions {ItemType = "Book"}, - - new MetadataOptions + new MetadataOptions() + { + ItemType = "Book" + }, + new MetadataOptions() { ItemType = "Movie" }, - new MetadataOptions { ItemType = "MusicVideo", - DisabledMetadataFetchers = new []{ "The Open Movie Database" }, - DisabledImageFetchers = new []{ "The Open Movie Database", "FanArt" } + DisabledMetadataFetchers = new [] { "The Open Movie Database" }, + DisabledImageFetchers = new [] { "The Open Movie Database", "FanArt" } }, - new MetadataOptions { ItemType = "Series", - DisabledMetadataFetchers = new []{ "TheMovieDb" }, - DisabledImageFetchers = new []{ "TheMovieDb" } + DisabledMetadataFetchers = new [] { "TheMovieDb" }, + DisabledImageFetchers = new [] { "TheMovieDb" } }, - new MetadataOptions { ItemType = "MusicAlbum", - DisabledMetadataFetchers = new []{ "TheAudioDB" } + DisabledMetadataFetchers = new [] { "TheAudioDB" } }, - new MetadataOptions { ItemType = "MusicArtist", - DisabledMetadataFetchers = new []{ "TheAudioDB" } + DisabledMetadataFetchers = new [] { "TheAudioDB" } }, - new MetadataOptions { ItemType = "BoxSet" }, - new MetadataOptions { ItemType = "Season", - DisabledMetadataFetchers = new []{ "TheMovieDb" }, + DisabledMetadataFetchers = new [] { "TheMovieDb" }, DisabledImageFetchers = new [] { "FanArt" } }, - new MetadataOptions { ItemType = "Episode", - DisabledMetadataFetchers = new []{ "The Open Movie Database", "TheMovieDb" }, - DisabledImageFetchers = new []{ "The Open Movie Database", "TheMovieDb" } + DisabledMetadataFetchers = new [] { "The Open Movie Database", "TheMovieDb" }, + DisabledImageFetchers = new [] { "The Open Movie Database", "TheMovieDb" } } }; } diff --git a/MediaBrowser.Model/Configuration/UserConfiguration.cs b/MediaBrowser.Model/Configuration/UserConfiguration.cs index 34b0be095..39b956138 100644 --- a/MediaBrowser.Model/Configuration/UserConfiguration.cs +++ b/MediaBrowser.Model/Configuration/UserConfiguration.cs @@ -57,10 +57,10 @@ namespace MediaBrowser.Model.Configuration HidePlayedInLatest = true; PlayDefaultAudioTrack = true; - LatestItemsExcludes = new string[] {}; - OrderedViews = new string[] {}; - MyMediaExcludes = new string[] {}; - GroupedFolders = new string[] {}; + LatestItemsExcludes = Array.Empty<string>(); + OrderedViews = Array.Empty<string>(); + MyMediaExcludes = Array.Empty<string>(); + GroupedFolders = Array.Empty<string>(); } } } diff --git a/MediaBrowser.Model/Connect/ConnectAuthenticationExchangeResult.cs b/MediaBrowser.Model/Connect/ConnectAuthenticationExchangeResult.cs deleted file mode 100644 index c60224045..000000000 --- a/MediaBrowser.Model/Connect/ConnectAuthenticationExchangeResult.cs +++ /dev/null @@ -1,17 +0,0 @@ - -namespace MediaBrowser.Model.Connect -{ - public class ConnectAuthenticationExchangeResult - { - /// <summary> - /// Gets or sets the local user identifier. - /// </summary> - /// <value>The local user identifier.</value> - public string LocalUserId { get; set; } - /// <summary> - /// Gets or sets the access token. - /// </summary> - /// <value>The access token.</value> - public string AccessToken { get; set; } - } -} diff --git a/MediaBrowser.Model/Connect/ConnectAuthenticationResult.cs b/MediaBrowser.Model/Connect/ConnectAuthenticationResult.cs deleted file mode 100644 index 0df035e57..000000000 --- a/MediaBrowser.Model/Connect/ConnectAuthenticationResult.cs +++ /dev/null @@ -1,17 +0,0 @@ - -namespace MediaBrowser.Model.Connect -{ - public class ConnectAuthenticationResult - { - /// <summary> - /// Gets or sets the user. - /// </summary> - /// <value>The user.</value> - public ConnectUser User { get; set; } - /// <summary> - /// Gets or sets the access token. - /// </summary> - /// <value>The access token.</value> - public string AccessToken { get; set; } - } -} diff --git a/MediaBrowser.Model/Connect/ConnectAuthorization.cs b/MediaBrowser.Model/Connect/ConnectAuthorization.cs index 84dbf5c36..a949612ab 100644 --- a/MediaBrowser.Model/Connect/ConnectAuthorization.cs +++ b/MediaBrowser.Model/Connect/ConnectAuthorization.cs @@ -14,8 +14,8 @@ namespace MediaBrowser.Model.Connect public ConnectAuthorization() { - EnabledLibraries = new string[] {}; - EnabledChannels = new string[] {}; + EnabledLibraries = Array.Empty<string>(); + EnabledChannels = Array.Empty<string>(); } } } diff --git a/MediaBrowser.Model/Connect/ConnectAuthorizationRequest.cs b/MediaBrowser.Model/Connect/ConnectAuthorizationRequest.cs deleted file mode 100644 index ba4e9f5cf..000000000 --- a/MediaBrowser.Model/Connect/ConnectAuthorizationRequest.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; - -namespace MediaBrowser.Model.Connect -{ - public class ConnectAuthorizationRequest - { - public string SendingUserId { get; set; } - public string ConnectUserName { get; set; } - public string[] EnabledLibraries { get; set; } - public bool EnableLiveTv { get; set; } - public string[] EnabledChannels { get; set; } - - public ConnectAuthorizationRequest() - { - EnabledLibraries = new string[] {}; - EnabledChannels = new string[] {}; - } - } -} diff --git a/MediaBrowser.Model/Devices/DeviceInfo.cs b/MediaBrowser.Model/Devices/DeviceInfo.cs index 590dc5eb3..a588ce029 100644 --- a/MediaBrowser.Model/Devices/DeviceInfo.cs +++ b/MediaBrowser.Model/Devices/DeviceInfo.cs @@ -5,22 +5,6 @@ namespace MediaBrowser.Model.Devices { public class DeviceInfo { - /// <summary> - /// Gets or sets the name of the reported. - /// </summary> - /// <value>The name of the reported.</value> - public string ReportedName { get; set; } - /// <summary> - /// Gets or sets the name of the custom. - /// </summary> - /// <value>The name of the custom.</value> - public string CustomName { get; set; } - /// <summary> - /// Gets or sets the camera upload path. - /// </summary> - /// <value>The camera upload path.</value> - public string CameraUploadPath { get; set; } - public string Name { get; set; } /// <summary> diff --git a/MediaBrowser.Model/Devices/DeviceQuery.cs b/MediaBrowser.Model/Devices/DeviceQuery.cs index fa2e11d4d..2838239e4 100644 --- a/MediaBrowser.Model/Devices/DeviceQuery.cs +++ b/MediaBrowser.Model/Devices/DeviceQuery.cs @@ -6,11 +6,6 @@ namespace MediaBrowser.Model.Devices public class DeviceQuery { /// <summary> - /// Gets or sets a value indicating whether [supports unique identifier]. - /// </summary> - /// <value><c>null</c> if [supports unique identifier] contains no value, <c>true</c> if [supports unique identifier]; otherwise, <c>false</c>.</value> - public bool? SupportsPersistentIdentifier { get; set; } - /// <summary> /// Gets or sets a value indicating whether [supports synchronize]. /// </summary> /// <value><c>null</c> if [supports synchronize] contains no value, <c>true</c> if [supports synchronize]; otherwise, <c>false</c>.</value> diff --git a/MediaBrowser.Model/Devices/DevicesOptions.cs b/MediaBrowser.Model/Devices/DevicesOptions.cs index 5bcdd1a82..8e478d005 100644 --- a/MediaBrowser.Model/Devices/DevicesOptions.cs +++ b/MediaBrowser.Model/Devices/DevicesOptions.cs @@ -10,15 +10,12 @@ namespace MediaBrowser.Model.Devices public DevicesOptions() { - EnabledCameraUploadDevices = new string[] {}; + EnabledCameraUploadDevices = Array.Empty<string>(); } } public class DeviceOptions { - public string[] EnabledCameraUploadDevices { get; set; } - public string CameraUploadPath { get; set; } - public bool EnableCameraUploadSubfolders { get; set; } public string CustomName { get; set; } } } diff --git a/MediaBrowser.Model/Dlna/ContainerProfile.cs b/MediaBrowser.Model/Dlna/ContainerProfile.cs index 3fb0682b0..ccad4cead 100644 --- a/MediaBrowser.Model/Dlna/ContainerProfile.cs +++ b/MediaBrowser.Model/Dlna/ContainerProfile.cs @@ -1,7 +1,5 @@ using System; -using System.Collections.Generic; using System.Xml.Serialization; -using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Extensions; namespace MediaBrowser.Model.Dlna @@ -17,7 +15,7 @@ namespace MediaBrowser.Model.Dlna public ContainerProfile() { - Conditions = new ProfileCondition[] { }; + Conditions = Array.Empty<ProfileCondition>(); } public string[] GetContainers() @@ -25,13 +23,11 @@ namespace MediaBrowser.Model.Dlna return SplitValue(Container); } - private static readonly string[] EmptyStringArray = Array.Empty<string>(); - public static string[] SplitValue(string value) { if (string.IsNullOrEmpty(value)) { - return EmptyStringArray; + return Array.Empty<string>(); } return value.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); diff --git a/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs b/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs index 966c4a8ce..88d7573e6 100644 --- a/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs +++ b/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs @@ -1,7 +1,6 @@ using MediaBrowser.Model.MediaInfo; using System; using System.Collections.Generic; -using System.Linq; namespace MediaBrowser.Model.Dlna { @@ -28,7 +27,7 @@ namespace MediaBrowser.Model.Dlna DlnaFlags flagValue = DlnaFlags.BackgroundTransferMode | DlnaFlags.InteractiveTransferMode | DlnaFlags.DlnaV15; - + string dlnaflags = string.Format(";DLNA.ORG_FLAGS={0}", DlnaMaps.FlagsToString(flagValue)); diff --git a/MediaBrowser.Model/Dlna/ResolutionNormalizer.cs b/MediaBrowser.Model/Dlna/ResolutionNormalizer.cs index 4fdf4972f..4cde26a03 100644 --- a/MediaBrowser.Model/Dlna/ResolutionNormalizer.cs +++ b/MediaBrowser.Model/Dlna/ResolutionNormalizer.cs @@ -1,13 +1,12 @@ using System; -using System.Collections.Generic; using MediaBrowser.Model.Extensions; namespace MediaBrowser.Model.Dlna { public class ResolutionNormalizer { - private static readonly ResolutionConfiguration[] Configurations = - new [] + private static readonly ResolutionConfiguration[] Configurations = + new[] { new ResolutionConfiguration(426, 320000), new ResolutionConfiguration(640, 400000), @@ -20,24 +19,24 @@ namespace MediaBrowser.Model.Dlna public static ResolutionOptions Normalize(int? inputBitrate, int? unused1, int? unused2, - int outputBitrate, - string inputCodec, + int outputBitrate, + string inputCodec, string outputCodec, int? maxWidth, int? maxHeight) { - // If the bitrate isn't changing, then don't downlscale the resolution - if (inputBitrate.HasValue && outputBitrate >= inputBitrate.Value) - { - if (maxWidth.HasValue || maxHeight.HasValue) - { - return new ResolutionOptions - { - MaxWidth = maxWidth, - MaxHeight = maxHeight - }; - } - } + // If the bitrate isn't changing, then don't downlscale the resolution + if (inputBitrate.HasValue && outputBitrate >= inputBitrate.Value) + { + if (maxWidth.HasValue || maxHeight.HasValue) + { + return new ResolutionOptions + { + MaxWidth = maxWidth, + MaxHeight = maxHeight + }; + } + } var resolutionConfig = GetResolutionConfiguration(outputBitrate); if (resolutionConfig != null) @@ -90,8 +89,8 @@ namespace MediaBrowser.Model.Dlna { var inputScaleFactor = GetVideoBitrateScaleFactor(inputVideoCodec); var outputScaleFactor = GetVideoBitrateScaleFactor(outputVideoCodec); - var scaleFactor = outputScaleFactor/inputScaleFactor; - var newBitrate = scaleFactor*bitrate; + var scaleFactor = outputScaleFactor / inputScaleFactor; + var newBitrate = scaleFactor * bitrate; return Convert.ToInt32(newBitrate); } diff --git a/MediaBrowser.Model/Dlna/StreamInfo.cs b/MediaBrowser.Model/Dlna/StreamInfo.cs index c927cd31c..ba0ac0486 100644 --- a/MediaBrowser.Model/Dlna/StreamInfo.cs +++ b/MediaBrowser.Model/Dlna/StreamInfo.cs @@ -18,10 +18,10 @@ namespace MediaBrowser.Model.Dlna { public StreamInfo() { - AudioCodecs = new string[] { }; - VideoCodecs = new string[] { }; - SubtitleCodecs = new string[] { }; - TranscodeReasons = new TranscodeReason[] { }; + AudioCodecs = Array.Empty<string>(); + VideoCodecs = Array.Empty<string>(); + SubtitleCodecs = Array.Empty<string>(); + TranscodeReasons = Array.Empty<TranscodeReason>(); StreamOptions = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); } diff --git a/MediaBrowser.Model/Dlna/SubtitleProfile.cs b/MediaBrowser.Model/Dlna/SubtitleProfile.cs index a7e61e69a..f85ba4a7a 100644 --- a/MediaBrowser.Model/Dlna/SubtitleProfile.cs +++ b/MediaBrowser.Model/Dlna/SubtitleProfile.cs @@ -1,7 +1,5 @@ using MediaBrowser.Model.Extensions; -using System.Collections.Generic; using System.Xml.Serialization; -using MediaBrowser.Model.Dlna; namespace MediaBrowser.Model.Dlna { @@ -43,4 +41,4 @@ namespace MediaBrowser.Model.Dlna return languages.Length == 0 || ListHelper.ContainsIgnoreCase(languages, subLanguage); } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.Model/Dto/BaseItemDto.cs b/MediaBrowser.Model/Dto/BaseItemDto.cs index 3ddbc4150..746d38679 100644 --- a/MediaBrowser.Model/Dto/BaseItemDto.cs +++ b/MediaBrowser.Model/Dto/BaseItemDto.cs @@ -4,10 +4,8 @@ using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Library; using MediaBrowser.Model.LiveTv; using MediaBrowser.Model.Providers; -using MediaBrowser.Model.Sync; using System; using System.Collections.Generic; -using MediaBrowser.Model.Serialization; namespace MediaBrowser.Model.Dto { @@ -67,7 +65,6 @@ namespace MediaBrowser.Model.Dto public int? AirsBeforeSeasonNumber { get; set; } public int? AirsAfterSeasonNumber { get; set; } public int? AirsBeforeEpisodeNumber { get; set; } - public bool? DisplaySpecialsWithSeasons { get; set; } public bool? CanDelete { get; set; } public bool? CanDownload { get; set; } @@ -156,7 +153,6 @@ namespace MediaBrowser.Model.Dto /// <value>The channel identifier.</value> public Guid ChannelId { get; set; } public string ChannelName { get; set; } - public string ServiceName { get; set; } /// <summary> /// Gets or sets the overview. @@ -480,26 +476,6 @@ namespace MediaBrowser.Model.Dto public int? MediaSourceCount { get; set; } /// <summary> - /// Determines whether the specified type is type. - /// </summary> - /// <param name="type">The type.</param> - /// <returns><c>true</c> if the specified type is type; otherwise, <c>false</c>.</returns> - public bool IsType(Type type) - { - return IsType(type.Name); - } - - /// <summary> - /// Determines whether the specified type is type. - /// </summary> - /// <param name="type">The type.</param> - /// <returns><c>true</c> if the specified type is type; otherwise, <c>false</c>.</returns> - public bool IsType(string type) - { - return StringHelper.EqualsIgnoreCase(Type, type); - } - - /// <summary> /// Gets or sets the image tags. /// </summary> /// <value>The image tags.</value> @@ -602,12 +578,6 @@ namespace MediaBrowser.Model.Dto public DateTime? EndDate { get; set; } /// <summary> - /// Gets or sets the home page URL. - /// </summary> - /// <value>The home page URL.</value> - public string HomePageUrl { get; set; } - - /// <summary> /// Gets or sets the locked fields. /// </summary> /// <value>The locked fields.</value> @@ -678,11 +648,6 @@ namespace MediaBrowser.Model.Dto public int? IsoSpeedRating { get; set; } /// <summary> - /// Used by RecordingGroup - /// </summary> - public int? RecordingCount { get; set; } - - /// <summary> /// Gets or sets the series timer identifier. /// </summary> /// <value>The series timer identifier.</value> diff --git a/MediaBrowser.Model/Dto/ChapterInfoDto.cs b/MediaBrowser.Model/Dto/ChapterInfoDto.cs deleted file mode 100644 index b68b55e70..000000000 --- a/MediaBrowser.Model/Dto/ChapterInfoDto.cs +++ /dev/null @@ -1,38 +0,0 @@ -using MediaBrowser.Model.Serialization; - -namespace MediaBrowser.Model.Dto -{ - /// <summary> - /// Class ChapterInfo - /// </summary> - public class ChapterInfoDto - { - /// <summary> - /// Gets or sets the start position ticks. - /// </summary> - /// <value>The start position ticks.</value> - public long StartPositionTicks { get; set; } - - /// <summary> - /// Gets or sets the name. - /// </summary> - /// <value>The name.</value> - public string Name { get; set; } - - /// <summary> - /// Gets or sets the image tag. - /// </summary> - /// <value>The image tag.</value> - public string ImageTag { get; set; } - - /// <summary> - /// Gets a value indicating whether this instance has image. - /// </summary> - /// <value><c>true</c> if this instance has image; otherwise, <c>false</c>.</value> - [IgnoreDataMember] - public bool HasImage - { - get { return ImageTag != null; } - } - } -} diff --git a/MediaBrowser.Model/Dto/GameSystemSummary.cs b/MediaBrowser.Model/Dto/GameSystemSummary.cs index 252868b66..0f21533a0 100644 --- a/MediaBrowser.Model/Dto/GameSystemSummary.cs +++ b/MediaBrowser.Model/Dto/GameSystemSummary.cs @@ -1,5 +1,4 @@ -using System.Collections.Generic; -using System; +using System; namespace MediaBrowser.Model.Dto { @@ -43,7 +42,7 @@ namespace MediaBrowser.Model.Dto /// </summary> public GameSystemSummary() { - GameFileExtensions = new string[] {}; + GameFileExtensions = Array.Empty<string>(); } } } diff --git a/MediaBrowser.Model/Dto/MediaSourceInfo.cs b/MediaBrowser.Model/Dto/MediaSourceInfo.cs index d1d068fb6..be9c2dff3 100644 --- a/MediaBrowser.Model/Dto/MediaSourceInfo.cs +++ b/MediaBrowser.Model/Dto/MediaSourceInfo.cs @@ -1,5 +1,4 @@ using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Extensions; using MediaBrowser.Model.MediaInfo; using System.Collections.Generic; using MediaBrowser.Model.Serialization; @@ -73,7 +72,7 @@ namespace MediaBrowser.Model.Dto public MediaSourceInfo() { - Formats = new string[] { }; + Formats = Array.Empty<string>(); MediaStreams = new List<MediaStream>(); RequiredHttpHeaders = new Dictionary<string, string>(); SupportsTranscoding = true; @@ -115,12 +114,6 @@ namespace MediaBrowser.Model.Dto public int? DefaultAudioStreamIndex { get; set; } public int? DefaultSubtitleStreamIndex { get; set; } - [IgnoreDataMember] - public MediaStream DefaultAudioStream - { - get { return GetDefaultAudioStream(DefaultAudioStreamIndex); } - } - public MediaStream GetDefaultAudioStream(int? defaultIndex) { if (defaultIndex.HasValue) diff --git a/MediaBrowser.Model/Dto/MetadataEditorInfo.cs b/MediaBrowser.Model/Dto/MetadataEditorInfo.cs index aa8b33c81..b7093da71 100644 --- a/MediaBrowser.Model/Dto/MetadataEditorInfo.cs +++ b/MediaBrowser.Model/Dto/MetadataEditorInfo.cs @@ -1,7 +1,7 @@ using MediaBrowser.Model.Entities; using MediaBrowser.Model.Globalization; using MediaBrowser.Model.Providers; -using System.Collections.Generic; +using System; namespace MediaBrowser.Model.Dto { @@ -17,11 +17,11 @@ namespace MediaBrowser.Model.Dto public MetadataEditorInfo() { - ParentalRatingOptions = new ParentalRating[] { }; - Countries = new CountryInfo[] { }; - Cultures = new CultureDto[] { }; - ExternalIdInfos = new ExternalIdInfo[] { }; - ContentTypeOptions = new NameValuePair[] { }; + ParentalRatingOptions = Array.Empty<ParentalRating>(); + Countries = Array.Empty<CountryInfo>(); + Cultures = Array.Empty<CultureDto>(); + ExternalIdInfos = Array.Empty<ExternalIdInfo>(); + ContentTypeOptions = Array.Empty<NameValuePair>(); } } } diff --git a/MediaBrowser.Model/Dto/UserDto.cs b/MediaBrowser.Model/Dto/UserDto.cs index f42c495ad..8d7679fdb 100644 --- a/MediaBrowser.Model/Dto/UserDto.cs +++ b/MediaBrowser.Model/Dto/UserDto.cs @@ -2,7 +2,6 @@ using MediaBrowser.Model.Connect; using MediaBrowser.Model.Users; using System; -using MediaBrowser.Model.Serialization; namespace MediaBrowser.Model.Dto { diff --git a/MediaBrowser.Model/Entities/LibraryUpdateInfo.cs b/MediaBrowser.Model/Entities/LibraryUpdateInfo.cs index dfab9add2..2ae7bead2 100644 --- a/MediaBrowser.Model/Entities/LibraryUpdateInfo.cs +++ b/MediaBrowser.Model/Entities/LibraryUpdateInfo.cs @@ -51,12 +51,12 @@ namespace MediaBrowser.Model.Entities /// </summary> public LibraryUpdateInfo() { - FoldersAddedTo = new string[] { }; - FoldersRemovedFrom = new string[] { }; - ItemsAdded = new string[] { }; - ItemsRemoved = new string[] { }; - ItemsUpdated = new string[] { }; - CollectionFolders = new string[] { }; + FoldersAddedTo = Array.Empty<string>(); + FoldersRemovedFrom = Array.Empty<string>(); + ItemsAdded = Array.Empty<string>(); + ItemsRemoved = Array.Empty<string>(); + ItemsUpdated = Array.Empty<string>(); + CollectionFolders = Array.Empty<string>(); } } } diff --git a/MediaBrowser.Model/Entities/VirtualFolderInfo.cs b/MediaBrowser.Model/Entities/VirtualFolderInfo.cs index 68f713295..c8374f620 100644 --- a/MediaBrowser.Model/Entities/VirtualFolderInfo.cs +++ b/MediaBrowser.Model/Entities/VirtualFolderInfo.cs @@ -34,7 +34,7 @@ namespace MediaBrowser.Model.Entities /// </summary> public VirtualFolderInfo() { - Locations = new string[] {}; + Locations = Array.Empty<string>(); } /// <summary> diff --git a/MediaBrowser.Model/Globalization/CultureDto.cs b/MediaBrowser.Model/Globalization/CultureDto.cs index 6d79aaebb..c0eb8b2ad 100644 --- a/MediaBrowser.Model/Globalization/CultureDto.cs +++ b/MediaBrowser.Model/Globalization/CultureDto.cs @@ -46,7 +46,7 @@ namespace MediaBrowser.Model.Globalization public CultureDto() { - ThreeLetterISOLanguageNames = new string[] {}; + ThreeLetterISOLanguageNames = Array.Empty<string>(); } } } diff --git a/MediaBrowser.Model/Library/UserViewQuery.cs b/MediaBrowser.Model/Library/UserViewQuery.cs index 8b60cfd98..9801b8e8e 100644 --- a/MediaBrowser.Model/Library/UserViewQuery.cs +++ b/MediaBrowser.Model/Library/UserViewQuery.cs @@ -27,7 +27,7 @@ namespace MediaBrowser.Model.Library public UserViewQuery() { IncludeExternalContent = true; - PresetViews = new string[] {}; + PresetViews = Array.Empty<string>(); } } } diff --git a/MediaBrowser.Model/LiveTv/LiveTvChannelQuery.cs b/MediaBrowser.Model/LiveTv/LiveTvChannelQuery.cs index e3abd5974..5fe77d41e 100644 --- a/MediaBrowser.Model/LiveTv/LiveTvChannelQuery.cs +++ b/MediaBrowser.Model/LiveTv/LiveTvChannelQuery.cs @@ -98,7 +98,7 @@ namespace MediaBrowser.Model.LiveTv public LiveTvChannelQuery() { EnableUserData = true; - SortBy = new string[] {}; + SortBy = Array.Empty<string>(); } } } diff --git a/MediaBrowser.Model/LiveTv/LiveTvInfo.cs b/MediaBrowser.Model/LiveTv/LiveTvInfo.cs index 331b1101b..68281d79b 100644 --- a/MediaBrowser.Model/LiveTv/LiveTvInfo.cs +++ b/MediaBrowser.Model/LiveTv/LiveTvInfo.cs @@ -25,8 +25,8 @@ namespace MediaBrowser.Model.LiveTv public LiveTvInfo() { - Services = new LiveTvServiceInfo[] { }; - EnabledUsers = new string[] {}; + Services = Array.Empty<LiveTvServiceInfo>(); + EnabledUsers = Array.Empty<string>(); } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.Model/LiveTv/LiveTvOptions.cs b/MediaBrowser.Model/LiveTv/LiveTvOptions.cs index eb4f20f9e..6a688c7b4 100644 --- a/MediaBrowser.Model/LiveTv/LiveTvOptions.cs +++ b/MediaBrowser.Model/LiveTv/LiveTvOptions.cs @@ -25,9 +25,9 @@ namespace MediaBrowser.Model.LiveTv public LiveTvOptions() { - TunerHosts = new TunerHostInfo[] { }; - ListingProviders = new ListingsProviderInfo[] { }; - MediaLocationsCreated = new string[] { }; + TunerHosts = Array.Empty<TunerHostInfo>(); + ListingProviders = Array.Empty<ListingsProviderInfo>(); + MediaLocationsCreated = Array.Empty<string>(); RecordingPostProcessorArguments = "\"{path}\""; } } @@ -76,13 +76,13 @@ namespace MediaBrowser.Model.LiveTv public ListingsProviderInfo() { - NewsCategories = new string[] { "news", "journalism", "documentary", "current affairs" }; - SportsCategories = new string[] { "sports", "basketball", "baseball", "football" }; - KidsCategories = new string[] { "kids", "family", "children", "childrens", "disney" }; - MovieCategories = new string[] { "movie" }; - EnabledTuners = new string[] { }; + NewsCategories = new [] { "news", "journalism", "documentary", "current affairs" }; + SportsCategories = new [] { "sports", "basketball", "baseball", "football" }; + KidsCategories = new [] { "kids", "family", "children", "childrens", "disney" }; + MovieCategories = new [] { "movie" }; + EnabledTuners = Array.Empty<string>(); EnableAllTuners = true; - ChannelMappings = new NameValuePair[] {}; + ChannelMappings = Array.Empty<NameValuePair>(); } } } diff --git a/MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs b/MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs index 23eedfc88..4b7ee971c 100644 --- a/MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs +++ b/MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs @@ -52,7 +52,7 @@ namespace MediaBrowser.Model.LiveTv public LiveTvServiceInfo() { - Tuners = new string[] { }; + Tuners = Array.Empty<string>(); } } } diff --git a/MediaBrowser.Model/LiveTv/ProgramQuery.cs b/MediaBrowser.Model/LiveTv/ProgramQuery.cs deleted file mode 100644 index 89160948c..000000000 --- a/MediaBrowser.Model/LiveTv/ProgramQuery.cs +++ /dev/null @@ -1,117 +0,0 @@ -using MediaBrowser.Model.Entities; -using System; -using MediaBrowser.Model.Querying; - -namespace MediaBrowser.Model.LiveTv -{ - /// <summary> - /// Class ProgramQuery. - /// </summary> - public class ProgramQuery - { - public ProgramQuery() - { - ChannelIds = new Guid[] { }; - OrderBy = new Tuple<string, SortOrder>[] { }; - Genres = new string[] {}; - GenreIds = new Guid[] { }; - EnableTotalRecordCount = true; - EnableUserData = true; - } - - public bool EnableTotalRecordCount { get; set; } - public bool EnableUserData { get; set; } - - /// <summary> - /// Fields to return within the items, in addition to basic information - /// </summary> - /// <value>The fields.</value> - public ItemFields[] Fields { get; set; } - public bool? EnableImages { get; set; } - public int? ImageTypeLimit { get; set; } - public ImageType[] EnableImageTypes { get; set; } - - /// <summary> - /// Gets or sets the channel ids. - /// </summary> - /// <value>The channel ids.</value> - public Guid[] ChannelIds { get; set; } - - /// <summary> - /// Gets or sets the user identifier. - /// </summary> - /// <value>The user identifier.</value> - public string UserId { get; set; } - public string SeriesTimerId { get; set; } - public string Name { get; set; } - - /// <summary> - /// The earliest date for which a program starts to return - /// </summary> - public DateTime? MinStartDate { get; set; } - - /// <summary> - /// The latest date for which a program starts to return - /// </summary> - public DateTime? MaxStartDate { get; set; } - - /// <summary> - /// The earliest date for which a program ends to return - /// </summary> - public DateTime? MinEndDate { get; set; } - - /// <summary> - /// The latest date for which a program ends to return - /// </summary> - public DateTime? MaxEndDate { get; set; } - - /// <summary> - /// Used to specific whether to return news or not - /// </summary> - /// <remarks>If set to null, all programs will be returned</remarks> - public bool? IsNews { get; set; } - - /// <summary> - /// Used to specific whether to return movies or not - /// </summary> - /// <remarks>If set to null, all programs will be returned</remarks> - public bool? IsMovie { get; set; } - - /// <summary> - /// Gets or sets a value indicating whether this instance is kids. - /// </summary> - /// <value><c>null</c> if [is kids] contains no value, <c>true</c> if [is kids]; otherwise, <c>false</c>.</value> - public bool? IsKids { get; set; } - /// <summary> - /// Gets or sets a value indicating whether this instance is sports. - /// </summary> - /// <value><c>null</c> if [is sports] contains no value, <c>true</c> if [is sports]; otherwise, <c>false</c>.</value> - public bool? IsSports { get; set; } - - /// <summary> - /// Skips over a given number of items within the results. Use for paging. - /// </summary> - public int? StartIndex { get; set; } - public bool? IsSeries { get; set; } - - /// <summary> - /// Gets or sets a value indicating whether this instance has aired. - /// </summary> - /// <value><c>null</c> if [has aired] contains no value, <c>true</c> if [has aired]; otherwise, <c>false</c>.</value> - public bool? HasAired { get; set; } - - /// <summary> - /// The maximum number of items to return - /// </summary> - public int? Limit { get; set; } - - public Tuple<string, SortOrder>[] OrderBy { get; set; } - - /// <summary> - /// Limit results to items containing specific genres - /// </summary> - /// <value>The genres.</value> - public Guid[] GenreIds { get; set; } - public string[] Genres { get; set; } - } -}
\ No newline at end of file diff --git a/MediaBrowser.Model/LiveTv/RecommendedProgramQuery.cs b/MediaBrowser.Model/LiveTv/RecommendedProgramQuery.cs deleted file mode 100644 index 9972c4c3f..000000000 --- a/MediaBrowser.Model/LiveTv/RecommendedProgramQuery.cs +++ /dev/null @@ -1,73 +0,0 @@ -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Querying; -using System; - -namespace MediaBrowser.Model.LiveTv -{ - public class RecommendedProgramQuery - { - /// <summary> - /// Fields to return within the items, in addition to basic information - /// </summary> - /// <value>The fields.</value> - public ItemFields[] Fields { get; set; } - public bool? EnableImages { get; set; } - public int? ImageTypeLimit { get; set; } - public ImageType[] EnableImageTypes { get; set; } - public Guid[] GenreIds { get; set; } - - public bool EnableTotalRecordCount { get; set; } - - public RecommendedProgramQuery() - { - EnableTotalRecordCount = true; - GenreIds = new Guid[] { }; - } - - /// <summary> - /// Gets or sets the user identifier. - /// </summary> - /// <value>The user identifier.</value> - public string UserId { get; set; } - - /// <summary> - /// Gets or sets a value indicating whether this instance is airing. - /// </summary> - /// <value><c>true</c> if this instance is airing; otherwise, <c>false</c>.</value> - public bool? IsAiring { get; set; } - - /// <summary> - /// Gets or sets a value indicating whether this instance has aired. - /// </summary> - /// <value><c>null</c> if [has aired] contains no value, <c>true</c> if [has aired]; otherwise, <c>false</c>.</value> - public bool? HasAired { get; set; } - - /// <summary> - /// The maximum number of items to return - /// </summary> - /// <value>The limit.</value> - public int? Limit { get; set; } - - /// <summary> - /// Gets or sets a value indicating whether this instance is movie. - /// </summary> - /// <value><c>null</c> if [is movie] contains no value, <c>true</c> if [is movie]; otherwise, <c>false</c>.</value> - public bool? IsNews { get; set; } - /// <summary> - /// Gets or sets a value indicating whether this instance is movie. - /// </summary> - /// <value><c>null</c> if [is movie] contains no value, <c>true</c> if [is movie]; otherwise, <c>false</c>.</value> - public bool? IsMovie { get; set; } - public bool? IsSeries { get; set; } - /// <summary> - /// Gets or sets a value indicating whether this instance is kids. - /// </summary> - /// <value><c>null</c> if [is kids] contains no value, <c>true</c> if [is kids]; otherwise, <c>false</c>.</value> - public bool? IsKids { get; set; } - /// <summary> - /// Gets or sets a value indicating whether this instance is sports. - /// </summary> - /// <value><c>null</c> if [is sports] contains no value, <c>true</c> if [is sports]; otherwise, <c>false</c>.</value> - public bool? IsSports { get; set; } - } -}
\ No newline at end of file diff --git a/MediaBrowser.Model/MediaInfo/MediaInfo.cs b/MediaBrowser.Model/MediaInfo/MediaInfo.cs index 55545e23a..eb8a4434e 100644 --- a/MediaBrowser.Model/MediaInfo/MediaInfo.cs +++ b/MediaBrowser.Model/MediaInfo/MediaInfo.cs @@ -7,8 +7,6 @@ namespace MediaBrowser.Model.MediaInfo { public class MediaInfo : MediaSourceInfo, IHasProviderIds { - private static readonly string[] EmptyStringArray = new string[] {}; - public ChapterInfo[] Chapters { get; set; } /// <summary> @@ -56,13 +54,13 @@ namespace MediaBrowser.Model.MediaInfo public MediaInfo() { - Chapters = new ChapterInfo[] { }; - Artists = new string[] {}; - AlbumArtists = EmptyStringArray; - Studios = new string[] {}; - Genres = new string[] {}; - People = new BaseItemPerson[] { }; + Chapters = Array.Empty<ChapterInfo>(); + Artists = Array.Empty<string>(); + AlbumArtists = Array.Empty<string>(); + Studios = Array.Empty<string>(); + Genres = Array.Empty<string>(); + People = Array.Empty<BaseItemPerson>(); ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.Model/MediaInfo/PlaybackInfoRequest.cs b/MediaBrowser.Model/MediaInfo/PlaybackInfoRequest.cs index c68c047f6..91673da9e 100644 --- a/MediaBrowser.Model/MediaInfo/PlaybackInfoRequest.cs +++ b/MediaBrowser.Model/MediaInfo/PlaybackInfoRequest.cs @@ -1,5 +1,4 @@ using MediaBrowser.Model.Dlna; -using System.Collections.Generic; using System; namespace MediaBrowser.Model.MediaInfo diff --git a/MediaBrowser.Model/Notifications/NotificationOption.cs b/MediaBrowser.Model/Notifications/NotificationOption.cs index cda9e311d..ce49ae209 100644 --- a/MediaBrowser.Model/Notifications/NotificationOption.cs +++ b/MediaBrowser.Model/Notifications/NotificationOption.cs @@ -21,18 +21,6 @@ namespace MediaBrowser.Model.Notifications /// </summary> /// <value><c>true</c> if enabled; otherwise, <c>false</c>.</value> public bool Enabled { get; set; } - - /// <summary> - /// Gets or sets the title format string. - /// </summary> - /// <value>The title format string.</value> - public string Title { get; set; } - - /// <summary> - /// Gets or sets the description. - /// </summary> - /// <value>The description.</value> - public string Description { get; set; } /// <summary> /// Gets or sets the disabled services. @@ -48,9 +36,9 @@ namespace MediaBrowser.Model.Notifications public NotificationOption() { - DisabledServices = new string[] {}; - DisabledMonitorUsers = new string[] {}; - SendToUsers = new string[] {}; + DisabledServices = Array.Empty<string>(); + DisabledMonitorUsers = Array.Empty<string>(); + SendToUsers = Array.Empty<string>(); } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.Model/Notifications/NotificationRequest.cs b/MediaBrowser.Model/Notifications/NotificationRequest.cs index 9c89e40fb..7fa57ca9a 100644 --- a/MediaBrowser.Model/Notifications/NotificationRequest.cs +++ b/MediaBrowser.Model/Notifications/NotificationRequest.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; namespace MediaBrowser.Model.Notifications { @@ -22,8 +21,6 @@ namespace MediaBrowser.Model.Notifications /// </summary> public string NotificationType { get; set; } - public Dictionary<string, string> Variables { get; set; } - public SendToUserType? SendToUserMode { get; set; } public NotificationRequest() diff --git a/MediaBrowser.Model/Notifications/NotificationServiceInfo.cs b/MediaBrowser.Model/Notifications/NotificationServiceInfo.cs deleted file mode 100644 index 0ffe7d4ae..000000000 --- a/MediaBrowser.Model/Notifications/NotificationServiceInfo.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace MediaBrowser.Model.Notifications -{ - public class NotificationServiceInfo - { - public string Name { get; set; } - public string Id { get; set; } - } -}
\ No newline at end of file diff --git a/MediaBrowser.Model/Notifications/NotificationTypeInfo.cs b/MediaBrowser.Model/Notifications/NotificationTypeInfo.cs index 4c3283d8e..203712fa8 100644 --- a/MediaBrowser.Model/Notifications/NotificationTypeInfo.cs +++ b/MediaBrowser.Model/Notifications/NotificationTypeInfo.cs @@ -1,5 +1,4 @@ -using System.Collections.Generic; -using System; +using System; namespace MediaBrowser.Model.Notifications { @@ -14,16 +13,5 @@ namespace MediaBrowser.Model.Notifications public string Category { get; set; } public bool IsBasedOnUserEvent { get; set; } - - public string DefaultTitle { get; set; } - - public string DefaultDescription { get; set; } - - public string[] Variables { get; set; } - - public NotificationTypeInfo() - { - Variables = new string[] {}; - } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.Model/Playlists/PlaylistCreationRequest.cs b/MediaBrowser.Model/Playlists/PlaylistCreationRequest.cs index 4c5c8bf51..db2724efa 100644 --- a/MediaBrowser.Model/Playlists/PlaylistCreationRequest.cs +++ b/MediaBrowser.Model/Playlists/PlaylistCreationRequest.cs @@ -1,11 +1,10 @@ -using System.Collections.Generic; -using System; +using System; namespace MediaBrowser.Model.Playlists { public class PlaylistCreationRequest { - public string Name { get; set; } + public string Name { get; set; } public Guid[] ItemIdList { get; set; } diff --git a/MediaBrowser.Model/Providers/SubtitleOptions.cs b/MediaBrowser.Model/Providers/SubtitleOptions.cs index f67b8870d..fde816dd3 100644 --- a/MediaBrowser.Model/Providers/SubtitleOptions.cs +++ b/MediaBrowser.Model/Providers/SubtitleOptions.cs @@ -18,10 +18,10 @@ namespace MediaBrowser.Model.Providers public SubtitleOptions() { - DownloadLanguages = new string[] {}; + DownloadLanguages = Array.Empty<string>(); SkipIfAudioTrackMatches = true; RequirePerfectMatch = true; } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.Model/Querying/QueryFilters.cs b/MediaBrowser.Model/Querying/QueryFilters.cs index 992bba303..f46650a03 100644 --- a/MediaBrowser.Model/Querying/QueryFilters.cs +++ b/MediaBrowser.Model/Querying/QueryFilters.cs @@ -12,10 +12,10 @@ namespace MediaBrowser.Model.Querying public QueryFiltersLegacy() { - Genres = new string[] {}; - Tags = new string[] {}; - OfficialRatings = new string[] {}; - Years = new int[] { }; + Genres = Array.Empty<string>(); + Tags = Array.Empty<string>(); + OfficialRatings = Array.Empty<string>(); + Years = Array.Empty<int>(); } } public class QueryFilters @@ -25,8 +25,8 @@ namespace MediaBrowser.Model.Querying public QueryFilters() { - Tags = new string[] {}; - Genres = new NameGuidPair[] { }; + Tags = Array.Empty<string>(); + Genres = Array.Empty<NameGuidPair>(); } } } diff --git a/MediaBrowser.Model/Search/SearchQuery.cs b/MediaBrowser.Model/Search/SearchQuery.cs index 6a1861c8e..9ed2f4ffb 100644 --- a/MediaBrowser.Model/Search/SearchQuery.cs +++ b/MediaBrowser.Model/Search/SearchQuery.cs @@ -57,9 +57,9 @@ namespace MediaBrowser.Model.Search IncludePeople = true; IncludeStudios = true; - MediaTypes = new string[] {}; - IncludeItemTypes = new string[] {}; - ExcludeItemTypes = new string[] {}; + MediaTypes = Array.Empty<string>(); + IncludeItemTypes = Array.Empty<string>(); + ExcludeItemTypes = Array.Empty<string>(); } } } diff --git a/MediaBrowser.Model/Session/ClientCapabilities.cs b/MediaBrowser.Model/Session/ClientCapabilities.cs index 0a780b910..ded4c0e84 100644 --- a/MediaBrowser.Model/Session/ClientCapabilities.cs +++ b/MediaBrowser.Model/Session/ClientCapabilities.cs @@ -25,9 +25,9 @@ namespace MediaBrowser.Model.Session public ClientCapabilities() { - PlayableMediaTypes = new string[] {}; - SupportedCommands = new string[] {}; + PlayableMediaTypes = Array.Empty<string>(); + SupportedCommands = Array.Empty<string>(); SupportsPersistentIdentifier = true; } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.Model/Session/SessionInfoDto.cs b/MediaBrowser.Model/Session/SessionInfoDto.cs deleted file mode 100644 index ca14107df..000000000 --- a/MediaBrowser.Model/Session/SessionInfoDto.cs +++ /dev/null @@ -1,117 +0,0 @@ -using MediaBrowser.Model.Dto; -using System; -using System.Collections.Generic; - -namespace MediaBrowser.Model.Session -{ - public class SessionInfoDto - { - /// <summary> - /// Gets or sets the supported commands. - /// </summary> - /// <value>The supported commands.</value> - public string[] SupportedCommands { get; set; } - - /// <summary> - /// Gets or sets the playable media types. - /// </summary> - /// <value>The playable media types.</value> - public string[] PlayableMediaTypes { get; set; } - - /// <summary> - /// Gets or sets the id. - /// </summary> - /// <value>The id.</value> - public string Id { get; set; } - - public string ServerId { get; set; } - - /// <summary> - /// Gets or sets the user id. - /// </summary> - /// <value>The user id.</value> - public string UserId { get; set; } - - /// <summary> - /// Gets or sets the user primary image tag. - /// </summary> - /// <value>The user primary image tag.</value> - public string UserPrimaryImageTag { get; set; } - - public string RemoteEndPoint { get; set; } - - /// <summary> - /// Gets or sets the name of the user. - /// </summary> - /// <value>The name of the user.</value> - public string UserName { get; set; } - - /// <summary> - /// Gets or sets the additional users present. - /// </summary> - /// <value>The additional users present.</value> - public SessionUserInfo[] AdditionalUsers { get; set; } - - /// <summary> - /// Gets or sets the application version. - /// </summary> - /// <value>The application version.</value> - public string ApplicationVersion { get; set; } - - /// <summary> - /// Gets or sets the type of the client. - /// </summary> - /// <value>The type of the client.</value> - public string Client { get; set; } - - /// <summary> - /// Gets or sets the last activity date. - /// </summary> - /// <value>The last activity date.</value> - public DateTime LastActivityDate { get; set; } - - /// <summary> - /// Gets or sets the name of the device. - /// </summary> - /// <value>The name of the device.</value> - public string DeviceName { get; set; } - - public string DeviceType { get; set; } - - /// <summary> - /// Gets or sets the now playing item. - /// </summary> - /// <value>The now playing item.</value> - public BaseItemDto NowPlayingItem { get; set; } - - /// <summary> - /// Gets or sets the device id. - /// </summary> - /// <value>The device id.</value> - public string DeviceId { get; set; } - - /// <summary> - /// Gets or sets the application icon URL. - /// </summary> - /// <value>The application icon URL.</value> - public string AppIconUrl { get; set; } - - /// <summary> - /// Gets or sets a value indicating whether [supports remote control]. - /// </summary> - /// <value><c>true</c> if [supports remote control]; otherwise, <c>false</c>.</value> - public bool SupportsRemoteControl { get; set; } - - public PlayerStateInfo PlayState { get; set; } - - public TranscodingInfo TranscodingInfo { get; set; } - - public SessionInfoDto() - { - AdditionalUsers = new SessionUserInfo[] { }; - - PlayableMediaTypes = new string[] {}; - SupportedCommands = new string[] {}; - } - } -} diff --git a/MediaBrowser.Model/Sync/SyncJob.cs b/MediaBrowser.Model/Sync/SyncJob.cs index 0cf9312a1..3b2e30d70 100644 --- a/MediaBrowser.Model/Sync/SyncJob.cs +++ b/MediaBrowser.Model/Sync/SyncJob.cs @@ -1,6 +1,4 @@ using System; -using System.Collections.Generic; -using MediaBrowser.Model.Sync; namespace MediaBrowser.Model.Sync { @@ -108,7 +106,7 @@ namespace MediaBrowser.Model.Sync public SyncJob() { - RequestedItemIds = new Guid[] { }; + RequestedItemIds = Array.Empty<Guid>(); } } } diff --git a/MediaBrowser.Model/Users/UserPolicy.cs b/MediaBrowser.Model/Users/UserPolicy.cs index 8bddafb5a..e3f6d8620 100644 --- a/MediaBrowser.Model/Users/UserPolicy.cs +++ b/MediaBrowser.Model/Users/UserPolicy.cs @@ -78,7 +78,7 @@ namespace MediaBrowser.Model.Users public UserPolicy() { EnableContentDeletion = true; - EnableContentDeletionFromFolders = new string[] { }; + EnableContentDeletionFromFolders = Array.Empty<string>(); EnableSyncTranscoding = true; EnableMediaConversion = true; @@ -97,20 +97,20 @@ namespace MediaBrowser.Model.Users EnableSharedDeviceControl = true; - BlockedTags = new string[] { }; - BlockUnratedItems = new UnratedItem[] { }; + BlockedTags = Array.Empty<string>(); + BlockUnratedItems = Array.Empty<UnratedItem>(); EnableUserPreferenceAccess = true; - AccessSchedules = new AccessSchedule[] { }; + AccessSchedules = Array.Empty<AccessSchedule>(); EnableAllChannels = true; - EnabledChannels = new string[] { }; + EnabledChannels = Array.Empty<string>(); EnableAllFolders = true; - EnabledFolders = new string[] { }; + EnabledFolders = Array.Empty<string>(); - EnabledDevices = new string[] { }; + EnabledDevices = Array.Empty<string>(); EnableAllDevices = true; EnableContentDownloading = true; @@ -118,4 +118,4 @@ namespace MediaBrowser.Model.Users EnableRemoteAccess = true; } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.Providers/Chapters/ChapterManager.cs b/MediaBrowser.Providers/Chapters/ChapterManager.cs index 7eb650cca..96e068a1f 100644 --- a/MediaBrowser.Providers/Chapters/ChapterManager.cs +++ b/MediaBrowser.Providers/Chapters/ChapterManager.cs @@ -1,20 +1,11 @@ -using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Extensions; -using MediaBrowser.Controller.Chapters; +using MediaBrowser.Controller.Chapters; using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Entities.Movies; -using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Persistence; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; -using System.Threading; -using System.Threading.Tasks; namespace MediaBrowser.Providers.Chapters { diff --git a/MediaBrowser.Providers/Subtitles/SubtitleManager.cs b/MediaBrowser.Providers/Subtitles/SubtitleManager.cs index 2cf737511..f9348a761 100644 --- a/MediaBrowser.Providers/Subtitles/SubtitleManager.cs +++ b/MediaBrowser.Providers/Subtitles/SubtitleManager.cs @@ -1,5 +1,4 @@ -using MediaBrowser.Common.Events; -using MediaBrowser.Common.Extensions; +using MediaBrowser.Common.Extensions; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Entities.TV; @@ -189,13 +188,12 @@ namespace MediaBrowser.Providers.Subtitles } catch (Exception ex) { - EventHelper.FireEventIfNotNull(SubtitleDownloadFailure, this, new SubtitleDownloadFailureEventArgs + SubtitleDownloadFailure?.Invoke(this, new SubtitleDownloadFailureEventArgs { Item = video, Exception = ex, Provider = provider.Name - - }, _logger); + }); throw; } |
