// Copyright (c) Microsoft Open Technologies, Inc. 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
{
///
/// Interface that exposes basic user management apis
///
///
///
public interface IUserStore : IDisposable where TUser : class
{
///
/// Returns the user id for a user
///
///
///
///
Task GetUserIdAsync(TUser user, CancellationToken cancellationToken = default(CancellationToken));
///
/// Returns the user's name
///
///
///
///
Task GetUserNameAsync(TUser user, CancellationToken cancellationToken = default(CancellationToken));
///
/// Set the user name
///
///
///
///
///
Task SetUserNameAsync(TUser user, string userName, CancellationToken cancellationToken = default(CancellationToken));
///
/// Insert a new user
///
///
///
///
Task CreateAsync(TUser user, CancellationToken cancellationToken = default(CancellationToken));
///
/// UpdateAsync a user
///
///
///
///
Task UpdateAsync(TUser user, CancellationToken cancellationToken = default(CancellationToken));
///
/// DeleteAsync a user
///
///
///
///
Task DeleteAsync(TUser user, CancellationToken cancellationToken = default(CancellationToken));
///
/// Finds a user
///
///
///
///
Task FindByIdAsync(string userId, CancellationToken cancellationToken = default(CancellationToken));
///
/// Returns the user associated with this name
///
///
///
///
Task FindByNameAsync(string name, CancellationToken cancellationToken = default(CancellationToken));
}
}