diff options
Diffstat (limited to 'MediaBrowser.Api/ApiService.cs')
| -rw-r--r-- | MediaBrowser.Api/ApiService.cs | 46 |
1 files changed, 31 insertions, 15 deletions
diff --git a/MediaBrowser.Api/ApiService.cs b/MediaBrowser.Api/ApiService.cs index e90755f5f..8c30f688e 100644 --- a/MediaBrowser.Api/ApiService.cs +++ b/MediaBrowser.Api/ApiService.cs @@ -58,7 +58,12 @@ namespace MediaBrowser.Api dto.BackdropCount = item.BackdropImagePaths == null ? 0 : item.BackdropImagePaths.Count();
dto.DateCreated = item.DateCreated;
dto.DisplayMediaType = item.DisplayMediaType;
- dto.Genres = item.Genres;
+
+ if (item.Genres != null)
+ {
+ dto.Genres = item.Genres.ToArray();
+ }
+
dto.HasArt = !string.IsNullOrEmpty(item.ArtImagePath);
dto.HasBanner = !string.IsNullOrEmpty(item.BannerImagePath);
dto.HasLogo = !string.IsNullOrEmpty(item.LogoImagePath);
@@ -102,7 +107,12 @@ namespace MediaBrowser.Api dto.ProviderIds = item.ProviderIds;
dto.RunTimeTicks = item.RunTimeTicks;
dto.SortName = item.SortName;
- dto.Taglines = item.Taglines;
+
+ if (item.Taglines != null)
+ {
+ dto.Taglines = item.Taglines.ToArray();
+ }
+
dto.TrailerUrl = item.TrailerUrl;
dto.Type = item.GetType().Name;
dto.UserRating = item.UserRating;
@@ -143,10 +153,18 @@ namespace MediaBrowser.Api Width = video.Width,
Codec = video.Codec,
VideoType = video.VideoType,
- AudioStreams = video.AudioStreams,
- Subtitles = video.Subtitles,
ScanType = video.ScanType
};
+
+ if (video.AudioStreams != null)
+ {
+ dto.VideoInfo.AudioStreams = video.AudioStreams.ToArray();
+ }
+
+ if (video.Subtitles != null)
+ {
+ dto.VideoInfo.Subtitles = video.Subtitles.ToArray();
+ }
}
}
@@ -155,23 +173,21 @@ namespace MediaBrowser.Api // Attach Studios by transforming them into BaseItemStudio (DTO)
if (item.Studios != null)
{
- IEnumerable<Studio> entities = await Task.WhenAll<Studio>(item.Studios.Select(c => Kernel.Instance.ItemController.GetStudio(c))).ConfigureAwait(false);
+ Studio[] entities = await Task.WhenAll<Studio>(item.Studios.Select(c => Kernel.Instance.ItemController.GetStudio(c))).ConfigureAwait(false);
- dto.Studios = item.Studios.Select(s =>
+ dto.Studios = new BaseItemStudio[entities.Length];
+
+ for (int i = 0; i < entities.Length; i++)
{
+ Studio entity = entities[i];
BaseItemStudio baseItemStudio = new BaseItemStudio();
- baseItemStudio.Name = s;
-
- Studio ibnObject = entities.First(i => i.Name.Equals(s, StringComparison.OrdinalIgnoreCase));
+ baseItemStudio.Name = entity.Name;
- if (ibnObject != null)
- {
- baseItemStudio.HasImage = !string.IsNullOrEmpty(ibnObject.PrimaryImagePath);
- }
+ baseItemStudio.HasImage = !string.IsNullOrEmpty(entity.PrimaryImagePath);
- return baseItemStudio;
- }).ToArray();
+ dto.Studios[i] = baseItemStudio;
+ }
}
}
|
