using System.Threading.Tasks; using IwbZero.MultiTenancy; namespace IwbZero.Authorization.Base.Users { /// /// This is a helper base class to easily update . /// Implements some methods as default but you can override all methods. /// /// Tenant type /// User type public abstract class DefaultExternalAuthenticationSource : IExternalAuthenticationSource where TTenant : IwbTenant where TUser : UserBase, new() { /// public abstract string Name { get; } /// public abstract Task TryAuthenticateAsync(string userNameOrEmailAddress, string plainPassword, TTenant tenant); /// public virtual Task CreateUserAsync(string userNameOrEmailAddress, TTenant tenant) { return Task.FromResult( new TUser { UserName = userNameOrEmailAddress, Name = userNameOrEmailAddress, Surname = userNameOrEmailAddress, EmailAddress = userNameOrEmailAddress, IsEmailConfirmed = true, IsActive = true }); } /// public virtual Task UpdateUserAsync(TUser user, TTenant tenant) { return Task.FromResult(0); } } }