public static async Task <IList <UserLoginInfo> > xGetLoginsAsync <TContext, TUser, TKey, TUserLogin>(this IIdentityUserLoginStoreWithContext <TContext, TUser, TKey, TUserLogin> store, TUser user, CancellationToken cancellationToken = default) where TContext : class, IIdentityContext//, IIdentityContext_WithUserLogins<TKey> where TKey : IEquatable <TKey> where TUserLogin : class, IIdentityUserLogin <TKey> where TUser : class, IIdentityUserWithLogins <TKey> { store.ThrowIfCancelledRequestOrDisposedOrUserNull(user, cancellationToken); return(await(from l in store.Context.DbGetQueryable <TUserLogin>() where l.UserId.Equals(user.Id) select new UserLoginInfo(l.LoginProvider, l.ProviderKey, l.ProviderDisplayName)).xToListAsync(cancellationToken)); }
public static async Task xRemoveLoginAsync <TContext, TUser, TKey, TUserLogin>(this IIdentityUserLoginStoreWithContext <TContext, TUser, TKey, TUserLogin> store, TUser user, string loginProvider, string providerKey, CancellationToken cancellationToken = default) where TContext : class, IIdentityContext//, IIdentityContext_WithUserLogins<TKey> where TKey : IEquatable <TKey> where TUserLogin : class, IIdentityUserLogin <TKey> where TUser : class, IIdentityUserWithLogins <TKey> { store.ThrowIfCancelledRequestOrDisposedOrUserNull(user, cancellationToken); var entry = await store.xFindUserLoginAsync(user.Id, loginProvider, providerKey, cancellationToken); if (entry != null) { await store.Context.DbDeleteAsync(entry); } }
public static async Task xAddLoginAsync <TContext, TUser, TKey, TUserLogin>(this IIdentityUserLoginStoreWithContext <TContext, TUser, TKey, TUserLogin> store, TUser user, UserLoginInfo login, CancellationToken cancellationToken = default) where TContext : class, IIdentityContext//, IIdentityContext_WithUserLogins<TKey> where TKey : IEquatable <TKey> where TUserLogin : class, IIdentityUserLogin <TKey>, new() where TUser : class, IIdentityUserWithLogins <TKey> { store.ThrowIfCancelledRequestOrDisposedOrUserNull(user, cancellationToken); if (login == null) { throw new ArgumentNullException(nameof(login)); } await store.Context.DbInsertAsync(user.xCreateUserLogin <TKey, TUserLogin>(login)); await Task.FromResult(false); }