public static async Task <TUser> xFindByNameAsync <TContext, TUser, TKey>(this IIdentityUserStoreWithContext <TContext, TUser, TKey> store, string normalizedUserName, CancellationToken cancellationToken = default) where TContext : class, IIdentityContext//, IIdentityContext_WithUsers<TKey> where TKey : IEquatable <TKey> where TUser : class, IIdentityUserWithConcurrency <TKey> { store.ThrowIfCancelledRequestOrDisposed(cancellationToken); return((TUser)await store.Context.DbGetQueryable <TUser>().xFindByNameAsync(normalizedUserName, cancellationToken)); }
public static async Task <IdentityResult> xUpdateAsync <TContext, TUser, TKey>(this IIdentityUserStoreWithContext <TContext, TUser, TKey> store, TUser user, CancellationToken cancellationToken = default) where TContext : class, IIdentityContext//, IIdentityContext_WithUsers<TKey> where TKey : IEquatable <TKey> where TUser : class, IIdentityUserWithConcurrency <TKey> { store.ThrowIfCancelledRequestOrDisposedOrUserNull(user, cancellationToken); var dbUser = await store.Context.DbGetQueryable <TUser>().FindByIdAndConcurrencyStampAsync(user, cancellationToken); if (dbUser == null) { return(IdentityResult.Failed(store.ErrorDescriber.ConcurrencyFailure())); } dbUser.ConcurrencyStamp = Guid.NewGuid().ToString(); await store.Context.DbUpdateAsync(dbUser, cancellationToken); return(IdentityResult.Success); }
public static async Task <IdentityResult> xCreateAsync <TContext, TUser, TKey>(this IIdentityUserStoreWithContext <TContext, TUser, TKey> store, TUser user, CancellationToken cancellationToken = default) where TContext : class, IIdentityContext//, IIdentityContext_WithUsers<TKey> where TKey : IEquatable <TKey> where TUser : class, IIdentityUserWithConcurrency <TKey> { store.ThrowIfCancelledRequestOrDisposedOrUserNull(user, cancellationToken); await store.Context.DbInsertAsync(user, cancellationToken); return(IdentityResult.Success); }