Example #1
0
        /// <summary>
        /// Generate default clients, identity and api resources
        /// </summary>
        private static async Task EnsureSeedIdentityServerData(IdentityServerContext context)
        {
            if (!context.Clients.Any())
            {
                foreach (var client in Clients.GetAdminClient().ToList())
                {
                    await context.Clients.AddAsync(client.ToEntity());
                }

                await context.SaveChangesAsync();
            }

            if (!context.IdentityResources.Any())
            {
                var identityResources = ClientResources.GetIdentityResources().ToList();

                foreach (var resource in identityResources)
                {
                    await context.IdentityResources.AddAsync(resource.ToEntity());
                }

                await context.SaveChangesAsync();
            }

            if (!context.ApiResources.Any())
            {
                foreach (var resource in ClientResources.GetApiResources().ToList())
                {
                    await context.ApiResources.AddAsync(resource.ToEntity());
                }

                await context.SaveChangesAsync();
            }
        }
Example #2
0
        public async Task <bool> AddClientAsync(ClientEntity client)
        {
            var result = await _identityContex.Clients.AddAsync(client);

            await _identityContex.SaveChangesAsync();

            return(result.State == EntityState.Added);
        }
Example #3
0
        public async Task <Account> SignUpAsync(Account account)
        {
            CheckAccountIsNull(account);
            var exists = await _context.Accounts.FirstOrDefaultAsync(x =>
                                                                     x.Username == account.Username || x.UserMail == account.UserMail);

            if (exists != null)
            {
                throw new InvalidOperationException(nameof(account.Username) + " or " + nameof(account.UserMail) +
                                                    " already used");
            }
            account = GenerateSaltAndHashPassword(account);
            account = GenerateActivationToken(account);

            await _context.Set <Account>().AddAsync(account);

            await _context.SaveChangesAsync();

            return(account);
        }