/// <summary> /// Updates the played status. /// </summary> /// <param name="user">The user.</param> /// <param name="itemId">The item id.</param> /// <param name="wasPlayed">if set to <c>true</c> [was played].</param> /// <returns>Task.</returns> private async Task <UserItemDataDto> UpdatePlayedStatus(User user, string itemId, bool wasPlayed) { var item = DtoBuilder.GetItemByClientId(itemId, _userManager, _libraryManager, user.Id); await item.SetPlayedStatus(user, wasPlayed, _userDataRepository).ConfigureAwait(false); return(DtoBuilder.GetUserItemDataDto(_userDataRepository.GetUserData(user.Id, item.GetUserDataKey()))); }
/// <summary> /// Marks the like. /// </summary> /// <param name="userId">The user id.</param> /// <param name="type">The type.</param> /// <param name="name">The name.</param> /// <param name="likes">if set to <c>true</c> [likes].</param> /// <returns>Task.</returns> protected async Task <UserItemDataDto> MarkLike(Guid userId, string type, string name, bool?likes) { var item = await GetItemByName(name, type, LibraryManager).ConfigureAwait(false); var key = item.GetUserDataKey(); // Get the user data for this item var data = UserDataRepository.GetUserData(userId, key); data.Likes = likes; await UserDataRepository.SaveUserData(userId, key, data, CancellationToken.None).ConfigureAwait(false); data = UserDataRepository.GetUserData(userId, key); return(DtoBuilder.GetUserItemDataDto(data)); }
private async Task <UserItemDataDto> UpdateUserItemRating(Guid userId, string itemId, bool?likes) { var user = _userManager.GetUserById(userId); var item = string.IsNullOrEmpty(itemId) ? user.RootFolder : DtoBuilder.GetItemByClientId(itemId, _userManager, _libraryManager, user.Id); var key = item.GetUserDataKey(); // Get the user data for this item var data = _userDataRepository.GetUserData(user.Id, key); data.Likes = likes; await _userDataRepository.SaveUserData(user.Id, key, data, CancellationToken.None).ConfigureAwait(false); data = _userDataRepository.GetUserData(user.Id, key); return(DtoBuilder.GetUserItemDataDto(data)); }
/// <summary> /// Posts the specified request. /// </summary> /// <param name="request">The request.</param> public object Post(UpdateUserItemRating request) { var user = _userManager.GetUserById(request.UserId); var item = string.IsNullOrEmpty(request.Id) ? user.RootFolder : DtoBuilder.GetItemByClientId(request.Id, _userManager, _libraryManager, user.Id); var key = item.GetUserDataKey(); // Get the user data for this item var data = _userDataRepository.GetUserData(user.Id, key); data.Likes = request.Likes; var task = _userDataRepository.SaveUserData(user.Id, key, data, CancellationToken.None); Task.WaitAll(task); data = _userDataRepository.GetUserData(user.Id, key); var dto = DtoBuilder.GetUserItemDataDto(data); return(ToOptimizedResult(dto)); }