コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }