public UserItemDataDto GetUserDataDto(IHasUserData item, User user) { var userData = GetUserData(user.Id, item.GetUserDataKey()); var dto = GetUserItemDataDto(userData); item.FillUserDataDtoValues(dto, userData, user); return(dto); }
/// <summary> /// Saves the user data. /// </summary> /// <param name="userId">The user id.</param> /// <param name="item">The item.</param> /// <param name="userData">The user data.</param> /// <param name="reason">The reason.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> /// <exception cref="System.ArgumentNullException">userData /// or /// cancellationToken /// or /// userId /// or /// key</exception> public async Task SaveUserData(Guid userId, IHasUserData item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken) { if (userData == null) { throw new ArgumentNullException("userData"); } if (item == null) { throw new ArgumentNullException("item"); } if (userId == Guid.Empty) { throw new ArgumentNullException("userId"); } cancellationToken.ThrowIfCancellationRequested(); var key = item.GetUserDataKey(); try { await Repository.SaveUserData(userId, key, userData, cancellationToken).ConfigureAwait(false); var newValue = userData; // Once it succeeds, put it into the dictionary to make it available to everyone else _userData.AddOrUpdate(GetCacheKey(userId, key), newValue, delegate { return newValue; }); } catch (Exception ex) { _logger.ErrorException("Error saving user data", ex); throw; } EventHelper.FireEventIfNotNull(UserDataSaved, this, new UserDataSaveEventArgs { Key = key, UserData = userData, SaveReason = reason, UserId = userId, Item = item }, _logger); }
public async Task SaveUserData(Guid userId, IHasUserData item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken) { if (userData == null) { throw new ArgumentNullException("userData"); } if (item == null) { throw new ArgumentNullException("item"); } if (userId == Guid.Empty) { throw new ArgumentNullException("userId"); } cancellationToken.ThrowIfCancellationRequested(); var key = item.GetUserDataKey(); try { await Repository.SaveUserData(userId, key, userData, cancellationToken).ConfigureAwait(false); var newValue = userData; // Once it succeeds, put it into the dictionary to make it available to everyone else _userData.AddOrUpdate(GetCacheKey(userId, key), newValue, delegate { return(newValue); }); } catch (Exception ex) { _logger.ErrorException("Error saving user data", ex); throw; } EventHelper.FireEventIfNotNull(UserDataSaved, this, new UserDataSaveEventArgs { Key = key, UserData = userData, SaveReason = reason, UserId = userId, Item = item }, _logger); }
public UserItemDataDto GetUserDataDto(IHasUserData item, User user) { var userData = GetUserData(user.Id, item.GetUserDataKey()); var dto = GetUserItemDataDto(userData); item.FillUserDataDtoValues(dto, userData, user); return dto; }
private void SetUserProperties(IHasUserData item, MediaSourceInfo source, User user) { var userData = item == null ? new UserItemData() : _userDataManager.GetUserData(user.Id, item.GetUserDataKey()); SetDefaultAudioStreamIndex(source, userData, user); SetDefaultSubtitleStreamIndex(source, userData, user); }