aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Controller/Kernel.cs18
-rw-r--r--MediaBrowser.Server.Implementations/Library/DisplayPreferencesManager.cs14
-rw-r--r--MediaBrowser.ServerApplication/ApplicationHost.cs33
3 files changed, 43 insertions, 22 deletions
diff --git a/MediaBrowser.Controller/Kernel.cs b/MediaBrowser.Controller/Kernel.cs
index 51d347caf..36ebcd802 100644
--- a/MediaBrowser.Controller/Kernel.cs
+++ b/MediaBrowser.Controller/Kernel.cs
@@ -89,12 +89,6 @@ namespace MediaBrowser.Controller
public IUserRepository UserRepository { get; set; }
/// <summary>
- /// Gets the active user repository
- /// </summary>
- /// <value>The display preferences repository.</value>
- public IDisplayPreferencesRepository DisplayPreferencesRepository { get; set; }
-
- /// <summary>
/// Gets the list of available item repositories
/// </summary>
/// <value>The item repositories.</value>
@@ -107,12 +101,6 @@ namespace MediaBrowser.Controller
public IItemRepository ItemRepository { get; set; }
/// <summary>
- /// Gets the list of available DisplayPreferencesRepositories
- /// </summary>
- /// <value>The display preferences repositories.</value>
- public IEnumerable<IDisplayPreferencesRepository> DisplayPreferencesRepositories { get; set; }
-
- /// <summary>
/// Gets the list of available item repositories
/// </summary>
/// <value>The user data repositories.</value>
@@ -155,11 +143,7 @@ namespace MediaBrowser.Controller
UserDataRepository = GetRepository(UserDataRepositories, configurationManager.Configuration.UserDataRepository);
var userDataRepoTask = UserDataRepository.Initialize();
- // Get the current display preferences repository
- DisplayPreferencesRepository = GetRepository(DisplayPreferencesRepositories, configurationManager.Configuration.DisplayPreferencesRepository);
- var displayPreferencesRepoTask = DisplayPreferencesRepository.Initialize();
-
- return Task.WhenAll(itemRepoTask, userRepoTask, userDataRepoTask, displayPreferencesRepoTask);
+ return Task.WhenAll(itemRepoTask, userRepoTask, userDataRepoTask);
}
/// <summary>
diff --git a/MediaBrowser.Server.Implementations/Library/DisplayPreferencesManager.cs b/MediaBrowser.Server.Implementations/Library/DisplayPreferencesManager.cs
index a8e51a75b..57a9c9d78 100644
--- a/MediaBrowser.Server.Implementations/Library/DisplayPreferencesManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/DisplayPreferencesManager.cs
@@ -1,5 +1,5 @@
-using MediaBrowser.Controller;
-using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Persistence;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
using System;
@@ -25,6 +25,12 @@ namespace MediaBrowser.Server.Implementations.Library
private readonly ConcurrentDictionary<Guid, Task<DisplayPreferences>> _displayPreferences = new ConcurrentDictionary<Guid, Task<DisplayPreferences>>();
/// <summary>
+ /// Gets the active user repository
+ /// </summary>
+ /// <value>The display preferences repository.</value>
+ public IDisplayPreferencesRepository Repository { get; set; }
+
+ /// <summary>
/// Initializes a new instance of the <see cref="DisplayPreferencesManager"/> class.
/// </summary>
/// <param name="logger">The logger.</param>
@@ -50,7 +56,7 @@ namespace MediaBrowser.Server.Implementations.Library
/// <returns>DisplayPreferences.</returns>
private async Task<DisplayPreferences> RetrieveDisplayPreferences(Guid displayPreferencesId)
{
- var displayPreferences = await Kernel.Instance.DisplayPreferencesRepository.GetDisplayPreferences(displayPreferencesId).ConfigureAwait(false);
+ var displayPreferences = await Repository.GetDisplayPreferences(displayPreferencesId).ConfigureAwait(false);
return displayPreferences ?? new DisplayPreferences { Id = displayPreferencesId };
}
@@ -74,7 +80,7 @@ namespace MediaBrowser.Server.Implementations.Library
try
{
- await Kernel.Instance.DisplayPreferencesRepository.SaveDisplayPreferences(displayPreferences,
+ await Repository.SaveDisplayPreferences(displayPreferences,
cancellationToken).ConfigureAwait(false);
var newValue = Task.FromResult(displayPreferences);
diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs
index c782eac18..7fef4935d 100644
--- a/MediaBrowser.ServerApplication/ApplicationHost.cs
+++ b/MediaBrowser.ServerApplication/ApplicationHost.cs
@@ -220,6 +220,7 @@ namespace MediaBrowser.ServerApplication
RegisterSingleInstance<ILibrarySearchEngine>(() => new LuceneSearchEngine());
+ await ConfigureRepositories().ConfigureAwait(false);
SetKernelProperties();
SetStaticProperties();
}
@@ -235,7 +236,6 @@ namespace MediaBrowser.ServerApplication
Parallel.Invoke(
() => ServerKernel.UserDataRepositories = GetExports<IUserDataRepository>(),
() => ServerKernel.UserRepositories = GetExports<IUserRepository>(),
- () => ServerKernel.DisplayPreferencesRepositories = GetExports<IDisplayPreferencesRepository>(),
() => ServerKernel.ItemRepositories = GetExports<IItemRepository>(),
() => ServerKernel.WeatherProviders = GetExports<IWeatherProvider>(),
() => ServerKernel.ImageEnhancers = GetExports<IImageEnhancer>().OrderBy(e => e.Priority).ToArray(),
@@ -244,6 +244,21 @@ namespace MediaBrowser.ServerApplication
}
/// <summary>
+ /// Configures the repositories.
+ /// </summary>
+ /// <returns>Task.</returns>
+ private async Task ConfigureRepositories()
+ {
+ var displayPreferencesRepositories = GetExports<IDisplayPreferencesRepository>();
+
+ var repo = GetRepository(displayPreferencesRepositories, ServerConfigurationManager.Configuration.DisplayPreferencesRepository);
+
+ await repo.Initialize().ConfigureAwait(false);
+
+ ((DisplayPreferencesManager)DisplayPreferencesManager).Repository = repo;
+ }
+
+ /// <summary>
/// Dirty hacks
/// </summary>
private void SetStaticProperties()
@@ -456,5 +471,21 @@ namespace MediaBrowser.ServerApplication
process.WaitForExit();
}
}
+
+ /// <summary>
+ /// Gets the repository.
+ /// </summary>
+ /// <typeparam name="T"></typeparam>
+ /// <param name="repositories">The repositories.</param>
+ /// <param name="name">The name.</param>
+ /// <returns>``0.</returns>
+ private T GetRepository<T>(IEnumerable<T> repositories, string name)
+ where T : class, IRepository
+ {
+ var enumerable = repositories as T[] ?? repositories.ToArray();
+
+ return enumerable.FirstOrDefault(r => string.Equals(r.Name, name, StringComparison.OrdinalIgnoreCase)) ??
+ enumerable.FirstOrDefault();
+ }
}
}