diff options
| author | LukePulverenti <luke.pulverenti@gmail.com> | 2013-02-24 21:41:51 -0500 |
|---|---|---|
| committer | LukePulverenti <luke.pulverenti@gmail.com> | 2013-02-24 21:41:51 -0500 |
| commit | 2d342c02ef55e2ba8796d95888274356aaadbe5c (patch) | |
| tree | 77bd2e8c07d7d797683fbc977d6b0b56d12bd670 /MediaBrowser.Api/UserLibrary/UserLibraryService.cs | |
| parent | 1db7faad89d0a33fda96d07d85b2435e9b66c834 (diff) | |
convert playback checkins to rest
Diffstat (limited to 'MediaBrowser.Api/UserLibrary/UserLibraryService.cs')
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/UserLibraryService.cs | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs index 4267947ad..4ec2aca49 100644 --- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs +++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs @@ -3,6 +3,7 @@ using MediaBrowser.Controller; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Library; +using MediaBrowser.Model.Connectivity; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Serialization; @@ -215,6 +216,66 @@ namespace MediaBrowser.Api.UserLibrary public string Id { get; set; } } + [Route("/Users/{UserId}/PlayingItems/{Id}", "POST")] + public class OnPlaybackStart : IReturnVoid + { + /// <summary> + /// Gets or sets the user id. + /// </summary> + /// <value>The user id.</value> + public Guid UserId { get; set; } + + /// <summary> + /// Gets or sets the id. + /// </summary> + /// <value>The id.</value> + public string Id { get; set; } + } + + [Route("/Users/{UserId}/PlayingItems/{Id}/Progress", "POST")] + public class OnPlaybackProgress : IReturnVoid + { + /// <summary> + /// Gets or sets the user id. + /// </summary> + /// <value>The user id.</value> + public Guid UserId { get; set; } + + /// <summary> + /// Gets or sets the id. + /// </summary> + /// <value>The id.</value> + public string Id { get; set; } + + /// <summary> + /// Gets or sets the position ticks. + /// </summary> + /// <value>The position ticks.</value> + public long? PositionTicks { get; set; } + } + + [Route("/Users/{UserId}/PlayingItems/{Id}", "DELETE")] + public class OnPlaybackStopped : IReturnVoid + { + /// <summary> + /// Gets or sets the user id. + /// </summary> + /// <value>The user id.</value> + public Guid UserId { get; set; } + + /// <summary> + /// Gets or sets the id. + /// </summary> + /// <value>The id.</value> + public string Id { get; set; } + + /// <summary> + /// Gets or sets the position ticks. + /// </summary> + /// <value>The position ticks.</value> + public long? PositionTicks { get; set; } + } + /// <summary> /// Class GetLocalTrailers /// </summary> @@ -516,6 +577,55 @@ namespace MediaBrowser.Api.UserLibrary } /// <summary> + /// Posts the specified request. + /// </summary> + /// <param name="request">The request.</param> + public void Post(OnPlaybackStart request) + { + var kernel = (Kernel)Kernel; + + var user = kernel.GetUserById(request.UserId); + + var item = DtoBuilder.GetItemByClientId(request.Id, user.Id); + + kernel.UserDataManager.OnPlaybackStart(user, item, ClientType.Other, string.Empty); + } + + /// <summary> + /// Posts the specified request. + /// </summary> + /// <param name="request">The request.</param> + public void Post(OnPlaybackProgress request) + { + var kernel = (Kernel)Kernel; + + var user = kernel.GetUserById(request.UserId); + + var item = DtoBuilder.GetItemByClientId(request.Id, user.Id); + + var task = kernel.UserDataManager.OnPlaybackProgress(user, item, request.PositionTicks, ClientType.Other, string.Empty); + + Task.WaitAll(task); + } + + /// <summary> + /// Posts the specified request. + /// </summary> + /// <param name="request">The request.</param> + public void Post(OnPlaybackStopped request) + { + var kernel = (Kernel)Kernel; + + var user = kernel.GetUserById(request.UserId); + + var item = DtoBuilder.GetItemByClientId(request.Id, user.Id); + + var task = kernel.UserDataManager.OnPlaybackStopped(user, item, request.PositionTicks, ClientType.Other, string.Empty); + + Task.WaitAll(task); + } + + /// <summary> /// Deletes the specified request. /// </summary> /// <param name="request">The request.</param> |
