From 0a7df60207334c6fccded9371b3ca0992ad1c43c Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 21 Sep 2013 15:24:50 -0400 Subject: make marking date played up to the caller to decide --- MediaBrowser.Api/UserLibrary/UserLibraryService.cs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'MediaBrowser.Api/UserLibrary/UserLibraryService.cs') diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs index f4e9739a1..ab3e2af19 100644 --- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs +++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs @@ -184,6 +184,9 @@ namespace MediaBrowser.Api.UserLibrary [ApiMember(Name = "UserId", Description = "User Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] public Guid UserId { get; set; } + [ApiMember(Name = "DatePlayed", Description = "The date the item was played (if any)", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "POST")] + public DateTime? DatePlayed { get; set; } + /// /// Gets or sets the id. /// @@ -630,7 +633,7 @@ namespace MediaBrowser.Api.UserLibrary { var user = _userManager.GetUserById(request.UserId); - var task = UpdatePlayedStatus(user, request.Id, true); + var task = UpdatePlayedStatus(user, request.Id, true, request.DatePlayed); return ToOptimizedResult(task.Result); } @@ -703,7 +706,7 @@ namespace MediaBrowser.Api.UserLibrary { var user = _userManager.GetUserById(request.UserId); - var task = UpdatePlayedStatus(user, request.Id, false); + var task = UpdatePlayedStatus(user, request.Id, false, null); return ToOptimizedResult(task.Result); } @@ -714,12 +717,20 @@ namespace MediaBrowser.Api.UserLibrary /// The user. /// The item id. /// if set to true [was played]. + /// The date played. /// Task. - private async Task UpdatePlayedStatus(User user, string itemId, bool wasPlayed) + private async Task UpdatePlayedStatus(User user, string itemId, bool wasPlayed, DateTime? datePlayed) { var item = _dtoService.GetItemByDtoId(itemId, user.Id); - await item.SetPlayedStatus(user, wasPlayed, _userDataRepository).ConfigureAwait(false); + if (wasPlayed) + { + await item.MarkPlayed(user, datePlayed, _userDataRepository).ConfigureAwait(false); + } + else + { + await item.MarkUnplayed(user, _userDataRepository).ConfigureAwait(false); + } return _dtoService.GetUserItemDataDto(_userDataRepository.GetUserData(user.Id, item.GetUserDataKey())); } -- cgit v1.2.3