aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.ServerApplication
diff options
context:
space:
mode:
authorEric Reed <ebr@mediabrowser3.com>2013-03-11 11:03:41 -0400
committerEric Reed <ebr@mediabrowser3.com>2013-03-11 11:03:41 -0400
commit6470c62c5048dd22caff3a2f4cb296e7e0e5937a (patch)
treea566b28ca659291da99bdded88b4b366cc2572e1 /MediaBrowser.ServerApplication
parent889bd32e9e798fe816f4ae1d0051e755c30eac5e (diff)
parent39020714f75b1bd1fe41355d4e9dadc9620ed8a1 (diff)
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
Diffstat (limited to 'MediaBrowser.ServerApplication')
-rw-r--r--MediaBrowser.ServerApplication/ApplicationHost.cs51
-rw-r--r--MediaBrowser.ServerApplication/LibraryExplorer.xaml.cs63
-rw-r--r--MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj5
-rw-r--r--MediaBrowser.ServerApplication/MediaBrowser.ServerApplication_TemporaryKey.pfxbin1676 -> 0 bytes
4 files changed, 86 insertions, 33 deletions
diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs
index c822aae84..d5a505792 100644
--- a/MediaBrowser.ServerApplication/ApplicationHost.cs
+++ b/MediaBrowser.ServerApplication/ApplicationHost.cs
@@ -18,6 +18,7 @@ using MediaBrowser.Controller.Persistence;
using MediaBrowser.Controller.Plugins;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Controller.Resolvers;
+using MediaBrowser.Controller.Sorting;
using MediaBrowser.Controller.Updates;
using MediaBrowser.Controller.Weather;
using MediaBrowser.IsoMounter;
@@ -126,23 +127,21 @@ namespace MediaBrowser.ServerApplication
/// </summary>
/// <value>The HTTP server.</value>
private IHttpServer HttpServer { get; set; }
-
+
/// <summary>
- /// Inits this instance.
+ /// Runs the startup tasks.
/// </summary>
/// <returns>Task.</returns>
- public override async Task Init()
+ protected override async Task RunStartupTasks()
{
- await base.Init().ConfigureAwait(false);
+ // Do these before allowing the base method to run, which will invoke startup scheduled tasks
+ await ServerKernel.LoadRepositories(ServerConfigurationManager).ConfigureAwait(false);
- Task.Run(async () =>
- {
- await ServerKernel.LoadRepositories(ServerConfigurationManager).ConfigureAwait(false);
+ await base.RunStartupTasks().ConfigureAwait(false);
- DirectoryWatchers.Start();
+ DirectoryWatchers.Start();
- Parallel.ForEach(GetExports<IServerEntryPoint>(), entryPoint => entryPoint.Run());
- });
+ Parallel.ForEach(GetExports<IServerEntryPoint>(), entryPoint => entryPoint.Run());
}
/// <summary>
@@ -205,13 +204,15 @@ namespace MediaBrowser.ServerApplication
ServerKernel.FFMpegManager = new FFMpegManager(ServerKernel, ZipClient, JsonSerializer, ProtobufSerializer, LogManager, ApplicationPaths);
ServerKernel.ImageManager = new ImageManager(ServerKernel, ProtobufSerializer, LogManager.GetLogger("ImageManager"), ApplicationPaths);
- 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();
- ServerKernel.StringFiles = GetExports<LocalizedStringData>();
+ 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(),
+ () => ServerKernel.StringFiles = GetExports<LocalizedStringData>()
+ );
}
/// <summary>
@@ -237,14 +238,20 @@ namespace MediaBrowser.ServerApplication
{
base.FindParts();
- HttpServer.Init(GetExports<IRestfulService>(false));
+ Parallel.Invoke(
+
+ () =>
+ {
+ HttpServer.Init(GetExports<IRestfulService>(false));
- ServerManager.AddWebSocketListeners(GetExports<IWebSocketListener>(false));
- ServerManager.Start();
+ ServerManager.AddWebSocketListeners(GetExports<IWebSocketListener>(false));
+ ServerManager.Start();
+ },
- LibraryManager.AddParts(GetExports<IResolverIgnoreRule>(), GetExports<IVirtualFolderCreator>(), GetExports<IItemResolver>(), GetExports<IIntroProvider>());
+ () => LibraryManager.AddParts(GetExports<IResolverIgnoreRule>(), GetExports<IVirtualFolderCreator>(), GetExports<IItemResolver>(), GetExports<IIntroProvider>(), GetExports<IBaseItemComparer>()),
- ProviderManager.AddMetadataProviders(GetExports<BaseMetadataProvider>().OrderBy(e => e.Priority).ToArray());
+ () => ProviderManager.AddMetadataProviders(GetExports<BaseMetadataProvider>().OrderBy(e => e.Priority).ToArray())
+ );
}
/// <summary>
diff --git a/MediaBrowser.ServerApplication/LibraryExplorer.xaml.cs b/MediaBrowser.ServerApplication/LibraryExplorer.xaml.cs
index d567a9fd8..1968bbc7d 100644
--- a/MediaBrowser.ServerApplication/LibraryExplorer.xaml.cs
+++ b/MediaBrowser.ServerApplication/LibraryExplorer.xaml.cs
@@ -4,8 +4,10 @@ using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Localization;
+using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
+using MediaBrowser.Model.Querying;
using MediaBrowser.Model.Serialization;
using System;
using System.Collections.Generic;
@@ -78,7 +80,8 @@ namespace MediaBrowser.ServerApplication
Cursor = Cursors.Wait;
await Task.Run(() =>
{
- IEnumerable<BaseItem> children = CurrentUser.Name == "Physical" ? _libraryManager.RootFolder.Children.OrderBy(i => i.SortName) : _libraryManager.RootFolder.GetChildren(CurrentUser, sortBy: LocalizedStrings.Instance.GetString("NameDispPref"));
+ IEnumerable<BaseItem> children = CurrentUser.Name == "Physical" ? _libraryManager.RootFolder.Children : _libraryManager.RootFolder.GetChildren(CurrentUser);
+ children = OrderByName(children, CurrentUser);
foreach (Folder folder in children)
{
@@ -86,9 +89,12 @@ namespace MediaBrowser.ServerApplication
var currentFolder = folder;
Task.Factory.StartNew(() =>
{
- var prefs = ddlProfile.SelectedItem != null ? currentFolder.GetDisplayPrefs(ddlProfile.SelectedItem as User, false) ?? new DisplayPreferences {SortBy = LocalizedStrings.Instance.GetString("NameDispPref")} : new DisplayPreferences {SortBy = LocalizedStrings.Instance.GetString("NameDispPref")};
+ var prefs = ddlProfile.SelectedItem != null ? currentFolder.GetDisplayPrefs(ddlProfile.SelectedItem as User, false) ?? new DisplayPreferences {SortBy = ItemSortBy.SortName} : new DisplayPreferences {SortBy = ItemSortBy.SortName};
var node = new TreeViewItem { Tag = currentFolder };
- AddChildren(node, currentFolder.GetChildren(CurrentUser, prefs.IndexBy, prefs.SortBy ?? LocalizedStrings.Instance.GetString("NameDispPref")), CurrentUser);
+
+ var subChildren = currentFolder.GetChildren(CurrentUser, prefs.IndexBy);
+ subChildren = OrderByName(subChildren, CurrentUser);
+ AddChildren(node, subChildren, CurrentUser);
node.Header = currentFolder.Name + " (" +
node.Items.Count + ")";
tvwLibrary.Items.Add(node);
@@ -101,6 +107,28 @@ namespace MediaBrowser.ServerApplication
}
/// <summary>
+ /// Orders the name of the by.
+ /// </summary>
+ /// <param name="items">The items.</param>
+ /// <param name="user">The user.</param>
+ /// <returns>IEnumerable{BaseItem}.</returns>
+ private IEnumerable<BaseItem> OrderByName(IEnumerable<BaseItem> items, User user)
+ {
+ return OrderBy(items, user, ItemSortBy.SortName);
+ }
+
+ /// <summary>
+ /// Orders the name of the by.
+ /// </summary>
+ /// <param name="items">The items.</param>
+ /// <param name="user">The user.</param>
+ /// <returns>IEnumerable{BaseItem}.</returns>
+ private IEnumerable<BaseItem> OrderBy(IEnumerable<BaseItem> items, User user, string order)
+ {
+ return _libraryManager.Sort(items, user, new[] { order }, SortOrder.Ascending);
+ }
+
+ /// <summary>
/// Adds the children.
/// </summary>
/// <param name="parent">The parent.</param>
@@ -115,7 +143,7 @@ namespace MediaBrowser.ServerApplication
if (subFolder != null)
{
var prefs = subFolder.GetDisplayPrefs(user, false) ?? new DisplayPreferences {SortBy = LocalizedStrings.Instance.GetString("NameDispPref")};
- AddChildren(node, subFolder.GetChildren(user, sortBy: prefs.SortBy), user);
+ AddChildren(node, OrderBy(subFolder.GetChildren(user), user, prefs.SortBy), user);
node.Header = item.Name + " (" + node.Items.Count + ")";
}
else
@@ -152,14 +180,29 @@ namespace MediaBrowser.ServerApplication
{
lblIndexBy.Visibility = ddlIndexBy.Visibility = ddlSortBy.Visibility = lblSortBy.Visibility = Visibility.Visible;
ddlIndexBy.ItemsSource = folder.IndexByOptionStrings;
- ddlSortBy.ItemsSource = folder.SortByOptionStrings;
+
+ ddlSortBy.ItemsSource = new []
+ {
+ ItemSortBy.SortName,
+ ItemSortBy.Album,
+ ItemSortBy.AlbumArtist,
+ ItemSortBy.Artist,
+ ItemSortBy.CommunityRating,
+ ItemSortBy.DateCreated,
+ ItemSortBy.DatePlayed,
+ ItemSortBy.PremiereDate,
+ ItemSortBy.ProductionYear,
+ ItemSortBy.Random,
+ ItemSortBy.Runtime
+ };
+
var prefs = folder.GetDisplayPrefs(ddlProfile.SelectedItem as User, false);
ddlIndexBy.SelectedItem = prefs != null
? prefs.IndexBy ?? LocalizedStrings.Instance.GetString("NoneDispPref")
: LocalizedStrings.Instance.GetString("NoneDispPref");
ddlSortBy.SelectedItem = prefs != null
- ? prefs.SortBy ?? LocalizedStrings.Instance.GetString("NameDispPref")
- : LocalizedStrings.Instance.GetString("NameDispPref");
+ ? prefs.SortBy ?? ItemSortBy.SortName
+ : ItemSortBy.SortName;
}
else
{
@@ -311,7 +354,7 @@ namespace MediaBrowser.ServerApplication
var folder = treeItem != null
? treeItem.Tag as Folder
: null;
- var prefs = folder != null ? folder.GetDisplayPrefs(CurrentUser, true) : new DisplayPreferences {SortBy = LocalizedStrings.Instance.GetString("NameDispPref")};
+ var prefs = folder != null ? folder.GetDisplayPrefs(CurrentUser, true) : new DisplayPreferences {SortBy = ItemSortBy.SortName};
if (folder != null && prefs.IndexBy != ddlIndexBy.SelectedItem as string)
{
//grab UI context so we can update within the below task
@@ -326,7 +369,7 @@ namespace MediaBrowser.ServerApplication
//re-build the current item's children as an index
prefs.IndexBy = ddlIndexBy.SelectedItem as string;
treeItem.Items.Clear();
- AddChildren(treeItem,folder.GetChildren(CurrentUser, prefs.IndexBy, prefs.SortBy), CurrentUser);
+ AddChildren(treeItem, OrderBy(folder.GetChildren(CurrentUser, prefs.IndexBy), CurrentUser, prefs.SortBy), CurrentUser);
treeItem.Header = folder.Name + "(" +
treeItem.Items.Count + ")";
Cursor = Cursors.Arrow;
@@ -367,7 +410,7 @@ namespace MediaBrowser.ServerApplication
//re-sort
prefs.SortBy = ddlSortBy.SelectedItem as string;
treeItem.Items.Clear();
- AddChildren(treeItem,folder.GetChildren(CurrentUser,prefs.IndexBy, prefs.SortBy ?? LocalizedStrings.Instance.GetString("NameDispPref")), CurrentUser);
+ AddChildren(treeItem, OrderBy(folder.GetChildren(CurrentUser, prefs.IndexBy), CurrentUser, prefs.SortBy ?? ItemSortBy.SortName), CurrentUser);
treeItem.Header = folder.Name + "(" +
treeItem.Items.Count + ")";
Cursor = Cursors.Arrow;
diff --git a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
index ec3137d83..88ef97950 100644
--- a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
+++ b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
@@ -76,7 +76,7 @@
</ManifestKeyFile>
</PropertyGroup>
<PropertyGroup>
- <GenerateManifests>true</GenerateManifests>
+ <GenerateManifests>false</GenerateManifests>
</PropertyGroup>
<PropertyGroup>
<SignManifests>false</SignManifests>
@@ -112,6 +112,9 @@
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
+ <PropertyGroup>
+ <TargetZone>LocalIntranet</TargetZone>
+ </PropertyGroup>
<ItemGroup>
<Reference Include="Hardcodet.Wpf.TaskbarNotification">
<HintPath>..\packages\Hardcodet.Wpf.TaskbarNotification.1.0.4.0\lib\net40\Hardcodet.Wpf.TaskbarNotification.dll</HintPath>
diff --git a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication_TemporaryKey.pfx b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication_TemporaryKey.pfx
deleted file mode 100644
index 64676b054..000000000
--- a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication_TemporaryKey.pfx
+++ /dev/null
Binary files differ