diff options
| author | LukePulverenti <luke.pulverenti@gmail.com> | 2013-02-27 15:25:45 -0500 |
|---|---|---|
| committer | LukePulverenti <luke.pulverenti@gmail.com> | 2013-02-27 15:25:45 -0500 |
| commit | ff4ee7ab9c41f9756e1db6f25f701c8ca69cecf2 (patch) | |
| tree | 687d054069723af93b2d3fe773fa8175fdb28a70 /MediaBrowser.Controller/Library/IUserManager.cs | |
| parent | 1c9eb1911a597c39245eb0305b25d173b436a0c0 (diff) | |
combined usermanager and userdata manager
Diffstat (limited to 'MediaBrowser.Controller/Library/IUserManager.cs')
| -rw-r--r-- | MediaBrowser.Controller/Library/IUserManager.cs | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Library/IUserManager.cs b/MediaBrowser.Controller/Library/IUserManager.cs new file mode 100644 index 000000000..ea4f03330 --- /dev/null +++ b/MediaBrowser.Controller/Library/IUserManager.cs @@ -0,0 +1,169 @@ +using MediaBrowser.Common.Events; +using MediaBrowser.Controller.Entities; +using MediaBrowser.Model.Connectivity; +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; + +namespace MediaBrowser.Controller.Library +{ + public interface IUserManager + { + /// <summary> + /// Gets the users. + /// </summary> + /// <value>The users.</value> + IEnumerable<User> Users { get; } + + /// <summary> + /// Gets the active connections. + /// </summary> + /// <value>The active connections.</value> + IEnumerable<ClientConnectionInfo> ConnectedUsers { get; } + + /// <summary> + /// Occurs when [playback start]. + /// </summary> + event EventHandler<PlaybackProgressEventArgs> PlaybackStart; + + /// <summary> + /// Occurs when [playback progress]. + /// </summary> + event EventHandler<PlaybackProgressEventArgs> PlaybackProgress; + + /// <summary> + /// Occurs when [playback stopped]. + /// </summary> + event EventHandler<PlaybackProgressEventArgs> PlaybackStopped; + + /// <summary> + /// Occurs when [user updated]. + /// </summary> + event EventHandler<GenericEventArgs<User>> UserUpdated; + + /// <summary> + /// Occurs when [user deleted]. + /// </summary> + event EventHandler<GenericEventArgs<User>> UserDeleted; + + /// <summary> + /// Gets a User by Id + /// </summary> + /// <param name="id">The id.</param> + /// <returns>User.</returns> + /// <exception cref="System.ArgumentNullException"></exception> + User GetUserById(Guid id); + + /// <summary> + /// Authenticates a User and returns a result indicating whether or not it succeeded + /// </summary> + /// <param name="user">The user.</param> + /// <param name="password">The password.</param> + /// <returns>Task{System.Boolean}.</returns> + /// <exception cref="System.ArgumentNullException">user</exception> + Task<bool> AuthenticateUser(User user, string password); + + /// <summary> + /// Logs the user activity. + /// </summary> + /// <param name="user">The user.</param> + /// <param name="clientType">Type of the client.</param> + /// <param name="deviceName">Name of the device.</param> + /// <returns>Task.</returns> + /// <exception cref="System.ArgumentNullException">user</exception> + Task LogUserActivity(User user, ClientType clientType, string deviceName); + + /// <summary> + /// Loads the users from the repository + /// </summary> + /// <returns>IEnumerable{User}.</returns> + IEnumerable<User> LoadUsers(); + + /// <summary> + /// Refreshes metadata for each user + /// </summary> + /// <param name="cancellationToken">The cancellation token.</param> + /// <param name="force">if set to <c>true</c> [force].</param> + /// <returns>Task.</returns> + Task RefreshUsersMetadata(CancellationToken cancellationToken, bool force = false); + + /// <summary> + /// Renames the user. + /// </summary> + /// <param name="user">The user.</param> + /// <param name="newName">The new name.</param> + /// <returns>Task.</returns> + /// <exception cref="System.ArgumentNullException">user</exception> + /// <exception cref="System.ArgumentException"></exception> + Task RenameUser(User user, string newName); + + /// <summary> + /// Updates the user. + /// </summary> + /// <param name="user">The user.</param> + /// <exception cref="System.ArgumentNullException">user</exception> + /// <exception cref="System.ArgumentException"></exception> + Task UpdateUser(User user); + + /// <summary> + /// Creates the user. + /// </summary> + /// <param name="name">The name.</param> + /// <returns>User.</returns> + /// <exception cref="System.ArgumentNullException">name</exception> + /// <exception cref="System.ArgumentException"></exception> + Task<User> CreateUser(string name); + + /// <summary> + /// Deletes the user. + /// </summary> + /// <param name="user">The user.</param> + /// <returns>Task.</returns> + /// <exception cref="System.ArgumentNullException">user</exception> + /// <exception cref="System.ArgumentException"></exception> + Task DeleteUser(User user); + + /// <summary> + /// Used to report that playback has started for an item + /// </summary> + /// <param name="user">The user.</param> + /// <param name="item">The item.</param> + /// <param name="clientType">Type of the client.</param> + /// <param name="deviceName">Name of the device.</param> + /// <exception cref="System.ArgumentNullException"></exception> + void OnPlaybackStart(User user, BaseItem item, ClientType clientType, string deviceName); + + /// <summary> + /// Used to report playback progress for an item + /// </summary> + /// <param name="user">The user.</param> + /// <param name="item">The item.</param> + /// <param name="positionTicks">The position ticks.</param> + /// <param name="clientType">Type of the client.</param> + /// <param name="deviceName">Name of the device.</param> + /// <returns>Task.</returns> + /// <exception cref="System.ArgumentNullException"></exception> + Task OnPlaybackProgress(User user, BaseItem item, long? positionTicks, ClientType clientType, string deviceName); + + /// <summary> + /// Used to report that playback has ended for an item + /// </summary> + /// <param name="user">The user.</param> + /// <param name="item">The item.</param> + /// <param name="positionTicks">The position ticks.</param> + /// <param name="clientType">Type of the client.</param> + /// <param name="deviceName">Name of the device.</param> + /// <returns>Task.</returns> + /// <exception cref="System.ArgumentNullException"></exception> + Task OnPlaybackStopped(User user, BaseItem item, long? positionTicks, ClientType clientType, string deviceName); + + /// <summary> + /// Saves user data for an item + /// </summary> + /// <param name="user">The user.</param> + /// <param name="item">The item.</param> + /// <param name="data">The data.</param> + Task SaveUserDataForItem(User user, BaseItem item, UserItemData data); + } +} |
