aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBond-009 <bond.009@outlook.com>2024-03-28 17:19:59 +0100
committerGitHub <noreply@github.com>2024-03-28 17:19:59 +0100
commitd6355261e32fac639fd81bc1041bc0e50f1705e4 (patch)
treed03ada68730c1f7addcafcab0a8274c0d09ea131
parent5db0c5a0e45938b465e972d8ffcd476b7ea2d460 (diff)
parent71fc475bb39e0439af7b9c6e5289490ea20fad29 (diff)
Merge pull request #9641 from Daaiid/fix_compiler_warnings
Fix compiler warnings for Emby.Server.Implementations
-rw-r--r--Emby.Server.Implementations/Data/SqliteItemRepository.cs32
-rw-r--r--Emby.Server.Implementations/Sorting/AlbumArtistComparer.cs31
2 files changed, 30 insertions, 33 deletions
diff --git a/Emby.Server.Implementations/Data/SqliteItemRepository.cs b/Emby.Server.Implementations/Data/SqliteItemRepository.cs
index a6336f145..59e4ff1a9 100644
--- a/Emby.Server.Implementations/Data/SqliteItemRepository.cs
+++ b/Emby.Server.Implementations/Data/SqliteItemRepository.cs
@@ -205,7 +205,7 @@ namespace Emby.Server.Implementations.Data
private static readonly string _mediaAttachmentSaveColumnsSelectQuery =
$"select {string.Join(',', _mediaAttachmentSaveColumns)} from mediaattachments where ItemId=@ItemId";
- private static readonly string _mediaAttachmentInsertPrefix;
+ private static readonly string _mediaAttachmentInsertPrefix = BuildMediaAttachmentInsertPrefix();
private static readonly BaseItemKind[] _programTypes = new[]
{
@@ -296,21 +296,6 @@ namespace Emby.Server.Implementations.Data
{ BaseItemKind.Year, typeof(Year).FullName }
};
- static SqliteItemRepository()
- {
- var queryPrefixText = new StringBuilder();
- queryPrefixText.Append("insert into mediaattachments (");
- foreach (var column in _mediaAttachmentSaveColumns)
- {
- queryPrefixText.Append(column)
- .Append(',');
- }
-
- queryPrefixText.Length -= 1;
- queryPrefixText.Append(") values ");
- _mediaAttachmentInsertPrefix = queryPrefixText.ToString();
- }
-
/// <summary>
/// Initializes a new instance of the <see cref="SqliteItemRepository"/> class.
/// </summary>
@@ -5879,6 +5864,21 @@ AND Type = @InternalPersonType)");
return item;
}
+ private static string BuildMediaAttachmentInsertPrefix()
+ {
+ var queryPrefixText = new StringBuilder();
+ queryPrefixText.Append("insert into mediaattachments (");
+ foreach (var column in _mediaAttachmentSaveColumns)
+ {
+ queryPrefixText.Append(column)
+ .Append(',');
+ }
+
+ queryPrefixText.Length -= 1;
+ queryPrefixText.Append(") values ");
+ return queryPrefixText.ToString();
+ }
+
#nullable enable
private readonly struct QueryTimeLogger : IDisposable
diff --git a/Emby.Server.Implementations/Sorting/AlbumArtistComparer.cs b/Emby.Server.Implementations/Sorting/AlbumArtistComparer.cs
index 65c8599e7..59185cdb7 100644
--- a/Emby.Server.Implementations/Sorting/AlbumArtistComparer.cs
+++ b/Emby.Server.Implementations/Sorting/AlbumArtistComparer.cs
@@ -1,5 +1,4 @@
using System;
-using System.Linq;
using Jellyfin.Data.Enums;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
@@ -9,37 +8,35 @@ using MediaBrowser.Model.Querying;
namespace Emby.Server.Implementations.Sorting
{
/// <summary>
- /// Class AlbumArtistComparer.
+ /// Allows comparing artists of albums. Only the first artist of each album is considered.
/// </summary>
public class AlbumArtistComparer : IBaseItemComparer
{
/// <summary>
- /// Gets the name.
+ /// Gets the item type this comparer compares.
/// </summary>
- /// <value>The name.</value>
public ItemSortBy Type => ItemSortBy.AlbumArtist;
/// <summary>
- /// Compares the specified x.
+ /// Compares the specified arguments on their primary artist.
/// </summary>
- /// <param name="x">The x.</param>
- /// <param name="y">The y.</param>
- /// <returns>System.Int32.</returns>
+ /// <param name="x">First item to compare.</param>
+ /// <param name="y">Second item to compare.</param>
+ /// <returns>Zero if equal, else negative or positive number to indicate order.</returns>
public int Compare(BaseItem? x, BaseItem? y)
{
- return string.Compare(GetValue(x), GetValue(y), StringComparison.OrdinalIgnoreCase);
+ return string.Compare(GetFirstAlbumArtist(x), GetFirstAlbumArtist(y), StringComparison.OrdinalIgnoreCase);
}
- /// <summary>
- /// Gets the value.
- /// </summary>
- /// <param name="x">The x.</param>
- /// <returns>System.String.</returns>
- private static string? GetValue(BaseItem? x)
+ private static string? GetFirstAlbumArtist(BaseItem? x)
{
- var audio = x as IHasAlbumArtist;
+ if (x is IHasAlbumArtist audio
+ && audio.AlbumArtists.Count != 0)
+ {
+ return audio.AlbumArtists[0];
+ }
- return audio?.AlbumArtists.FirstOrDefault();
+ return null;
}
}
}