aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/BaseApiService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/BaseApiService.cs')
-rw-r--r--MediaBrowser.Api/BaseApiService.cs60
1 files changed, 31 insertions, 29 deletions
diff --git a/MediaBrowser.Api/BaseApiService.cs b/MediaBrowser.Api/BaseApiService.cs
index 451ee72dd..49f8c6ace 100644
--- a/MediaBrowser.Api/BaseApiService.cs
+++ b/MediaBrowser.Api/BaseApiService.cs
@@ -9,6 +9,7 @@ using MediaBrowser.Controller.Net;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Services;
+using MediaBrowser.Model.Querying;
using Microsoft.Extensions.Logging;
namespace MediaBrowser.Api
@@ -118,8 +119,7 @@ namespace MediaBrowser.Api
{
var options = new DtoOptions();
- var hasFields = request as IHasItemFields;
- if (hasFields != null)
+ if (request is IHasItemFields hasFields)
{
options.Fields = hasFields.GetItemFields();
}
@@ -133,9 +133,11 @@ namespace MediaBrowser.Api
client.IndexOf("media center", StringComparison.OrdinalIgnoreCase) != -1 ||
client.IndexOf("classic", StringComparison.OrdinalIgnoreCase) != -1)
{
- var list = options.Fields.ToList();
- list.Add(Model.Querying.ItemFields.RecursiveItemCount);
- options.Fields = list.ToArray();
+ int oldLen = options.Fields.Length;
+ var arr = new ItemFields[oldLen + 1];
+ options.Fields.CopyTo(arr, 0);
+ arr[oldLen] = Model.Querying.ItemFields.RecursiveItemCount;
+ options.Fields = arr;
}
if (client.IndexOf("kodi", StringComparison.OrdinalIgnoreCase) != -1 ||
@@ -146,9 +148,12 @@ namespace MediaBrowser.Api
client.IndexOf("samsung", StringComparison.OrdinalIgnoreCase) != -1 ||
client.IndexOf("androidtv", StringComparison.OrdinalIgnoreCase) != -1)
{
- var list = options.Fields.ToList();
- list.Add(Model.Querying.ItemFields.ChildCount);
- options.Fields = list.ToArray();
+
+ int oldLen = options.Fields.Length;
+ var arr = new ItemFields[oldLen + 1];
+ options.Fields.CopyTo(arr, 0);
+ arr[oldLen] = Model.Querying.ItemFields.ChildCount;
+ options.Fields = arr;
}
}
@@ -160,6 +165,7 @@ namespace MediaBrowser.Api
{
options.ImageTypeLimit = hasDtoOptions.ImageTypeLimit.Value;
}
+
if (hasDtoOptions.EnableUserData.HasValue)
{
options.EnableUserData = hasDtoOptions.EnableUserData.Value;
@@ -167,7 +173,9 @@ namespace MediaBrowser.Api
if (!string.IsNullOrWhiteSpace(hasDtoOptions.EnableImageTypes))
{
- options.ImageTypes = (hasDtoOptions.EnableImageTypes ?? string.Empty).Split(',').Where(i => !string.IsNullOrWhiteSpace(i)).Select(v => (ImageType)Enum.Parse(typeof(ImageType), v, true)).ToArray();
+ options.ImageTypes = hasDtoOptions.EnableImageTypes.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
+ .Select(v => (ImageType)Enum.Parse(typeof(ImageType), v, true))
+ .ToArray();
}
}
@@ -300,7 +308,7 @@ namespace MediaBrowser.Api
return pathInfo[index];
}
- private string[] Parse(string pathUri)
+ private static string[] Parse(string pathUri)
{
var actionParts = pathUri.Split(new[] { "://" }, StringSplitOptions.None);
@@ -322,38 +330,32 @@ namespace MediaBrowser.Api
/// </summary>
protected BaseItem GetItemByName(string name, string type, ILibraryManager libraryManager, DtoOptions dtoOptions)
{
- BaseItem item;
-
- if (type.IndexOf("Person", StringComparison.OrdinalIgnoreCase) == 0)
- {
- item = GetPerson(name, libraryManager, dtoOptions);
- }
- else if (type.IndexOf("Artist", StringComparison.OrdinalIgnoreCase) == 0)
+ if (type.Equals("Person", StringComparison.OrdinalIgnoreCase))
{
- item = GetArtist(name, libraryManager, dtoOptions);
+ return GetPerson(name, libraryManager, dtoOptions);
}
- else if (type.IndexOf("Genre", StringComparison.OrdinalIgnoreCase) == 0)
+ else if (type.Equals("Artist", StringComparison.OrdinalIgnoreCase))
{
- item = GetGenre(name, libraryManager, dtoOptions);
+ return GetArtist(name, libraryManager, dtoOptions);
}
- else if (type.IndexOf("MusicGenre", StringComparison.OrdinalIgnoreCase) == 0)
+ else if (type.Equals("Genre", StringComparison.OrdinalIgnoreCase))
{
- item = GetMusicGenre(name, libraryManager, dtoOptions);
+ return GetGenre(name, libraryManager, dtoOptions);
}
- else if (type.IndexOf("Studio", StringComparison.OrdinalIgnoreCase) == 0)
+ else if (type.Equals("MusicGenre", StringComparison.OrdinalIgnoreCase))
{
- item = GetStudio(name, libraryManager, dtoOptions);
+ return GetMusicGenre(name, libraryManager, dtoOptions);
}
- else if (type.IndexOf("Year", StringComparison.OrdinalIgnoreCase) == 0)
+ else if (type.Equals("Studio", StringComparison.OrdinalIgnoreCase))
{
- item = libraryManager.GetYear(int.Parse(name));
+ return GetStudio(name, libraryManager, dtoOptions);
}
- else
+ else if (type.Equals("Year", StringComparison.OrdinalIgnoreCase))
{
- throw new ArgumentException();
+ return libraryManager.GetYear(int.Parse(name));
}
- return item;
+ throw new ArgumentException("Invalid type", nameof(type));
}
}
}