aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Entities')
-rw-r--r--MediaBrowser.Controller/Entities/Audio/MusicArtist.cs8
-rw-r--r--MediaBrowser.Controller/Entities/Audio/MusicGenre.cs5
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs58
-rw-r--r--MediaBrowser.Controller/Entities/BaseItemExtensions.cs42
-rw-r--r--MediaBrowser.Controller/Entities/CollectionFolder.cs14
-rw-r--r--MediaBrowser.Controller/Entities/Extensions.cs5
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs64
-rw-r--r--MediaBrowser.Controller/Entities/GameGenre.cs5
-rw-r--r--MediaBrowser.Controller/Entities/Genre.cs5
-rw-r--r--MediaBrowser.Controller/Entities/Person.cs5
-rw-r--r--MediaBrowser.Controller/Entities/Studio.cs5
-rw-r--r--MediaBrowser.Controller/Entities/TV/Episode.cs3
-rw-r--r--MediaBrowser.Controller/Entities/TagExtensions.cs7
-rw-r--r--MediaBrowser.Controller/Entities/UserViewBuilder.cs12
-rw-r--r--MediaBrowser.Controller/Entities/Year.cs3
15 files changed, 119 insertions, 122 deletions
diff --git a/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs b/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs
index 82dece84b..2774dc944 100644
--- a/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs
+++ b/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs
@@ -1,5 +1,4 @@
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.Providers;
+using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Users;
@@ -9,9 +8,8 @@ using System.Linq;
using MediaBrowser.Model.Serialization;
using System.Threading;
using System.Threading.Tasks;
-using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.Extensions;
-using MediaBrowser.Model.Extensions;
+using Microsoft.Extensions.Logging;
namespace MediaBrowser.Controller.Entities.Audio
{
@@ -245,7 +243,7 @@ namespace MediaBrowser.Controller.Entities.Audio
var newPath = GetRebasedPath();
if (!string.Equals(Path, newPath, StringComparison.Ordinal))
{
- Logger.Debug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath);
+ Logger.LogDebug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath);
return true;
}
}
diff --git a/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs b/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs
index d60ce83ad..ec68eaf8b 100644
--- a/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs
+++ b/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs
@@ -1,9 +1,8 @@
using System;
using System.Collections.Generic;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.Extensions;
-using MediaBrowser.Model.Extensions;
+using Microsoft.Extensions.Logging;
namespace MediaBrowser.Controller.Entities.Audio
{
@@ -119,7 +118,7 @@ namespace MediaBrowser.Controller.Entities.Audio
var newPath = GetRebasedPath();
if (!string.Equals(Path, newPath, StringComparison.Ordinal))
{
- Logger.Debug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath);
+ Logger.LogDebug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath);
return true;
}
return base.RequiresRefresh();
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index 053ee1b96..e80fe3387 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -1,41 +1,32 @@
using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.Channels;
-using MediaBrowser.Controller.Collections;
using MediaBrowser.Controller.Configuration;
-using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Controller.Persistence;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Library;
-using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Users;
using System;
using System.Collections.Generic;
using System.Globalization;
-using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
-
-using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Extensions;
-using MediaBrowser.Controller.IO;
-using MediaBrowser.Controller.MediaEncoding;
using MediaBrowser.Controller.Sorting;
using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.LiveTv;
using MediaBrowser.Model.Providers;
-using MediaBrowser.Model.Querying;
using MediaBrowser.Model.Serialization;
using MediaBrowser.Model.MediaInfo;
+using Microsoft.Extensions.Logging;
namespace MediaBrowser.Controller.Entities
{
@@ -798,7 +789,7 @@ namespace MediaBrowser.Controller.Entities
builder.Append(chunkBuilder);
}
- //Logger.Debug("ModifySortChunks Start: {0} End: {1}", name, builder.ToString());
+ //logger.LogDebug("ModifySortChunks Start: {0} End: {1}", name, builder.ToString());
return builder.ToString().RemoveDiacritics();
}
@@ -1295,7 +1286,7 @@ namespace MediaBrowser.Controller.Entities
}
}
- return string.Join("/", terms.ToArray(terms.Count));
+ return string.Join("/", terms.ToArray());
}
/// <summary>
@@ -1414,7 +1405,7 @@ namespace MediaBrowser.Controller.Entities
}
catch (Exception ex)
{
- Logger.ErrorException("Error refreshing owned items for {0}", ex, Path ?? Name);
+ Logger.LogError(ex, "Error refreshing owned items for {path}", Path ?? Name);
}
}
@@ -1536,7 +1527,7 @@ namespace MediaBrowser.Controller.Entities
{
var newThemeVideos = LoadThemeVideos(fileSystemChildren, options.DirectoryService);
- var newThemeVideoIds = newThemeVideos.Select(i => i.Id).ToArray(newThemeVideos.Length);
+ var newThemeVideoIds = newThemeVideos.Select(i => i.Id).ToArray();
var themeVideosChanged = !item.ThemeVideoIds.SequenceEqual(newThemeVideoIds);
@@ -1573,7 +1564,7 @@ namespace MediaBrowser.Controller.Entities
private async Task<bool> RefreshThemeSongs(BaseItem item, MetadataRefreshOptions options, List<FileSystemMetadata> fileSystemChildren, CancellationToken cancellationToken)
{
var newThemeSongs = LoadThemeSongs(fileSystemChildren, options.DirectoryService);
- var newThemeSongIds = newThemeSongs.Select(i => i.Id).ToArray(newThemeSongs.Length);
+ var newThemeSongIds = newThemeSongs.Select(i => i.Id).ToArray();
var themeSongsChanged = !item.ThemeSongIds.SequenceEqual(newThemeSongIds);
@@ -1802,7 +1793,7 @@ namespace MediaBrowser.Controller.Entities
if (!isAllowed)
{
- Logger.Debug("{0} has an unrecognized parental rating of {1}.", Name, rating);
+ Logger.LogDebug("{0} has an unrecognized parental rating of {1}.", Name, rating);
}
return isAllowed;
@@ -2058,7 +2049,7 @@ namespace MediaBrowser.Controller.Entities
if (itemByPath == null)
{
- //Logger.Warn("Unable to find linked item at path {0}", info.Path);
+ //Logger.LogWarning("Unable to find linked item at path {0}", info.Path);
}
return itemByPath;
@@ -2070,7 +2061,7 @@ namespace MediaBrowser.Controller.Entities
if (item == null)
{
- //Logger.Warn("Unable to find linked item at path {0}", info.Path);
+ //Logger.LogWarning("Unable to find linked item at path {0}", info.Path);
}
return item;
@@ -2110,9 +2101,8 @@ namespace MediaBrowser.Controller.Entities
}
else
{
- var list = current.ToArray(current.Length + 1);
- list[list.Length - 1] = name;
- Studios = list;
+ var list =
+ Studios = current.Concat(new [] { name }).ToArray();
}
}
}
@@ -2214,7 +2204,7 @@ namespace MediaBrowser.Controller.Entities
/// <returns>Task.</returns>
public virtual void ChangedExternally()
{
- ProviderManager.QueueRefresh(Id, new MetadataRefreshOptions(FileSystem)
+ ProviderManager.QueueRefresh(Id, new MetadataRefreshOptions(new DirectoryService(Logger, FileSystem))
{
}, RefreshPriority.High);
@@ -2252,9 +2242,7 @@ namespace MediaBrowser.Controller.Entities
else
{
var currentCount = ImageInfos.Length;
- var newList = ImageInfos.ToArray(currentCount + 1);
- newList[currentCount] = image;
- ImageInfos = newList;
+ ImageInfos = ImageInfos.Concat(new [] { image }) .ToArray();
}
}
@@ -2269,10 +2257,7 @@ namespace MediaBrowser.Controller.Entities
if (image == null)
{
- var currentCount = ImageInfos.Length;
- var newList = ImageInfos.ToArray(currentCount + 1);
- newList[currentCount] = GetImageInfo(file, type);
- ImageInfos = newList;
+ ImageInfos = ImageInfos.Concat(new [] { GetImageInfo(file, type) }) .ToArray();
}
else
{
@@ -2486,16 +2471,7 @@ namespace MediaBrowser.Controller.Entities
if (newImageList.Count > 0)
{
- var currentCount = ImageInfos.Length;
- var newList = ImageInfos.ToArray(currentCount + newImageList.Count);
-
- foreach (var image in newImageList)
- {
- newList[currentCount] = GetImageInfo(image, imageType);
- currentCount++;
- }
-
- ImageInfos = newList;
+ ImageInfos = ImageInfos.Concat(newImageList.Select(i => GetImageInfo(i, imageType))).ToArray();
}
return imageUpdated || newImageList.Count > 0;
@@ -2537,7 +2513,7 @@ namespace MediaBrowser.Controller.Entities
var extensions = new List<string> { ".nfo", ".xml", ".srt", ".vtt", ".sub", ".idx", ".txt", ".edl", ".bif", ".smi", ".ttml" };
extensions.AddRange(SupportedImageExtensions);
- return FileSystem.GetFiles(FileSystem.GetDirectoryName(Path), extensions.ToArray(extensions.Count), false, false)
+ return FileSystem.GetFiles(FileSystem.GetDirectoryName(Path), extensions.ToArray(), false, false)
.Where(i => System.IO.Path.GetFileNameWithoutExtension(i.FullName).StartsWith(filename, StringComparison.OrdinalIgnoreCase))
.ToList();
}
@@ -2776,7 +2752,7 @@ namespace MediaBrowser.Controller.Entities
{
var list = GetEtagValues(user);
- return string.Join("|", list.ToArray(list.Count)).GetMD5().ToString("N");
+ return string.Join("|", list.ToArray()).GetMD5().ToString("N");
}
protected virtual List<string> GetEtagValues(User user)
diff --git a/MediaBrowser.Controller/Entities/BaseItemExtensions.cs b/MediaBrowser.Controller/Entities/BaseItemExtensions.cs
index c56a370a8..8ab1788b5 100644
--- a/MediaBrowser.Controller/Entities/BaseItemExtensions.cs
+++ b/MediaBrowser.Controller/Entities/BaseItemExtensions.cs
@@ -1,4 +1,5 @@
using System;
+using System.Linq;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
@@ -61,5 +62,46 @@ namespace MediaBrowser.Controller.Entities
item.SetImagePath(imageType, BaseItem.FileSystem.GetFileInfo(file));
}
}
+
+ /// <summary>
+ /// Copies all properties on object. Skips properties that do not exist.
+ /// </summary>
+ /// <param name="source">The source object.</param>
+ /// <param name="dest">The destination object.</param>
+ public static void DeepCopy<T, TU>(this T source, TU dest)
+ where T : BaseItem
+ where TU : BaseItem
+ {
+ var sourceProps = typeof (T).GetProperties().Where(x => x.CanRead).ToList();
+ var destProps = typeof(TU).GetProperties()
+ .Where(x => x.CanWrite)
+ .ToList();
+
+ foreach (var sourceProp in sourceProps)
+ {
+ if (destProps.Any(x => x.Name == sourceProp.Name))
+ {
+ var p = destProps.First(x => x.Name == sourceProp.Name);
+ p.SetValue(dest, sourceProp.GetValue(source, null), null);
+ }
+
+ }
+
+ }
+
+ /// <summary>
+ /// Copies all properties on newly created object. Skips properties that do not exist.
+ /// </summary>
+ /// <param name="source">The source object.</param>
+ public static TU DeepCopy<T, TU>(this T source)
+ where T : BaseItem
+ where TU : BaseItem, new()
+ {
+ var dest = new TU();
+ source.DeepCopy(dest);
+ return dest;
+ }
+
+
}
}
diff --git a/MediaBrowser.Controller/Entities/CollectionFolder.cs b/MediaBrowser.Controller/Entities/CollectionFolder.cs
index 8240a68ff..7292b166a 100644
--- a/MediaBrowser.Controller/Entities/CollectionFolder.cs
+++ b/MediaBrowser.Controller/Entities/CollectionFolder.cs
@@ -1,13 +1,13 @@
-using MediaBrowser.Controller.IO;
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.Providers;
-using System;
+using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using MediaBrowser.Controller.IO;
+using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Providers;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities;
@@ -15,6 +15,8 @@ using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Serialization;
+using Microsoft.Extensions.Logging;
+
namespace MediaBrowser.Controller.Entities
{
/// <summary>
@@ -103,7 +105,7 @@ namespace MediaBrowser.Controller.Entities
}
catch (Exception ex)
{
- Logger.ErrorException("Error loading library options", ex);
+ Logger.LogError(ex, "Error loading library options");
return new LibraryOptions();
}
@@ -275,7 +277,7 @@ namespace MediaBrowser.Controller.Entities
var changed = !linkedChildren.SequenceEqual(LinkedChildren, new LinkedChildComparer(FileSystem));
- LinkedChildren = linkedChildren.ToArray(linkedChildren.Count);
+ LinkedChildren = linkedChildren.ToArray();
var folderIds = PhysicalFolderIds;
var newFolderIds = physicalFolders.Select(i => i.Id).ToArray();
diff --git a/MediaBrowser.Controller/Entities/Extensions.cs b/MediaBrowser.Controller/Entities/Extensions.cs
index c706cf36c..ee135a14e 100644
--- a/MediaBrowser.Controller/Entities/Extensions.cs
+++ b/MediaBrowser.Controller/Entities/Extensions.cs
@@ -35,10 +35,7 @@ namespace MediaBrowser.Controller.Entities
}
else
{
- var list = item.RemoteTrailers.ToArray(item.RemoteTrailers.Length + 1);
- list[list.Length - 1] = mediaUrl;
-
- item.RemoteTrailers = list;
+ item.RemoteTrailers = item.RemoteTrailers.Concat(new [] { mediaUrl }).ToArray();
}
}
}
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index 8b9aa5fc3..dbe30f9a5 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -10,7 +10,6 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
-
using MediaBrowser.Controller.Channels;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities.Audio;
@@ -23,6 +22,7 @@ using MediaBrowser.Model.Serialization;
using MediaBrowser.Model.Extensions;
using MediaBrowser.Controller.Collections;
using MediaBrowser.Controller.Configuration;
+using Microsoft.Extensions.Logging;
namespace MediaBrowser.Controller.Entities
{
@@ -264,7 +264,7 @@ namespace MediaBrowser.Controller.Entities
/// </summary>
protected virtual List<BaseItem> LoadChildren()
{
- //Logger.Debug("Loading children from {0} {1} {2}", GetType().Name, Id, Path);
+ //logger.LogDebug("Loading children from {0} {1} {2}", GetType().Name, Id, Path);
//just load our children from the repo - the library will be validated and maintained in other processes
return GetCachedChildren();
}
@@ -303,7 +303,7 @@ namespace MediaBrowser.Controller.Entities
var id = child.Id;
if (dictionary.ContainsKey(id))
{
- Logger.Error("Found folder containing items with duplicate id. Path: {0}, Child Name: {1}",
+ Logger.LogError("Found folder containing items with duplicate id. Path: {path}, Child Name: {ChildName}",
Path ?? Name,
child.Path ?? child.Name);
}
@@ -371,6 +371,7 @@ namespace MediaBrowser.Controller.Entities
}
catch (Exception ex)
{
+ Logger.LogError(ex, "Error retrieving children folder");
return;
}
@@ -419,13 +420,9 @@ namespace MediaBrowser.Controller.Entities
foreach (var item in itemsRemoved)
{
- if (!item.IsFileProtocol)
- {
- }
-
- else
+ if (item.IsFileProtocol)
{
- Logger.Debug("Removed item: " + item.Path);
+ Logger.LogDebug("Removed item: " + item.Path);
item.SetParent(null);
LibraryManager.DeleteItem(item, new DeleteOptions { DeleteFileLocation = false }, this, false);
@@ -571,14 +568,9 @@ namespace MediaBrowser.Controller.Entities
await child.RefreshMetadata(refreshOptions, cancellationToken).ConfigureAwait(false);
}
- if (recursive)
+ if (recursive && child is Folder folder)
{
- var folder = child as Folder;
-
- if (folder != null)
- {
- await folder.RefreshMetadataRecursive(folder.Children.ToList(), refreshOptions, true, progress, cancellationToken);
- }
+ await folder.RefreshMetadataRecursive(folder.Children.ToList(), refreshOptions, true, progress, cancellationToken);
}
}
}
@@ -782,7 +774,7 @@ namespace MediaBrowser.Controller.Entities
{
if (query.IncludeItemTypes.Length == 1 && string.Equals(query.IncludeItemTypes[0], typeof(BoxSet).Name, StringComparison.OrdinalIgnoreCase))
{
- Logger.Debug("Query requires post-filtering due to BoxSet query");
+ Logger.LogDebug("Query requires post-filtering due to BoxSet query");
return true;
}
@@ -795,7 +787,7 @@ namespace MediaBrowser.Controller.Entities
{
if (!(this is ICollectionFolder))
{
- Logger.Debug("Query requires post-filtering due to LinkedChildren. Type: " + GetType().Name);
+ Logger.LogDebug("Query requires post-filtering due to LinkedChildren. Type: " + GetType().Name);
return true;
}
}
@@ -803,68 +795,68 @@ namespace MediaBrowser.Controller.Entities
// Filter by Video3DFormat
if (query.Is3D.HasValue)
{
- Logger.Debug("Query requires post-filtering due to Is3D");
+ Logger.LogDebug("Query requires post-filtering due to Is3D");
return true;
}
if (query.HasOfficialRating.HasValue)
{
- Logger.Debug("Query requires post-filtering due to HasOfficialRating");
+ Logger.LogDebug("Query requires post-filtering due to HasOfficialRating");
return true;
}
if (query.IsPlaceHolder.HasValue)
{
- Logger.Debug("Query requires post-filtering due to IsPlaceHolder");
+ Logger.LogDebug("Query requires post-filtering due to IsPlaceHolder");
return true;
}
if (query.HasSpecialFeature.HasValue)
{
- Logger.Debug("Query requires post-filtering due to HasSpecialFeature");
+ Logger.LogDebug("Query requires post-filtering due to HasSpecialFeature");
return true;
}
if (query.HasSubtitles.HasValue)
{
- Logger.Debug("Query requires post-filtering due to HasSubtitles");
+ Logger.LogDebug("Query requires post-filtering due to HasSubtitles");
return true;
}
if (query.HasTrailer.HasValue)
{
- Logger.Debug("Query requires post-filtering due to HasTrailer");
+ Logger.LogDebug("Query requires post-filtering due to HasTrailer");
return true;
}
// Filter by VideoType
if (query.VideoTypes.Length > 0)
{
- Logger.Debug("Query requires post-filtering due to VideoTypes");
+ Logger.LogDebug("Query requires post-filtering due to VideoTypes");
return true;
}
if (CollapseBoxSetItems(query, this, query.User, ConfigurationManager))
{
- Logger.Debug("Query requires post-filtering due to CollapseBoxSetItems");
+ Logger.LogDebug("Query requires post-filtering due to CollapseBoxSetItems");
return true;
}
if (!string.IsNullOrEmpty(query.AdjacentTo))
{
- Logger.Debug("Query requires post-filtering due to AdjacentTo");
+ Logger.LogDebug("Query requires post-filtering due to AdjacentTo");
return true;
}
if (query.SeriesStatuses.Length > 0)
{
- Logger.Debug("Query requires post-filtering due to SeriesStatuses");
+ Logger.LogDebug("Query requires post-filtering due to SeriesStatuses");
return true;
}
if (query.AiredDuringSeason.HasValue)
{
- Logger.Debug("Query requires post-filtering due to AiredDuringSeason");
+ Logger.LogDebug("Query requires post-filtering due to AiredDuringSeason");
return true;
}
@@ -872,7 +864,7 @@ namespace MediaBrowser.Controller.Entities
{
if (query.IncludeItemTypes.Length == 1 && query.IncludeItemTypes.Contains(typeof(Series).Name))
{
- Logger.Debug("Query requires post-filtering due to IsPlayed");
+ Logger.LogDebug("Query requires post-filtering due to IsPlayed");
return true;
}
}
@@ -914,7 +906,7 @@ namespace MediaBrowser.Controller.Entities
// Try to preserve order
return result.OrderBy(i => ids.IndexOf(i.Id)).ToArray();
}
- return result.ToArray(result.Count);
+ return result.ToArray();
}
return GetItemsInternal(query).Items;
@@ -1575,7 +1567,7 @@ namespace MediaBrowser.Controller.Entities
{
try
{
- Logger.Debug("Found shortcut at {0}", i.FullName);
+ Logger.LogDebug("Found shortcut at {0}", i.FullName);
var resolvedPath = CollectionFolder.ApplicationHost.ExpandVirtualPath(FileSystem.ResolveShortcut(i.FullName));
@@ -1588,13 +1580,13 @@ namespace MediaBrowser.Controller.Entities
};
}
- Logger.Error("Error resolving shortcut {0}", i.FullName);
+ Logger.LogError("Error resolving shortcut {0}", i.FullName);
return null;
}
catch (IOException ex)
{
- Logger.ErrorException("Error resolving shortcut {0}", ex, i.FullName);
+ Logger.LogError(ex, "Error resolving shortcut {0}", i.FullName);
return null;
}
})
@@ -1605,10 +1597,10 @@ namespace MediaBrowser.Controller.Entities
if (!newShortcutLinks.SequenceEqual(currentShortcutLinks, new LinkedChildComparer(FileSystem)))
{
- Logger.Info("Shortcut links have changed for {0}", Path);
+ Logger.LogInformation("Shortcut links have changed for {0}", Path);
newShortcutLinks.AddRange(LinkedChildren.Where(i => i.Type == LinkedChildType.Manual));
- LinkedChildren = newShortcutLinks.ToArray(newShortcutLinks.Count);
+ LinkedChildren = newShortcutLinks.ToArray();
return true;
}
}
diff --git a/MediaBrowser.Controller/Entities/GameGenre.cs b/MediaBrowser.Controller/Entities/GameGenre.cs
index 63493ad4a..ba178d3c3 100644
--- a/MediaBrowser.Controller/Entities/GameGenre.cs
+++ b/MediaBrowser.Controller/Entities/GameGenre.cs
@@ -1,9 +1,8 @@
using System;
using System.Collections.Generic;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.Extensions;
-using MediaBrowser.Model.Extensions;
+using Microsoft.Extensions.Logging;
namespace MediaBrowser.Controller.Entities
{
@@ -102,7 +101,7 @@ namespace MediaBrowser.Controller.Entities
var newPath = GetRebasedPath();
if (!string.Equals(Path, newPath, StringComparison.Ordinal))
{
- Logger.Debug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath);
+ Logger.LogDebug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath);
return true;
}
return base.RequiresRefresh();
diff --git a/MediaBrowser.Controller/Entities/Genre.cs b/MediaBrowser.Controller/Entities/Genre.cs
index 94a5984df..57ffe2744 100644
--- a/MediaBrowser.Controller/Entities/Genre.cs
+++ b/MediaBrowser.Controller/Entities/Genre.cs
@@ -2,9 +2,8 @@
using MediaBrowser.Controller.Entities.Audio;
using System;
using System.Collections.Generic;
-using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.Extensions;
-using MediaBrowser.Model.Extensions;
+using Microsoft.Extensions.Logging;
namespace MediaBrowser.Controller.Entities
{
@@ -114,7 +113,7 @@ namespace MediaBrowser.Controller.Entities
var newPath = GetRebasedPath();
if (!string.Equals(Path, newPath, StringComparison.Ordinal))
{
- Logger.Debug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath);
+ Logger.LogDebug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath);
return true;
}
return base.RequiresRefresh();
diff --git a/MediaBrowser.Controller/Entities/Person.cs b/MediaBrowser.Controller/Entities/Person.cs
index 64d775094..5c35a7411 100644
--- a/MediaBrowser.Controller/Entities/Person.cs
+++ b/MediaBrowser.Controller/Entities/Person.cs
@@ -1,11 +1,10 @@
using MediaBrowser.Controller.Providers;
using System;
using System.Collections.Generic;
-using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.Extensions;
using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.Serialization;
+using Microsoft.Extensions.Logging;
namespace MediaBrowser.Controller.Entities
{
@@ -137,7 +136,7 @@ namespace MediaBrowser.Controller.Entities
var newPath = GetRebasedPath();
if (!string.Equals(Path, newPath, StringComparison.Ordinal))
{
- Logger.Debug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath);
+ Logger.LogDebug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath);
return true;
}
return base.RequiresRefresh();
diff --git a/MediaBrowser.Controller/Entities/Studio.cs b/MediaBrowser.Controller/Entities/Studio.cs
index 29f617539..c076cd680 100644
--- a/MediaBrowser.Controller/Entities/Studio.cs
+++ b/MediaBrowser.Controller/Entities/Studio.cs
@@ -1,9 +1,8 @@
using System;
using System.Collections.Generic;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.Extensions;
-using MediaBrowser.Model.Extensions;
+using Microsoft.Extensions.Logging;
namespace MediaBrowser.Controller.Entities
{
@@ -115,7 +114,7 @@ namespace MediaBrowser.Controller.Entities
var newPath = GetRebasedPath();
if (!string.Equals(Path, newPath, StringComparison.Ordinal))
{
- Logger.Debug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath);
+ Logger.LogDebug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath);
return true;
}
return base.RequiresRefresh();
diff --git a/MediaBrowser.Controller/Entities/TV/Episode.cs b/MediaBrowser.Controller/Entities/TV/Episode.cs
index 201579731..3a3a902a3 100644
--- a/MediaBrowser.Controller/Entities/TV/Episode.cs
+++ b/MediaBrowser.Controller/Entities/TV/Episode.cs
@@ -7,6 +7,7 @@ using System.Globalization;
using System.Linq;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Serialization;
+using Microsoft.Extensions.Logging;
namespace MediaBrowser.Controller.Entities.TV
{
@@ -363,7 +364,7 @@ namespace MediaBrowser.Controller.Entities.TV
}
catch (Exception ex)
{
- Logger.ErrorException("Error in FillMissingEpisodeNumbersFromPath. Episode: {0}", ex, Path ?? Name ?? Id.ToString());
+ Logger.LogError(ex, "Error in FillMissingEpisodeNumbersFromPath. Episode: {Episode}", Path ?? Name ?? Id.ToString());
}
}
}
diff --git a/MediaBrowser.Controller/Entities/TagExtensions.cs b/MediaBrowser.Controller/Entities/TagExtensions.cs
index e5d8f35d9..84e61be4f 100644
--- a/MediaBrowser.Controller/Entities/TagExtensions.cs
+++ b/MediaBrowser.Controller/Entities/TagExtensions.cs
@@ -1,7 +1,5 @@
using System;
-using System.Collections.Generic;
using System.Linq;
-using MediaBrowser.Model.Extensions;
namespace MediaBrowser.Controller.Entities
{
@@ -24,10 +22,7 @@ namespace MediaBrowser.Controller.Entities
}
else
{
- var list = current.ToArray(current.Length + 1);
- list[list.Length - 1] = name;
-
- item.Tags = list;
+ item.Tags = current.Concat(new [] { name }).ToArray();
}
}
}
diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
index 36035a2bb..b50a12d52 100644
--- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs
+++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
@@ -5,7 +5,7 @@ using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Playlists;
using MediaBrowser.Controller.TV;
using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.Logging;
+using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Querying;
using System;
using System.Collections.Generic;
@@ -259,10 +259,9 @@ namespace MediaBrowser.Controller.Entities
{
return _libraryManager.GetGenre(i);
}
- catch
+ catch (Exception ex)
{
- // Full exception logged at lower levels
- _logger.Error("Error getting genre");
+ _logger.LogError(ex, "Error getting genre");
return null;
}
@@ -383,10 +382,9 @@ namespace MediaBrowser.Controller.Entities
{
return _libraryManager.GetGenre(i);
}
- catch
+ catch (Exception ex)
{
- // Full exception logged at lower levels
- _logger.Error("Error getting genre");
+ _logger.LogError(ex, "Error getting genre");
return null;
}
diff --git a/MediaBrowser.Controller/Entities/Year.cs b/MediaBrowser.Controller/Entities/Year.cs
index 81e030cea..8e3cd0b70 100644
--- a/MediaBrowser.Controller/Entities/Year.cs
+++ b/MediaBrowser.Controller/Entities/Year.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Globalization;
using MediaBrowser.Model.Serialization;
+using Microsoft.Extensions.Logging;
namespace MediaBrowser.Controller.Entities
{
@@ -121,7 +122,7 @@ namespace MediaBrowser.Controller.Entities
var newPath = GetRebasedPath();
if (!string.Equals(Path, newPath, StringComparison.Ordinal))
{
- Logger.Debug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath);
+ Logger.LogDebug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath);
return true;
}
return base.RequiresRefresh();