aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.ServerApplication
diff options
context:
space:
mode:
authorLukePulverenti <luke.pulverenti@gmail.com>2013-02-28 14:32:41 -0500
committerLukePulverenti <luke.pulverenti@gmail.com>2013-02-28 14:32:41 -0500
commitaf7aa597c35279e286ee88641854db69744e7b15 (patch)
tree09cddf891558aed82f62bd5802fd9ff9ab21f116 /MediaBrowser.ServerApplication
parent4435e83e696c9172b2dcb8a5d48d866f767a421c (diff)
referenced core plugins, fixed some dashboard issues, extracted library manager
Diffstat (limited to 'MediaBrowser.ServerApplication')
-rw-r--r--MediaBrowser.ServerApplication/ApplicationHost.cs26
-rw-r--r--MediaBrowser.ServerApplication/LibraryExplorer.xaml.cs9
-rw-r--r--MediaBrowser.ServerApplication/MainWindow.xaml.cs9
-rw-r--r--MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj16
4 files changed, 31 insertions, 29 deletions
diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs
index 5ba0485ed..d97f4b53f 100644
--- a/MediaBrowser.ServerApplication/ApplicationHost.cs
+++ b/MediaBrowser.ServerApplication/ApplicationHost.cs
@@ -1,14 +1,12 @@
-using BDInfo;
+using MediaBrowser.Api;
using MediaBrowser.ClickOnce;
using MediaBrowser.Common.Implementations;
-using MediaBrowser.Common.Implementations.HttpClientManager;
using MediaBrowser.Common.Implementations.HttpServer;
using MediaBrowser.Common.Implementations.Logging;
using MediaBrowser.Common.Implementations.NetworkManagement;
using MediaBrowser.Common.Implementations.ScheduledTasks;
using MediaBrowser.Common.Implementations.Serialization;
using MediaBrowser.Common.Implementations.ServerManager;
-using MediaBrowser.Common.Implementations.Udp;
using MediaBrowser.Common.IO;
using MediaBrowser.Common.Kernel;
using MediaBrowser.Common.Net;
@@ -23,11 +21,12 @@ using MediaBrowser.Model.Serialization;
using MediaBrowser.Model.System;
using MediaBrowser.Model.Updates;
using MediaBrowser.Server.Implementations;
+using MediaBrowser.Server.Implementations.BdInfo;
using MediaBrowser.Server.Implementations.Library;
using MediaBrowser.ServerApplication.Implementations;
+using MediaBrowser.WebDashboard.Api;
using System;
using System.Collections.Generic;
-using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
@@ -120,7 +119,6 @@ namespace MediaBrowser.ServerApplication
RegisterSingleInstance<IApplicationHost>(this);
- RegisterSingleInstance<IUserManager>(new UserManager(Kernel, Logger));
RegisterSingleInstance(ServerApplicationPaths);
RegisterSingleInstance<IIsoManager>(new PismoIsoManager(Logger));
@@ -129,6 +127,11 @@ namespace MediaBrowser.ServerApplication
RegisterSingleInstance(_jsonSerializer);
RegisterSingleInstance(_xmlSerializer);
RegisterSingleInstance(ServerFactory.CreateServer(this, ProtobufSerializer, Logger, "Media Browser", "index.html"), false);
+
+ var userManager = new UserManager(Kernel, Logger);
+ RegisterSingleInstance<IUserManager>(userManager);
+
+ RegisterSingleInstance<ILibraryManager>(new LibraryManager(Kernel, Logger, taskManager, userManager));
}
/// <summary>
@@ -186,16 +189,11 @@ namespace MediaBrowser.ServerApplication
yield return pluginAssembly;
}
- var runningDirectory = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName);
- var corePluginDirectory = Path.Combine(runningDirectory, "CorePlugins");
+ // Include composable parts in the Api assembly
+ yield return typeof(ApiService).Assembly;
- // This will prevent the .dll file from getting locked, and allow us to replace it when needed
- foreach (var pluginAssembly in Directory
- .EnumerateFiles(corePluginDirectory, "*.dll", SearchOption.TopDirectoryOnly)
- .Select(LoadAssembly).Where(a => a != null))
- {
- yield return pluginAssembly;
- }
+ // Include composable parts in the Dashboard assembly
+ yield return typeof(DashboardInfo).Assembly;
// Include composable parts in the Model assembly
yield return typeof(SystemInfo).Assembly;
diff --git a/MediaBrowser.ServerApplication/LibraryExplorer.xaml.cs b/MediaBrowser.ServerApplication/LibraryExplorer.xaml.cs
index b88b64988..2c07effde 100644
--- a/MediaBrowser.ServerApplication/LibraryExplorer.xaml.cs
+++ b/MediaBrowser.ServerApplication/LibraryExplorer.xaml.cs
@@ -31,7 +31,8 @@ namespace MediaBrowser.ServerApplication
private readonly ILogger _logger;
private readonly IJsonSerializer _jsonSerializer;
-
+ private readonly ILibraryManager _libraryManager;
+
/// <summary>
/// The current user
/// </summary>
@@ -39,7 +40,7 @@ namespace MediaBrowser.ServerApplication
/// <summary>
/// Initializes a new instance of the <see cref="LibraryExplorer" /> class.
/// </summary>
- public LibraryExplorer(IJsonSerializer jsonSerializer, ILogger logger, IApplicationHost appHost, IUserManager userManager)
+ public LibraryExplorer(IJsonSerializer jsonSerializer, ILogger logger, IApplicationHost appHost, IUserManager userManager, ILibraryManager libraryManager)
{
_logger = logger;
_jsonSerializer = jsonSerializer;
@@ -51,6 +52,8 @@ namespace MediaBrowser.ServerApplication
ddlProfile.Items.Insert(0,new User {Name = "Physical"});
ddlProfile.SelectedIndex = 0;
ddlIndexBy.Visibility = ddlSortBy.Visibility = lblIndexBy.Visibility = lblSortBy.Visibility = Visibility.Hidden;
+
+ _libraryManager = libraryManager;
}
/// <summary>
@@ -77,7 +80,7 @@ namespace MediaBrowser.ServerApplication
await Task.Run(() =>
{
IEnumerable<BaseItem> children;
- children = CurrentUser.Name == "Physical" ? Kernel.Instance.RootFolder.Children.OrderBy(i => i.SortName) : Kernel.Instance.RootFolder.GetChildren(CurrentUser, sortBy: LocalizedStrings.Instance.GetString("NameDispPref"));
+ children = CurrentUser.Name == "Physical" ? _libraryManager.RootFolder.Children.OrderBy(i => i.SortName) : _libraryManager.RootFolder.GetChildren(CurrentUser, sortBy: LocalizedStrings.Instance.GetString("NameDispPref"));
foreach (Folder folder in children)
{
diff --git a/MediaBrowser.ServerApplication/MainWindow.xaml.cs b/MediaBrowser.ServerApplication/MainWindow.xaml.cs
index dbb3c9842..4904eb0f7 100644
--- a/MediaBrowser.ServerApplication/MainWindow.xaml.cs
+++ b/MediaBrowser.ServerApplication/MainWindow.xaml.cs
@@ -54,6 +54,8 @@ namespace MediaBrowser.ServerApplication
/// The _log manager
/// </summary>
private readonly ILogManager _logManager;
+
+ private readonly ILibraryManager _libraryManager;
/// <summary>
/// Initializes a new instance of the <see cref="MainWindow" /> class.
@@ -62,7 +64,7 @@ namespace MediaBrowser.ServerApplication
/// <param name="logger">The logger.</param>
/// <param name="appHost">The app host.</param>
/// <exception cref="System.ArgumentNullException">logger</exception>
- public MainWindow(ILogManager logManager, IApplicationHost appHost)
+ public MainWindow(ILogManager logManager, IApplicationHost appHost, ILibraryManager libraryManager)
{
if (logManager == null)
{
@@ -72,6 +74,7 @@ namespace MediaBrowser.ServerApplication
_logger = logManager.GetLogger("MainWindow");
_appHost = appHost;
_logManager = logManager;
+ _libraryManager = libraryManager;
InitializeComponent();
@@ -231,8 +234,8 @@ namespace MediaBrowser.ServerApplication
/// <param name="e">The e.</param>
void KernelReloadCompleted(object sender, EventArgs e)
{
- Kernel.Instance.LibraryManager.LibraryChanged -= Instance_LibraryChanged;
- Kernel.Instance.LibraryManager.LibraryChanged += Instance_LibraryChanged;
+ _libraryManager.LibraryChanged -= Instance_LibraryChanged;
+ _libraryManager.LibraryChanged += Instance_LibraryChanged;
if (_appHost.IsFirstRun)
{
diff --git a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
index 30f956502..230b26fa7 100644
--- a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
+++ b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
@@ -254,9 +254,9 @@
</None>
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\BDInfo\BDInfo.csproj">
- <Project>{07b509c0-0c28-4f3f-8963-5263281f7e3d}</Project>
- <Name>BDInfo</Name>
+ <ProjectReference Include="..\MediaBrowser.Api\MediaBrowser.Api.csproj">
+ <Project>{4fd51ac5-2c16-4308-a993-c3a84f3b4582}</Project>
+ <Name>MediaBrowser.Api</Name>
</ProjectReference>
<ProjectReference Include="..\MediaBrowser.ClickOnce\MediaBrowser.ClickOnce.csproj">
<Project>{cc96bf3e-0bda-4809-bc4b-bb6d418f4a84}</Project>
@@ -286,6 +286,10 @@
<Project>{2e781478-814d-4a48-9d80-bff206441a65}</Project>
<Name>MediaBrowser.Server.Implementations</Name>
</ProjectReference>
+ <ProjectReference Include="..\MediaBrowser.WebDashboard\MediaBrowser.WebDashboard.csproj">
+ <Project>{5624b7b5-b5a7-41d8-9f10-cc5611109619}</Project>
+ <Name>MediaBrowser.WebDashboard</Name>
+ </ProjectReference>
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\Images\icon.ico" />
@@ -364,12 +368,6 @@
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
- <Content Include="CorePlugins\MediaBrowser.Api.dll">
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </Content>
- <Content Include="CorePlugins\MediaBrowser.WebDashboard.dll">
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- </Content>
<Content Include="x64\SQLite.Interop.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>