aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-10-21 22:08:34 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-10-21 22:08:34 -0400
commitc7f559f8cefa4c4b90df3bff72290c8bd5b18e01 (patch)
tree4d26b4995e7df5d44c39d76ba58db66f1e48dbc4 /MediaBrowser.Controller
parentf8c603d5ebc28e03140df4f1b155c97b387f09a5 (diff)
make model project portable
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Entities/CollectionFolder.cs14
-rw-r--r--MediaBrowser.Controller/Entities/TV/Season.cs1
-rw-r--r--MediaBrowser.Controller/Entities/TV/Series.cs16
-rw-r--r--MediaBrowser.Controller/Entities/User.cs16
-rw-r--r--MediaBrowser.Controller/Entities/UserViewBuilder.cs2
-rw-r--r--MediaBrowser.Controller/Health/IHealthMonitor.cs12
-rw-r--r--MediaBrowser.Controller/Library/NameExtensions.cs2
-rw-r--r--MediaBrowser.Controller/MediaBrowser.Controller.csproj10
-rw-r--r--MediaBrowser.Controller/Threading/PeriodicTimer.cs72
-rw-r--r--MediaBrowser.Controller/packages.config1
10 files changed, 104 insertions, 42 deletions
diff --git a/MediaBrowser.Controller/Entities/CollectionFolder.cs b/MediaBrowser.Controller/Entities/CollectionFolder.cs
index 41e277b7c..414b2b2c3 100644
--- a/MediaBrowser.Controller/Entities/CollectionFolder.cs
+++ b/MediaBrowser.Controller/Entities/CollectionFolder.cs
@@ -11,8 +11,8 @@ using System.Threading.Tasks;
using CommonIO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Model.Configuration;
+using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.Serialization;
-using MoreLinq;
namespace MediaBrowser.Controller.Entities
{
@@ -29,7 +29,7 @@ namespace MediaBrowser.Controller.Entities
PhysicalLocationsList = new List<string>();
}
- [IgnoreDataMember]
+ [System.Runtime.Serialization.IgnoreDataMember]
protected override bool SupportsShortcutChildren
{
get
@@ -38,7 +38,7 @@ namespace MediaBrowser.Controller.Entities
}
}
- [IgnoreDataMember]
+ [System.Runtime.Serialization.IgnoreDataMember]
public override bool SupportsPlayedStatus
{
get
@@ -129,7 +129,7 @@ namespace MediaBrowser.Controller.Entities
/// Allow different display preferences for each collection folder
/// </summary>
/// <value>The display prefs id.</value>
- [IgnoreDataMember]
+ [System.Runtime.Serialization.IgnoreDataMember]
public override Guid DisplayPreferencesId
{
get
@@ -138,7 +138,7 @@ namespace MediaBrowser.Controller.Entities
}
}
- [IgnoreDataMember]
+ [System.Runtime.Serialization.IgnoreDataMember]
public override IEnumerable<string> PhysicalLocations
{
get
@@ -283,7 +283,7 @@ namespace MediaBrowser.Controller.Entities
/// Our children are actually just references to the ones in the physical root...
/// </summary>
/// <value>The actual children.</value>
- [IgnoreDataMember]
+ [System.Runtime.Serialization.IgnoreDataMember]
protected override IEnumerable<BaseItem> ActualChildren
{
get { return GetActualChildren(); }
@@ -322,7 +322,7 @@ namespace MediaBrowser.Controller.Entities
return result;
}
- [IgnoreDataMember]
+ [System.Runtime.Serialization.IgnoreDataMember]
public override bool SupportsPeople
{
get
diff --git a/MediaBrowser.Controller/Entities/TV/Season.cs b/MediaBrowser.Controller/Entities/TV/Season.cs
index ce13f5fc5..fa713c5ca 100644
--- a/MediaBrowser.Controller/Entities/TV/Season.cs
+++ b/MediaBrowser.Controller/Entities/TV/Season.cs
@@ -2,7 +2,6 @@
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Querying;
using MediaBrowser.Model.Users;
-using MoreLinq;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs
index 39703f67a..df464b52a 100644
--- a/MediaBrowser.Controller/Entities/TV/Series.cs
+++ b/MediaBrowser.Controller/Entities/TV/Series.cs
@@ -9,8 +9,8 @@ using System.Linq;
using System.Runtime.Serialization;
using System.Threading;
using System.Threading.Tasks;
+using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.Providers;
-using MoreLinq;
namespace MediaBrowser.Controller.Entities.TV
{
@@ -106,6 +106,12 @@ namespace MediaBrowser.Controller.Entities.TV
private string AddLibrariesToPresentationUniqueKey(string key)
{
+ var lang = GetPreferredMetadataLanguage();
+ if (!string.IsNullOrWhiteSpace(lang))
+ {
+ key += "-" + lang;
+ }
+
var folders = LibraryManager.GetCollectionFolders(this)
.Select(i => i.Id.ToString("N"))
.ToArray();
@@ -209,8 +215,8 @@ namespace MediaBrowser.Controller.Entities.TV
var query = new InternalItemsQuery(user)
{
AncestorWithPresentationUniqueKey = seriesKey,
- IncludeItemTypes = new[] {typeof (Season).Name},
- SortBy = new[] {ItemSortBy.SortName}
+ IncludeItemTypes = new[] { typeof(Season).Name },
+ SortBy = new[] { ItemSortBy.SortName }
};
if (!config.DisplayMissingEpisodes && !config.DisplayUnairedEpisodes)
@@ -267,8 +273,8 @@ namespace MediaBrowser.Controller.Entities.TV
var query = new InternalItemsQuery(user)
{
AncestorWithPresentationUniqueKey = seriesKey,
- IncludeItemTypes = new[] {typeof (Episode).Name, typeof (Season).Name},
- SortBy = new[] {ItemSortBy.SortName}
+ IncludeItemTypes = new[] { typeof(Episode).Name, typeof(Season).Name },
+ SortBy = new[] { ItemSortBy.SortName }
};
var config = user.Configuration;
if (!config.DisplayMissingEpisodes && !config.DisplayUnairedEpisodes)
diff --git a/MediaBrowser.Controller/Entities/User.cs b/MediaBrowser.Controller/Entities/User.cs
index 46da469fa..00320e9b7 100644
--- a/MediaBrowser.Controller/Entities/User.cs
+++ b/MediaBrowser.Controller/Entities/User.cs
@@ -42,7 +42,7 @@ namespace MediaBrowser.Controller.Entities
/// Gets or sets the path.
/// </summary>
/// <value>The path.</value>
- [IgnoreDataMember]
+ [System.Runtime.Serialization.IgnoreDataMember]
public override string Path
{
get
@@ -81,7 +81,7 @@ namespace MediaBrowser.Controller.Entities
/// If the item is a folder, it returns the folder itself
/// </summary>
/// <value>The containing folder path.</value>
- [IgnoreDataMember]
+ [System.Runtime.Serialization.IgnoreDataMember]
public override string ContainingFolderPath
{
get
@@ -94,7 +94,7 @@ namespace MediaBrowser.Controller.Entities
/// Gets a value indicating whether this instance is owned item.
/// </summary>
/// <value><c>true</c> if this instance is owned item; otherwise, <c>false</c>.</value>
- [IgnoreDataMember]
+ [System.Runtime.Serialization.IgnoreDataMember]
public override bool IsOwnedItem
{
get
@@ -107,7 +107,7 @@ namespace MediaBrowser.Controller.Entities
/// Gets the root folder.
/// </summary>
/// <value>The root folder.</value>
- [IgnoreDataMember]
+ [System.Runtime.Serialization.IgnoreDataMember]
public Folder RootFolder
{
get
@@ -129,7 +129,7 @@ namespace MediaBrowser.Controller.Entities
private volatile UserConfiguration _config;
private readonly object _configSyncLock = new object();
- [IgnoreDataMember]
+ [System.Runtime.Serialization.IgnoreDataMember]
public UserConfiguration Configuration
{
get
@@ -152,7 +152,7 @@ namespace MediaBrowser.Controller.Entities
private volatile UserPolicy _policy;
private readonly object _policySyncLock = new object();
- [IgnoreDataMember]
+ [System.Runtime.Serialization.IgnoreDataMember]
public UserPolicy Policy
{
get
@@ -232,7 +232,7 @@ namespace MediaBrowser.Controller.Entities
/// Gets the path to the user's configuration directory
/// </summary>
/// <value>The configuration directory path.</value>
- [IgnoreDataMember]
+ [System.Runtime.Serialization.IgnoreDataMember]
public string ConfigurationDirectoryPath
{
get
@@ -308,7 +308,7 @@ namespace MediaBrowser.Controller.Entities
return Configuration.GroupedFolders.Select(i => new Guid(i)).Contains(id);
}
- [IgnoreDataMember]
+ [System.Runtime.Serialization.IgnoreDataMember]
public override bool SupportsPeople
{
get
diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
index 38397572e..f813fac71 100644
--- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs
+++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
@@ -17,7 +17,7 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Configuration;
-using MoreLinq;
+using MediaBrowser.Model.Extensions;
namespace MediaBrowser.Controller.Entities
{
diff --git a/MediaBrowser.Controller/Health/IHealthMonitor.cs b/MediaBrowser.Controller/Health/IHealthMonitor.cs
deleted file mode 100644
index b8ad98fc1..000000000
--- a/MediaBrowser.Controller/Health/IHealthMonitor.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using System.Collections.Generic;
-using System.Threading;
-using System.Threading.Tasks;
-using MediaBrowser.Model.Notifications;
-
-namespace MediaBrowser.Controller.Health
-{
- public interface IHealthMonitor
- {
- Task<List<Notification>> GetNotifications(CancellationToken cancellationToken);
- }
-}
diff --git a/MediaBrowser.Controller/Library/NameExtensions.cs b/MediaBrowser.Controller/Library/NameExtensions.cs
index 72f036b0a..19d0fc772 100644
--- a/MediaBrowser.Controller/Library/NameExtensions.cs
+++ b/MediaBrowser.Controller/Library/NameExtensions.cs
@@ -1,9 +1,9 @@
using MediaBrowser.Common.Extensions;
-using MoreLinq;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
+using MediaBrowser.Model.Extensions;
namespace MediaBrowser.Controller.Library
{
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index 36d59d3e4..c14e25030 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -11,9 +11,10 @@
<AssemblyName>MediaBrowser.Controller</AssemblyName>
<FileAlignment>512</FileAlignment>
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
<ReleaseVersion>
</ReleaseVersion>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -51,9 +52,6 @@
<Reference Include="Interfaces.IO">
<HintPath>..\packages\Interfaces.IO.1.0.0.5\lib\portable-net45+sl4+wp71+win8+wpa81\Interfaces.IO.dll</HintPath>
</Reference>
- <Reference Include="MoreLinq">
- <HintPath>..\packages\morelinq.1.4.0\lib\net35\MoreLinq.dll</HintPath>
- </Reference>
<Reference Include="Patterns.Logging">
<HintPath>..\packages\Patterns.Logging.1.0.0.2\lib\portable-net45+sl4+wp71+win8+wpa81\Patterns.Logging.dll</HintPath>
</Reference>
@@ -168,7 +166,6 @@
<Compile Include="Entities\UserView.cs" />
<Compile Include="Entities\UserViewBuilder.cs" />
<Compile Include="FileOrganization\IFileOrganizationService.cs" />
- <Compile Include="Health\IHealthMonitor.cs" />
<Compile Include="IO\ThrottledStream.cs" />
<Compile Include="Library\DeleteOptions.cs" />
<Compile Include="Library\ILibraryPostScanTask.cs" />
@@ -391,6 +388,7 @@
<Compile Include="Sync\ISyncRepository.cs" />
<Compile Include="Sync\SyncedFileInfo.cs" />
<Compile Include="Sync\SyncedItemProgress.cs" />
+ <Compile Include="Threading\PeriodicTimer.cs" />
<Compile Include="TV\ITVSeriesManager.cs" />
</ItemGroup>
<ItemGroup>
diff --git a/MediaBrowser.Controller/Threading/PeriodicTimer.cs b/MediaBrowser.Controller/Threading/PeriodicTimer.cs
new file mode 100644
index 000000000..f9d19b9a1
--- /dev/null
+++ b/MediaBrowser.Controller/Threading/PeriodicTimer.cs
@@ -0,0 +1,72 @@
+using System;
+using System.Threading;
+using Microsoft.Win32;
+
+namespace MediaBrowser.Controller.Threading
+{
+ public class PeriodicTimer : IDisposable
+ {
+ public Action<object> Callback { get; set; }
+ private Timer _timer;
+ private readonly object _state;
+ private readonly object _timerLock = new object();
+ private readonly TimeSpan _period;
+
+ public PeriodicTimer(Action<object> callback, object state, TimeSpan dueTime, TimeSpan period)
+ {
+ if (callback == null)
+ {
+ throw new ArgumentNullException("callback");
+ }
+
+ Callback = callback;
+ _period = period;
+ _state = state;
+
+ StartTimer(dueTime);
+ }
+
+ void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
+ {
+ if (e.Mode == PowerModes.Resume)
+ {
+ DisposeTimer();
+ StartTimer(Timeout.InfiniteTimeSpan);
+ }
+ }
+
+ private void TimerCallback(object state)
+ {
+ Callback(state);
+ }
+
+ private void StartTimer(TimeSpan dueTime)
+ {
+ lock (_timerLock)
+ {
+ _timer = new Timer(TimerCallback, _state, dueTime, _period);
+
+ SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
+ }
+ }
+
+ private void DisposeTimer()
+ {
+ SystemEvents.PowerModeChanged -= SystemEvents_PowerModeChanged;
+
+ lock (_timerLock)
+ {
+ if (_timer != null)
+ {
+ _timer.Dispose();
+ _timer = null;
+ }
+ }
+ }
+
+ public void Dispose()
+ {
+ DisposeTimer();
+ }
+ }
+}
diff --git a/MediaBrowser.Controller/packages.config b/MediaBrowser.Controller/packages.config
index 84422d9da..08345d1c5 100644
--- a/MediaBrowser.Controller/packages.config
+++ b/MediaBrowser.Controller/packages.config
@@ -2,6 +2,5 @@
<packages>
<package id="CommonIO" version="1.0.0.9" targetFramework="net45" />
<package id="Interfaces.IO" version="1.0.0.5" targetFramework="net45" />
- <package id="morelinq" version="1.4.0" targetFramework="net45" />
<package id="Patterns.Logging" version="1.0.0.2" targetFramework="net45" />
</packages> \ No newline at end of file