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); }
public static async Task <IdentityResult> xDeleteAsync <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 stored = await store.Context.DbGetQueryable <TUser>().FindByIdAndConcurrencyStampAsync(user, cancellationToken); if (stored == null) { return(IdentityResult.Failed(store.ErrorDescriber.ConcurrencyFailure())); } await store.Context.DbDeleteAsync(user, cancellationToken); return(IdentityResult.Success); }