99 lines
6.2 KiB
C#
99 lines
6.2 KiB
C#
// Copyright (c) .NET Foundation. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
using System;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Microsoft.AspNet.Identity
|
|
{
|
|
/// <summary>
|
|
/// Provides an abstraction for a storage and management of roles.
|
|
/// </summary>
|
|
/// <typeparam name="TRole">The type that represents a role.</typeparam>
|
|
public interface IRoleStore<TRole> : IDisposable where TRole : class
|
|
{
|
|
/// <summary>
|
|
/// Creates a new role in a store as an asynchronous operation.
|
|
/// </summary>
|
|
/// <param name="role">The role to create in the store.</param>
|
|
/// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param>
|
|
/// <returns>A <see cref="Task{TResult}"/> that represents the <see cref="IdentityResult"/> of the asynchronous query.</returns>
|
|
Task<IdentityResult> CreateAsync(TRole role, CancellationToken cancellationToken);
|
|
|
|
/// <summary>
|
|
/// Updates a role in a store as an asynchronous operation.
|
|
/// </summary>
|
|
/// <param name="role">The role to update in the store.</param>
|
|
/// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param>
|
|
/// <returns>A <see cref="Task{TResult}"/> that represents the <see cref="IdentityResult"/> of the asynchronous query.</returns>
|
|
Task<IdentityResult> UpdateAsync(TRole role, CancellationToken cancellationToken);
|
|
|
|
/// <summary>
|
|
/// Deletes a role from the store as an asynchronous operation.
|
|
/// </summary>
|
|
/// <param name="role">The role to delete from the store.</param>
|
|
/// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param>
|
|
/// <returns>A <see cref="Task{TResult}"/> that represents the <see cref="IdentityResult"/> of the asynchronous query.</returns>
|
|
Task<IdentityResult> DeleteAsync(TRole role, CancellationToken cancellationToken);
|
|
|
|
/// <summary>
|
|
/// Gets the ID for a role from the store as an asynchronous operation.
|
|
/// </summary>
|
|
/// <param name="role">The role whose ID should be returned.</param>
|
|
/// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param>
|
|
/// <returns>A <see cref="Task{TResult}"/> that contains the ID of the role.</returns>
|
|
Task<string> GetRoleIdAsync(TRole role, CancellationToken cancellationToken);
|
|
|
|
/// <summary>
|
|
/// Gets the name of a role from the store as an asynchronous operation.
|
|
/// </summary>
|
|
/// <param name="role">The role whose name should be returned.</param>
|
|
/// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param>
|
|
/// <returns>A <see cref="Task{TResult}"/> that contains the name of the role.</returns>
|
|
Task<string> GetRoleNameAsync(TRole role, CancellationToken cancellationToken);
|
|
|
|
/// <summary>
|
|
/// Sets the name of a role in the store as an asynchronous operation.
|
|
/// </summary>
|
|
/// <param name="role">The role whose name should be set.</param>
|
|
/// <param name="roleName">The name of the role.</param>
|
|
/// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param>
|
|
/// <returns>The <see cref="Task"/> that represents the asynchronous operation.</returns>
|
|
Task SetRoleNameAsync(TRole role, string roleName, CancellationToken cancellationToken);
|
|
|
|
/// <summary>
|
|
/// Get a role's normalized name as an asynchronous operation.
|
|
/// </summary>
|
|
/// <param name="role">The role whose normalized name should be retrieved.</param>
|
|
/// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param>
|
|
/// <returns>A <see cref="Task{TResult}"/> that contains the name of the role.</returns>
|
|
Task<string> GetNormalizedRoleNameAsync(TRole role, CancellationToken cancellationToken);
|
|
|
|
/// <summary>
|
|
/// Set a role's normalized name as an asynchronous operation.
|
|
/// </summary>
|
|
/// <param name="role">The role whose normalized name should be set.</param>
|
|
/// <param name="normalizedName">The normalized name to set</param>
|
|
/// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param>
|
|
/// <returns>The <see cref="Task"/> that represents the asynchronous operation.</returns>
|
|
Task SetNormalizedRoleNameAsync(TRole role, string normalizedName, CancellationToken cancellationToken);
|
|
|
|
|
|
/// <summary>
|
|
/// Finds the role who has the specified ID as an asynchronous operation.
|
|
/// </summary>
|
|
/// <param name="roleId">The role ID to look for.</param>
|
|
/// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param>
|
|
/// <returns>A <see cref="Task{TResult}"/> that result of the look up.</returns>
|
|
Task<TRole> FindByIdAsync(string roleId, CancellationToken cancellationToken);
|
|
|
|
/// <summary>
|
|
/// Finds the role who has the specified normalized name as an asynchronous operation.
|
|
/// </summary>
|
|
/// <param name="normalizedRoleName">The normalized role name to look for.</param>
|
|
/// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param>
|
|
/// <returns>A <see cref="Task{TResult}"/> that result of the look up.</returns>
|
|
Task<TRole> FindByNameAsync(string normalizedRoleName, CancellationToken cancellationToken);
|
|
}
|
|
} |