diff --git a/MediaBrowser.Api/AlbumsService.cs b/MediaBrowser.Api/AlbumsService.cs
index b8a830711a..5787ad180c 100644
--- a/MediaBrowser.Api/AlbumsService.cs
+++ b/MediaBrowser.Api/AlbumsService.cs
@@ -59,7 +59,7 @@ namespace MediaBrowser.Api
request, item => item is MusicAlbum,
GetAlbumSimilarityScore);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
diff --git a/MediaBrowser.Api/BaseApiService.cs b/MediaBrowser.Api/BaseApiService.cs
index 556f3b57d5..2dd1c77e1e 100644
--- a/MediaBrowser.Api/BaseApiService.cs
+++ b/MediaBrowser.Api/BaseApiService.cs
@@ -21,7 +21,7 @@ namespace MediaBrowser.Api
///
/// The logger.
public ILogger Logger { get; set; }
-
+
///
/// Gets or sets the HTTP result factory.
///
@@ -58,15 +58,26 @@ namespace MediaBrowser.Api
/// The cache key.
/// The last date modified.
/// Duration of the cache.
- /// The factory fn.
+ /// The factory function.
/// System.Object.
- /// cacheKey
- protected object ToOptimizedResultUsingCache(Guid cacheKey, DateTime lastDateModified, TimeSpan? cacheDuration, Func factoryFn)
- where T : class
+ protected object ToOptimizedResultUsingCache(Guid cacheKey, DateTime? lastDateModified, TimeSpan? cacheDuration, Func factoryFn)
+ where T : class
{
return ResultFactory.GetOptimizedResultUsingCache(Request, cacheKey, lastDateModified, cacheDuration, factoryFn);
}
+ ///
+ /// To the optimized serialized result using cache.
+ ///
+ ///
+ /// The result.
+ /// System.Object.
+ protected object ToOptimizedSerializedResultUsingCache(T result)
+ where T : class
+ {
+ return ResultFactory.GetOptimizedSerializedResultUsingCache(Request, result);
+ }
+
///
/// To the cached result.
///
diff --git a/MediaBrowser.Api/ConfigurationService.cs b/MediaBrowser.Api/ConfigurationService.cs
index 206d0c265f..b2a5fa7a73 100644
--- a/MediaBrowser.Api/ConfigurationService.cs
+++ b/MediaBrowser.Api/ConfigurationService.cs
@@ -99,12 +99,12 @@ namespace MediaBrowser.Api
public object Get(GetDefaultMetadataOptions request)
{
- return ToOptimizedResult(new MetadataOptions());
+ return ToOptimizedSerializedResultUsingCache(new MetadataOptions());
}
public object Get(GetMetadataPlugins request)
{
- return ToOptimizedResult(_providerManager.GetAllMetadataPlugins().ToList());
+ return ToOptimizedSerializedResultUsingCache(_providerManager.GetAllMetadataPlugins().ToList());
}
}
}
diff --git a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs b/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
index 75ef7e54e4..6a91897f2f 100644
--- a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
+++ b/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
@@ -215,7 +215,7 @@ namespace MediaBrowser.Api.DefaultTheme
.Select(i => _dtoService.GetBaseItemDto(i, fields, user))
.ToList();
- return ToOptimizedResult(view);
+ return ToOptimizedSerializedResultUsingCache(view);
}
public object Get(GetGamesView request)
@@ -268,7 +268,7 @@ namespace MediaBrowser.Api.DefaultTheme
.Take(1)
.ToList();
- return ToOptimizedResult(view);
+ return ToOptimizedSerializedResultUsingCache(view);
}
public object Get(GetTvView request)
@@ -394,7 +394,7 @@ namespace MediaBrowser.Api.DefaultTheme
.Select(i => _dtoService.GetBaseItemDto(i, fields, user))
.ToList();
- return ToOptimizedResult(view);
+ return ToOptimizedSerializedResultUsingCache(view);
}
public object Get(GetMovieView request)
@@ -569,7 +569,7 @@ namespace MediaBrowser.Api.DefaultTheme
.Select(i => _dtoService.GetBaseItemDto(i, fields, user))
.ToList();
- return ToOptimizedResult(view);
+ return ToOptimizedSerializedResultUsingCache(view);
}
private IEnumerable FilterItemsForBackdropDisplay(IEnumerable items)
diff --git a/MediaBrowser.Api/DisplayPreferencesService.cs b/MediaBrowser.Api/DisplayPreferencesService.cs
index 39b335316b..f22dc9e39e 100644
--- a/MediaBrowser.Api/DisplayPreferencesService.cs
+++ b/MediaBrowser.Api/DisplayPreferencesService.cs
@@ -88,7 +88,7 @@ namespace MediaBrowser.Api
var result = _displayPreferencesManager.GetDisplayPreferences(displayPreferencesId, request.UserId, request.Client);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
diff --git a/MediaBrowser.Api/EnvironmentService.cs b/MediaBrowser.Api/EnvironmentService.cs
index aac7085207..cb104072bd 100644
--- a/MediaBrowser.Api/EnvironmentService.cs
+++ b/MediaBrowser.Api/EnvironmentService.cs
@@ -135,10 +135,10 @@ namespace MediaBrowser.Api
if (path.StartsWith(networkPrefix, StringComparison.OrdinalIgnoreCase) && path.LastIndexOf(UncSeparator) == 1)
{
- return ToOptimizedResult(GetNetworkShares(path).OrderBy(i => i.Path).ToList());
+ return ToOptimizedSerializedResultUsingCache(GetNetworkShares(path).OrderBy(i => i.Path).ToList());
}
- return ToOptimizedResult(GetFileSystemEntries(request).OrderBy(i => i.Path).ToList());
+ return ToOptimizedSerializedResultUsingCache(GetFileSystemEntries(request).OrderBy(i => i.Path).ToList());
}
public object Get(GetNetworkShares request)
@@ -147,7 +147,7 @@ namespace MediaBrowser.Api
var shares = GetNetworkShares(path).OrderBy(i => i.Path).ToList();
- return ToOptimizedResult(shares);
+ return ToOptimizedSerializedResultUsingCache(shares);
}
///
@@ -159,7 +159,7 @@ namespace MediaBrowser.Api
{
var result = GetDrives().ToList();
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
@@ -189,7 +189,7 @@ namespace MediaBrowser.Api
.OrderBy(i => i.Path)
.ToList();
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
diff --git a/MediaBrowser.Api/GamesService.cs b/MediaBrowser.Api/GamesService.cs
index ef4fed3d36..d3b7cbe41b 100644
--- a/MediaBrowser.Api/GamesService.cs
+++ b/MediaBrowser.Api/GamesService.cs
@@ -113,7 +113,7 @@ namespace MediaBrowser.Api
.Select(i => GetSummary(i, user))
.ToList();
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
@@ -134,7 +134,7 @@ namespace MediaBrowser.Api
})
.ToList();
- return ToOptimizedResult(lookup);
+ return ToOptimizedSerializedResultUsingCache(lookup);
}
///
@@ -182,7 +182,7 @@ namespace MediaBrowser.Api
request, item => item is Game,
SimilarItemsHelper.GetSimiliarityScore);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
}
}
diff --git a/MediaBrowser.Api/Images/ImageService.cs b/MediaBrowser.Api/Images/ImageService.cs
index 728ceeea96..514e856550 100644
--- a/MediaBrowser.Api/Images/ImageService.cs
+++ b/MediaBrowser.Api/Images/ImageService.cs
@@ -361,14 +361,14 @@ namespace MediaBrowser.Api.Images
var result = GetItemImageInfos(item);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public object Get(GetItemByNameImageInfos request)
{
var result = GetItemByNameImageInfos(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
diff --git a/MediaBrowser.Api/Images/RemoteImageService.cs b/MediaBrowser.Api/Images/RemoteImageService.cs
index 37bf0c1cae..deba146e8c 100644
--- a/MediaBrowser.Api/Images/RemoteImageService.cs
+++ b/MediaBrowser.Api/Images/RemoteImageService.cs
@@ -176,7 +176,7 @@ namespace MediaBrowser.Api.Images
var result = GetImageProviders(item);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public object Get(GetItemByNameRemoteImageProviders request)
@@ -188,7 +188,7 @@ namespace MediaBrowser.Api.Images
var result = GetImageProviders(item);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
private List GetImageProviders(BaseItem item)
@@ -202,7 +202,7 @@ namespace MediaBrowser.Api.Images
var result = GetRemoteImageResult(item, request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public object Get(GetItemByNameRemoteImages request)
diff --git a/MediaBrowser.Api/InstantMixService.cs b/MediaBrowser.Api/InstantMixService.cs
index c11f38123d..624137677c 100644
--- a/MediaBrowser.Api/InstantMixService.cs
+++ b/MediaBrowser.Api/InstantMixService.cs
@@ -57,7 +57,7 @@ namespace MediaBrowser.Api
var result = GetInstantMixResult(request, item.Genres);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public object Get(GetInstantMixFromAlbum request)
@@ -73,7 +73,7 @@ namespace MediaBrowser.Api
var result = GetInstantMixResult(request, genres);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public object Get(GetInstantMixFromMusicGenre request)
@@ -82,7 +82,7 @@ namespace MediaBrowser.Api
var result = GetInstantMixResult(request, new[] { genre.Name });
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public object Get(GetInstantMixFromArtist request)
@@ -99,7 +99,7 @@ namespace MediaBrowser.Api
var result = GetInstantMixResult(request, genres);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
private ItemsResult GetInstantMixResult(BaseGetSimilarItems request, IEnumerable genres)
diff --git a/MediaBrowser.Api/Library/FileOrganizationService.cs b/MediaBrowser.Api/Library/FileOrganizationService.cs
index 44fad6a859..01531a7ae6 100644
--- a/MediaBrowser.Api/Library/FileOrganizationService.cs
+++ b/MediaBrowser.Api/Library/FileOrganizationService.cs
@@ -95,7 +95,7 @@ namespace MediaBrowser.Api.Library
StartIndex = request.StartIndex
});
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public void Delete(DeleteOriginalFile request)
diff --git a/MediaBrowser.Api/Library/LibraryService.cs b/MediaBrowser.Api/Library/LibraryService.cs
index f3d5824da2..79b2651d5a 100644
--- a/MediaBrowser.Api/Library/LibraryService.cs
+++ b/MediaBrowser.Api/Library/LibraryService.cs
@@ -77,7 +77,7 @@ namespace MediaBrowser.Api.Library
{
try
{
- return c.ResolveArgs.PhysicalLocations;
+ return c.PhysicalLocations;
}
catch (Exception ex)
{
@@ -90,7 +90,7 @@ namespace MediaBrowser.Api.Library
})
.ToList();
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
diff --git a/MediaBrowser.Api/Library/LibraryStructureService.cs b/MediaBrowser.Api/Library/LibraryStructureService.cs
index 8ea472da30..f08d79c0db 100644
--- a/MediaBrowser.Api/Library/LibraryStructureService.cs
+++ b/MediaBrowser.Api/Library/LibraryStructureService.cs
@@ -251,7 +251,7 @@ namespace MediaBrowser.Api.Library
{
var result = _libraryManager.GetDefaultVirtualFolders().OrderBy(i => i.Name).ToList();
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
else
{
@@ -259,7 +259,7 @@ namespace MediaBrowser.Api.Library
var result = _libraryManager.GetVirtualFolders(user).OrderBy(i => i.Name).ToList();
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
}
diff --git a/MediaBrowser.Api/LibraryService.cs b/MediaBrowser.Api/LibraryService.cs
index d9442b63d5..584bbf9a1a 100644
--- a/MediaBrowser.Api/LibraryService.cs
+++ b/MediaBrowser.Api/LibraryService.cs
@@ -284,7 +284,7 @@ namespace MediaBrowser.Api
{
var result = GetAncestors(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
@@ -337,7 +337,7 @@ namespace MediaBrowser.Api
try
{
return i.LocationType == LocationType.FileSystem &&
- i.ResolveArgs.PhysicalLocations.Contains(item.Path);
+ i.PhysicalLocations.Contains(item.Path);
}
catch (Exception ex)
{
@@ -360,7 +360,7 @@ namespace MediaBrowser.Api
{
var result = GetCriticReviews(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
@@ -405,7 +405,7 @@ namespace MediaBrowser.Api
UniqueTypes = items.Select(i => i.GetClientTypeName()).Distinct().ToList()
};
- return ToOptimizedResult(counts);
+ return ToOptimizedSerializedResultUsingCache(counts);
}
private IEnumerable FilterItems(IEnumerable items, GetItemCounts request, Guid userId)
@@ -552,7 +552,7 @@ namespace MediaBrowser.Api
});
- return ToOptimizedResult(new AllThemeMediaResult
+ return ToOptimizedSerializedResultUsingCache(new AllThemeMediaResult
{
ThemeSongsResult = themeSongs,
ThemeVideosResult = themeVideos,
@@ -570,7 +570,7 @@ namespace MediaBrowser.Api
{
var result = GetThemeSongs(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
private ThemeMediaResult GetThemeSongs(GetThemeSongs request)
@@ -638,7 +638,7 @@ namespace MediaBrowser.Api
{
var result = GetThemeVideos(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public ThemeMediaResult GetThemeVideos(GetThemeVideos request)
@@ -748,7 +748,7 @@ namespace MediaBrowser.Api
})
.ToList();
- return ToOptimizedResult(lookup);
+ return ToOptimizedSerializedResultUsingCache(lookup);
}
public ThemeMediaResult GetSoundtrackSongs(string id, Guid? userId, bool inheritFromParent)
diff --git a/MediaBrowser.Api/LiveTv/LiveTvService.cs b/MediaBrowser.Api/LiveTv/LiveTvService.cs
index 9d827226c9..569e4b52b9 100644
--- a/MediaBrowser.Api/LiveTv/LiveTvService.cs
+++ b/MediaBrowser.Api/LiveTv/LiveTvService.cs
@@ -304,7 +304,7 @@ namespace MediaBrowser.Api.LiveTv
{
var info = _liveTvManager.GetLiveTvInfo(CancellationToken.None).Result;
- return ToOptimizedResult(info);
+ return ToOptimizedSerializedResultUsingCache(info);
}
public object Get(GetChannels request)
@@ -318,7 +318,7 @@ namespace MediaBrowser.Api.LiveTv
}, CancellationToken.None).Result;
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public object Get(GetChannel request)
@@ -327,7 +327,7 @@ namespace MediaBrowser.Api.LiveTv
var result = _liveTvManager.GetChannel(request.Id, CancellationToken.None, user).Result;
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public object Get(GetPrograms request)
@@ -360,7 +360,7 @@ namespace MediaBrowser.Api.LiveTv
var result = _liveTvManager.GetPrograms(query, CancellationToken.None).Result;
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public object Get(GetRecommendedPrograms request)
@@ -375,7 +375,7 @@ namespace MediaBrowser.Api.LiveTv
var result = _liveTvManager.GetRecommendedPrograms(query, CancellationToken.None).Result;
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public object Post(GetPrograms request)
@@ -398,7 +398,7 @@ namespace MediaBrowser.Api.LiveTv
}, CancellationToken.None).Result;
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public object Get(GetRecording request)
@@ -407,14 +407,14 @@ namespace MediaBrowser.Api.LiveTv
var result = _liveTvManager.GetRecording(request.Id, CancellationToken.None, user).Result;
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public object Get(GetTimer request)
{
var result = _liveTvManager.GetTimer(request.Id, CancellationToken.None).Result;
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public object Get(GetTimers request)
@@ -426,7 +426,7 @@ namespace MediaBrowser.Api.LiveTv
}, CancellationToken.None).Result;
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public void Delete(DeleteRecording request)
@@ -465,14 +465,14 @@ namespace MediaBrowser.Api.LiveTv
}, CancellationToken.None).Result;
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public object Get(GetSeriesTimer request)
{
var result = _liveTvManager.GetSeriesTimer(request.Id, CancellationToken.None).Result;
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public void Delete(CancelSeriesTimer request)
@@ -499,13 +499,13 @@ namespace MediaBrowser.Api.LiveTv
{
var result = _liveTvManager.GetNewTimerDefaults(CancellationToken.None).Result;
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
else
{
var result = _liveTvManager.GetNewTimerDefaults(request.ProgramId, CancellationToken.None).Result;
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
}
@@ -515,7 +515,7 @@ namespace MediaBrowser.Api.LiveTv
var result = _liveTvManager.GetProgram(request.Id, CancellationToken.None, user).Result;
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public void Post(CreateSeriesTimer request)
@@ -544,7 +544,7 @@ namespace MediaBrowser.Api.LiveTv
}, CancellationToken.None).Result;
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public object Get(GetRecordingGroup request)
@@ -556,7 +556,7 @@ namespace MediaBrowser.Api.LiveTv
var group = result.Items.FirstOrDefault(i => string.Equals(i.Id, request.Id, StringComparison.OrdinalIgnoreCase));
- return ToOptimizedResult(group);
+ return ToOptimizedSerializedResultUsingCache(group);
}
public object Get(GetGuideInfo request)
diff --git a/MediaBrowser.Api/LocalizationService.cs b/MediaBrowser.Api/LocalizationService.cs
index 54ac8591ea..b3f6cbd976 100644
--- a/MediaBrowser.Api/LocalizationService.cs
+++ b/MediaBrowser.Api/LocalizationService.cs
@@ -62,7 +62,7 @@ namespace MediaBrowser.Api
{
var result = _localization.GetParentalRatings().ToList();
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
@@ -74,7 +74,7 @@ namespace MediaBrowser.Api
{
var result = _localization.GetCountries().ToList();
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
@@ -86,7 +86,7 @@ namespace MediaBrowser.Api
{
var result = _localization.GetCultures().ToList();
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
}
diff --git a/MediaBrowser.Api/MoviesService.cs b/MediaBrowser.Api/MoviesService.cs
index 1b36ec8915..2a99bca8b0 100644
--- a/MediaBrowser.Api/MoviesService.cs
+++ b/MediaBrowser.Api/MoviesService.cs
@@ -76,7 +76,7 @@ namespace MediaBrowser.Api
request, item => item is Movie || (item is Trailer && request.IncludeTrailers),
SimilarItemsHelper.GetSimiliarityScore);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
}
}
diff --git a/MediaBrowser.Api/NewsService.cs b/MediaBrowser.Api/NewsService.cs
index efafc9d3f3..99a4d4fa7e 100644
--- a/MediaBrowser.Api/NewsService.cs
+++ b/MediaBrowser.Api/NewsService.cs
@@ -42,7 +42,7 @@ namespace MediaBrowser.Api
});
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
}
}
diff --git a/MediaBrowser.Api/PluginService.cs b/MediaBrowser.Api/PluginService.cs
index de9c89666c..e66f432df8 100644
--- a/MediaBrowser.Api/PluginService.cs
+++ b/MediaBrowser.Api/PluginService.cs
@@ -166,7 +166,7 @@ namespace MediaBrowser.Api
{
var result = _appHost.Plugins.OrderBy(p => p.Name).Select(p => p.GetPluginInfo()).ToList();
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
@@ -199,7 +199,7 @@ namespace MediaBrowser.Api
LegacyKey = _securityManager.LegacyKey
};
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
diff --git a/MediaBrowser.Api/SearchService.cs b/MediaBrowser.Api/SearchService.cs
index 8626709a3b..330d7c46f3 100644
--- a/MediaBrowser.Api/SearchService.cs
+++ b/MediaBrowser.Api/SearchService.cs
@@ -110,7 +110,7 @@ namespace MediaBrowser.Api
{
var result = GetSearchHintsAsync(request).Result;
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
diff --git a/MediaBrowser.Api/TrailersService.cs b/MediaBrowser.Api/TrailersService.cs
index 7d137646cc..ca465b5e32 100644
--- a/MediaBrowser.Api/TrailersService.cs
+++ b/MediaBrowser.Api/TrailersService.cs
@@ -69,7 +69,7 @@ namespace MediaBrowser.Api
request, item => item is Movie || item is Trailer,
SimilarItemsHelper.GetSimiliarityScore);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
}
}
diff --git a/MediaBrowser.Api/TvShowsService.cs b/MediaBrowser.Api/TvShowsService.cs
index 9521f82cce..629f9b2333 100644
--- a/MediaBrowser.Api/TvShowsService.cs
+++ b/MediaBrowser.Api/TvShowsService.cs
@@ -183,7 +183,7 @@ namespace MediaBrowser.Api
request, item => item is Series,
SimilarItemsHelper.GetSimiliarityScore);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
@@ -210,7 +210,7 @@ namespace MediaBrowser.Api
Items = returnItems
};
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
public IEnumerable GetNextUpEpisodes(GetNextUpEpisodes request)
diff --git a/MediaBrowser.Api/UserLibrary/GameGenresService.cs b/MediaBrowser.Api/UserLibrary/GameGenresService.cs
index 79ee27df62..d282ee091d 100644
--- a/MediaBrowser.Api/UserLibrary/GameGenresService.cs
+++ b/MediaBrowser.Api/UserLibrary/GameGenresService.cs
@@ -57,7 +57,7 @@ namespace MediaBrowser.Api.UserLibrary
{
var result = GetItem(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
@@ -91,7 +91,7 @@ namespace MediaBrowser.Api.UserLibrary
{
var result = GetResult(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
diff --git a/MediaBrowser.Api/UserLibrary/GenresService.cs b/MediaBrowser.Api/UserLibrary/GenresService.cs
index ded9544f8e..092c638822 100644
--- a/MediaBrowser.Api/UserLibrary/GenresService.cs
+++ b/MediaBrowser.Api/UserLibrary/GenresService.cs
@@ -62,7 +62,7 @@ namespace MediaBrowser.Api.UserLibrary
{
var result = GetItem(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
@@ -96,7 +96,7 @@ namespace MediaBrowser.Api.UserLibrary
{
var result = GetResult(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs
index 16243ba6bb..101a379ea7 100644
--- a/MediaBrowser.Api/UserLibrary/ItemsService.cs
+++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs
@@ -268,7 +268,7 @@ namespace MediaBrowser.Api.UserLibrary
{
var result = GetItems(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
diff --git a/MediaBrowser.Api/UserLibrary/MusicGenresService.cs b/MediaBrowser.Api/UserLibrary/MusicGenresService.cs
index 945ac5a670..3f960ccbe9 100644
--- a/MediaBrowser.Api/UserLibrary/MusicGenresService.cs
+++ b/MediaBrowser.Api/UserLibrary/MusicGenresService.cs
@@ -57,7 +57,7 @@ namespace MediaBrowser.Api.UserLibrary
{
var result = GetItem(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
@@ -91,7 +91,7 @@ namespace MediaBrowser.Api.UserLibrary
{
var result = GetResult(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
diff --git a/MediaBrowser.Api/UserLibrary/PersonsService.cs b/MediaBrowser.Api/UserLibrary/PersonsService.cs
index 03e710ae81..32700d21ab 100644
--- a/MediaBrowser.Api/UserLibrary/PersonsService.cs
+++ b/MediaBrowser.Api/UserLibrary/PersonsService.cs
@@ -74,7 +74,7 @@ namespace MediaBrowser.Api.UserLibrary
{
var result = GetItem(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
@@ -108,7 +108,7 @@ namespace MediaBrowser.Api.UserLibrary
{
var result = GetResult(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
diff --git a/MediaBrowser.Api/UserLibrary/StudiosService.cs b/MediaBrowser.Api/UserLibrary/StudiosService.cs
index 8b1eeec0f8..cf4e333e1b 100644
--- a/MediaBrowser.Api/UserLibrary/StudiosService.cs
+++ b/MediaBrowser.Api/UserLibrary/StudiosService.cs
@@ -62,7 +62,7 @@ namespace MediaBrowser.Api.UserLibrary
{
var result = GetItem(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
@@ -96,7 +96,7 @@ namespace MediaBrowser.Api.UserLibrary
{
var result = GetResult(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
index d3995ae2b2..c2abc6ad11 100644
--- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
+++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Controller.Dto;
+using MediaBrowser.Common.Extensions;
+using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;
@@ -7,6 +8,7 @@ using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Querying;
+using MediaBrowser.Model.Serialization;
using ServiceStack;
using System;
using System.Collections.Generic;
@@ -411,7 +413,7 @@ namespace MediaBrowser.Api.UserLibrary
{
var result = GetAsync(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
private List GetAsync(GetSpecialFeatures request)
@@ -477,7 +479,7 @@ namespace MediaBrowser.Api.UserLibrary
{
var result = GetAsync(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
private List GetAsync(GetLocalTrailers request)
@@ -521,7 +523,7 @@ namespace MediaBrowser.Api.UserLibrary
var result = _dtoService.GetBaseItemDto(item, fields, user);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
@@ -540,7 +542,7 @@ namespace MediaBrowser.Api.UserLibrary
var result = _dtoService.GetBaseItemDto(item, fields, user);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
@@ -570,7 +572,7 @@ namespace MediaBrowser.Api.UserLibrary
TotalRecordCount = dtos.Length
};
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
diff --git a/MediaBrowser.Api/UserLibrary/YearsService.cs b/MediaBrowser.Api/UserLibrary/YearsService.cs
index 3c54d5b369..7024d52563 100644
--- a/MediaBrowser.Api/UserLibrary/YearsService.cs
+++ b/MediaBrowser.Api/UserLibrary/YearsService.cs
@@ -62,7 +62,7 @@ namespace MediaBrowser.Api.UserLibrary
{
var result = GetItem(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
@@ -96,7 +96,7 @@ namespace MediaBrowser.Api.UserLibrary
{
var result = GetResult(request);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
diff --git a/MediaBrowser.Api/UserService.cs b/MediaBrowser.Api/UserService.cs
index 254fa6ff1e..80260c83cb 100644
--- a/MediaBrowser.Api/UserService.cs
+++ b/MediaBrowser.Api/UserService.cs
@@ -225,7 +225,7 @@ namespace MediaBrowser.Api
.Select(_dtoService.GetUserDto)
.ToList();
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
@@ -244,7 +244,7 @@ namespace MediaBrowser.Api
var result = _dtoService.GetUserDto(user);
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
///
diff --git a/MediaBrowser.Api/VideosService.cs b/MediaBrowser.Api/VideosService.cs
index d67c290229..fb58e58b7b 100644
--- a/MediaBrowser.Api/VideosService.cs
+++ b/MediaBrowser.Api/VideosService.cs
@@ -69,7 +69,7 @@ namespace MediaBrowser.Api
TotalRecordCount = items.Length
};
- return ToOptimizedResult(result);
+ return ToOptimizedSerializedResultUsingCache(result);
}
}
}
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index 5a041860bb..650a9bad09 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -253,6 +253,15 @@ namespace MediaBrowser.Controller.Entities
}
}
+ [IgnoreDataMember]
+ public IEnumerable PhysicalLocations
+ {
+ get
+ {
+ return ResolveArgs.PhysicalLocations;
+ }
+ }
+
///
/// Resets the resolve args.
///
diff --git a/MediaBrowser.Controller/Entities/CollectionFolder.cs b/MediaBrowser.Controller/Entities/CollectionFolder.cs
index 0d6bed90b9..6220bc4d51 100644
--- a/MediaBrowser.Controller/Entities/CollectionFolder.cs
+++ b/MediaBrowser.Controller/Entities/CollectionFolder.cs
@@ -84,7 +84,7 @@ namespace MediaBrowser.Controller.Entities
try
{
- locationsDicionary = ResolveArgs.PhysicalLocations.ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
+ locationsDicionary = PhysicalLocations.ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
}
catch (IOException ex)
{
@@ -116,7 +116,7 @@ namespace MediaBrowser.Controller.Entities
try
{
- locationsDicionary = ResolveArgs.PhysicalLocations.ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
+ locationsDicionary = PhysicalLocations.ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
}
catch (IOException ex)
{
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index 94db048647..02da2fe618 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -1079,7 +1079,7 @@ namespace MediaBrowser.Controller.Entities
if (i.LocationType != LocationType.Remote)
{
- if (i.ResolveArgs.PhysicalLocations.Contains(path, StringComparer.OrdinalIgnoreCase))
+ if (i.PhysicalLocations.Contains(path, StringComparer.OrdinalIgnoreCase))
{
return true;
}
diff --git a/MediaBrowser.Controller/Net/IHttpResultFactory.cs b/MediaBrowser.Controller/Net/IHttpResultFactory.cs
index 0614db12e6..b7dff96cd9 100644
--- a/MediaBrowser.Controller/Net/IHttpResultFactory.cs
+++ b/MediaBrowser.Controller/Net/IHttpResultFactory.cs
@@ -50,7 +50,7 @@ namespace MediaBrowser.Controller.Net
/// The factory function that creates the response object.
/// The response headers.
/// System.Object.
- object GetOptimizedResultUsingCache(IRequest requestContext, Guid cacheKey, DateTime lastDateModified, TimeSpan? cacheDuration, Func factoryFn, IDictionary responseHeaders = null)
+ object GetOptimizedResultUsingCache(IRequest requestContext, Guid cacheKey, DateTime? lastDateModified, TimeSpan? cacheDuration, Func factoryFn, IDictionary responseHeaders = null)
where T : class;
///
@@ -65,7 +65,7 @@ namespace MediaBrowser.Controller.Net
/// Type of the content.
/// The response headers.
/// System.Object.
- object GetCachedResult(IRequest requestContext, Guid cacheKey, DateTime lastDateModified, TimeSpan? cacheDuration, Func factoryFn, string contentType, IDictionary responseHeaders = null)
+ object GetCachedResult(IRequest requestContext, Guid cacheKey, DateTime? lastDateModified, TimeSpan? cacheDuration, Func factoryFn, string contentType, IDictionary responseHeaders = null)
where T : class;
///
@@ -94,5 +94,15 @@ namespace MediaBrowser.Controller.Net
/// if set to true [is head request].
/// System.Object.
object GetStaticFileResult(IRequest requestContext, string path, FileShare fileShare = FileShare.Read, IDictionary responseHeaders = null, bool isHeadRequest = false);
+
+ ///
+ /// Gets the optimized serialized result using cache.
+ ///
+ ///
+ /// The request.
+ /// The result.
+ /// System.Object.
+ object GetOptimizedSerializedResultUsingCache(IRequest request, T result)
+ where T : class;
}
}
diff --git a/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs b/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs
index 2d0fed02d1..e4701a1161 100644
--- a/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs
+++ b/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs
@@ -1,12 +1,10 @@
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Configuration;
-using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Localization;
using MediaBrowser.Controller.Providers;
-using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
using MediaBrowser.Providers.Manager;
@@ -48,9 +46,9 @@ namespace MediaBrowser.Providers.BoxSets
return _libraryManager.UpdateItem(item, reason, cancellationToken);
}
- protected override ItemUpdateType AfterMetadataRefresh(BoxSet item)
+ protected override ItemUpdateType BeforeSave(BoxSet item)
{
- var updateType = base.AfterMetadataRefresh(item);
+ var updateType = base.BeforeSave(item);
if (!item.LockedFields.Contains(MetadataFields.OfficialRating))
{
diff --git a/MediaBrowser.Providers/CollectionFolderImageProvider.cs b/MediaBrowser.Providers/CollectionFolderImageProvider.cs
index 12f13262d1..e4ea36dd12 100644
--- a/MediaBrowser.Providers/CollectionFolderImageProvider.cs
+++ b/MediaBrowser.Providers/CollectionFolderImageProvider.cs
@@ -31,14 +31,14 @@ namespace MediaBrowser.Providers
protected override FileSystemInfo GetImage(BaseItem item, ItemResolveArgs args, string filenameWithoutExtension)
{
- return item.ResolveArgs.PhysicalLocations
+ return item.PhysicalLocations
.Select(i => GetImageFromLocation(i, filenameWithoutExtension))
.FirstOrDefault(i => i != null);
}
protected override Guid GetFileSystemStamp(IEnumerable items)
{
- var files = items.SelectMany(i => i.ResolveArgs.PhysicalLocations)
+ var files = items.SelectMany(i => i.PhysicalLocations)
.Select(i => new DirectoryInfo(i))
.SelectMany(i => i.EnumerateFiles("*", SearchOption.TopDirectoryOnly))
.Where(i =>
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index 349a4de97c..da82dcb3fb 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -100,8 +100,6 @@ namespace MediaBrowser.Providers.Manager
refreshResult.SetDateLastMetadataRefresh(DateTime.UtcNow);
refreshResult.AddImageProvidersRefreshed(result.Providers);
}
-
- updateType = updateType | AfterMetadataRefresh(itemOfType);
}
// Next run remote image providers, but only if local image providers didn't throw an exception
@@ -120,6 +118,8 @@ namespace MediaBrowser.Providers.Manager
}
}
+ updateType = updateType | BeforeSave(itemOfType);
+
var providersHadChanges = updateType > ItemUpdateType.Unspecified;
if (refreshOptions.ForceSave || providersHadChanges)
@@ -148,15 +148,6 @@ namespace MediaBrowser.Providers.Manager
_defaultOptions;
}
- ///
- /// Afters the metadata refresh.
- ///
- /// The item.
- protected virtual ItemUpdateType AfterMetadataRefresh(TItemType item)
- {
- return ItemUpdateType.Unspecified;
- }
-
///
/// Befores the metadata refresh.
///
@@ -167,6 +158,16 @@ namespace MediaBrowser.Providers.Manager
return ItemUpdateType.Unspecified;
}
+ ///
+ /// Befores the save.
+ ///
+ /// The item.
+ /// ItemUpdateType.
+ protected virtual ItemUpdateType BeforeSave(TItemType item)
+ {
+ return ItemUpdateType.Unspecified;
+ }
+
///
/// Gets the providers.
///
diff --git a/MediaBrowser.Providers/Music/AlbumMetadataService.cs b/MediaBrowser.Providers/Music/AlbumMetadataService.cs
index 8b9ebdc702..024e44cad2 100644
--- a/MediaBrowser.Providers/Music/AlbumMetadataService.cs
+++ b/MediaBrowser.Providers/Music/AlbumMetadataService.cs
@@ -47,9 +47,9 @@ namespace MediaBrowser.Providers.Music
return _libraryManager.UpdateItem(item, reason, cancellationToken);
}
- protected override ItemUpdateType AfterMetadataRefresh(MusicAlbum item)
+ protected override ItemUpdateType BeforeSave(MusicAlbum item)
{
- var updateType = base.AfterMetadataRefresh(item);
+ var updateType = base.BeforeSave(item);
var songs = item.RecursiveChildren.OfType
private string _seasonZeroDisplayName;
+ private bool _wizardCompleted;
///
/// Records the configuration values.
///
@@ -278,6 +279,7 @@ namespace MediaBrowser.Server.Implementations.Library
{
_seasonZeroDisplayName = configuration.SeasonZeroDisplayName;
_itemsByNamePath = ConfigurationManager.ApplicationPaths.ItemsByNamePath;
+ _wizardCompleted = configuration.IsStartupWizardCompleted;
}
///
@@ -298,6 +300,7 @@ namespace MediaBrowser.Server.Implementations.Library
var newSeasonZeroName = ConfigurationManager.Configuration.SeasonZeroDisplayName;
var seasonZeroNameChanged = !string.Equals(_seasonZeroDisplayName, newSeasonZeroName, StringComparison.CurrentCulture);
+ var wizardChanged = config.IsStartupWizardCompleted != _wizardCompleted;
RecordConfigurationValues(config);
@@ -308,7 +311,7 @@ namespace MediaBrowser.Server.Implementations.Library
await UpdateSeasonZeroNames(newSeasonZeroName, CancellationToken.None).ConfigureAwait(false);
}
- if (seasonZeroNameChanged || ibnPathChanged)
+ if (seasonZeroNameChanged || ibnPathChanged || wizardChanged)
{
_taskManager.CancelIfRunningAndQueue();
}
@@ -1479,7 +1482,7 @@ namespace MediaBrowser.Server.Implementations.Library
try
{
- return i.ResolveArgs.PhysicalLocations.Contains(item.Path);
+ return i.PhysicalLocations.Contains(item.Path);
}
catch (IOException ex)
{
diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs
index 88a928795a..323a636740 100644
--- a/MediaBrowser.ServerApplication/ApplicationHost.cs
+++ b/MediaBrowser.ServerApplication/ApplicationHost.cs
@@ -250,7 +250,7 @@ namespace MediaBrowser.ServerApplication
{
await base.RegisterResources(progress).ConfigureAwait(false);
- RegisterSingleInstance(new HttpResultFactory(LogManager, FileSystemManager));
+ RegisterSingleInstance(new HttpResultFactory(LogManager, FileSystemManager, JsonSerializer));
RegisterSingleInstance(this);
RegisterSingleInstance(ApplicationPaths);