using System; using System.Collections.Generic; using System.Threading; using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; namespace MediaBrowser.Controller.Library { /// /// Interface IUserDataManager. /// public interface IUserDataManager { /// /// Occurs when [user data saved]. /// event EventHandler UserDataSaved; /// /// Saves the user data. /// /// The user id. /// The item. /// The user data. /// The reason. /// The cancellation token. void SaveUserData(Guid userId, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken); void SaveUserData(User userId, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken); UserItemData GetUserData(User user, BaseItem item); UserItemData GetUserData(Guid userId, BaseItem item); /// /// Gets the user data dto. /// UserItemDataDto GetUserDataDto(BaseItem item, User user); UserItemDataDto GetUserDataDto(BaseItem item, BaseItemDto itemDto, User user, DtoOptions dto_options); /// /// Get all user data for the given user /// /// /// List GetAllUserData(Guid userId); /// /// Save the all provided user data for the given user /// /// /// /// /// void SaveAllUserData(Guid userId, UserItemData[] userData, CancellationToken cancellationToken); /// /// Updates playstate for an item and returns true or false indicating if it was played to completion /// bool UpdatePlayState(BaseItem item, UserItemData data, long? positionTicks); } }