aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
diff options
context:
space:
mode:
authorTim Hobbs <jesus.tesh@gmail.com>2014-03-13 06:36:39 -0700
committerTim Hobbs <jesus.tesh@gmail.com>2014-03-13 06:36:39 -0700
commit9976857e785d7e76807e02798480a063f9f3defa (patch)
tree0335c9e5ffabc49fd88150b297860af4fe04a0d6 /MediaBrowser.Api/UserLibrary/UserLibraryService.cs
parenta402d3ea9232799b136b0dc8e9936ebfb286b7f5 (diff)
parentb7bcc2450694105de9f9fc8cc07d2cfc4d9d7c96 (diff)
Merge remote-tracking branch 'upstream/master' into ribbons
Diffstat (limited to 'MediaBrowser.Api/UserLibrary/UserLibraryService.cs')
-rw-r--r--MediaBrowser.Api/UserLibrary/UserLibraryService.cs42
1 files changed, 37 insertions, 5 deletions
diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
index c2abc6ad1..e026aec03 100644
--- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
+++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
@@ -680,18 +680,34 @@ namespace MediaBrowser.Api.UserLibrary
/// <param name="request">The request.</param>
public object Post(MarkPlayedItem request)
{
+ var result = MarkPlayed(request).Result;
+
+ return ToOptimizedResult(result);
+ }
+
+ private async Task<UserItemDataDto> MarkPlayed(MarkPlayedItem request)
+ {
var user = _userManager.GetUserById(request.UserId);
DateTime? datePlayed = null;
-
+
if (!string.IsNullOrEmpty(request.DatePlayed))
{
datePlayed = DateTime.ParseExact(request.DatePlayed, "yyyyMMddHHmmss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
}
- var task = UpdatePlayedStatus(user, request.Id, true, datePlayed);
+ var session = GetSession();
+
+ var dto = await UpdatePlayedStatus(user, request.Id, true, datePlayed).ConfigureAwait(false);
- return ToOptimizedResult(task.Result);
+ foreach (var additionalUserInfo in session.AdditionalUsers)
+ {
+ var additionalUser = _userManager.GetUserById(new Guid(additionalUserInfo.UserId));
+
+ await UpdatePlayedStatus(additionalUser, request.Id, true, datePlayed).ConfigureAwait(false);
+ }
+
+ return dto;
}
private SessionInfo GetSession()
@@ -780,11 +796,27 @@ namespace MediaBrowser.Api.UserLibrary
/// <param name="request">The request.</param>
public object Delete(MarkUnplayedItem request)
{
+ var task = MarkUnplayed(request);
+
+ return ToOptimizedResult(task.Result);
+ }
+
+ private async Task<UserItemDataDto> MarkUnplayed(MarkUnplayedItem request)
+ {
var user = _userManager.GetUserById(request.UserId);
- var task = UpdatePlayedStatus(user, request.Id, false, null);
+ var session = GetSession();
+
+ var dto = await UpdatePlayedStatus(user, request.Id, false, null).ConfigureAwait(false);
- return ToOptimizedResult(task.Result);
+ foreach (var additionalUserInfo in session.AdditionalUsers)
+ {
+ var additionalUser = _userManager.GetUserById(new Guid(additionalUserInfo.UserId));
+
+ await UpdatePlayedStatus(additionalUser, request.Id, false, null).ConfigureAwait(false);
+ }
+
+ return dto;
}
/// <summary>