1 using Microsoft.EntityFrameworkCore;
5 using System.Threading.Tasks;
23 public DatabaseSeeder(
ICryptographySuite cryptographySuite) => this.cryptographySuite = cryptographySuite ??
throw new ArgumentNullException(nameof(cryptographySuite));
34 CreatedAt = DateTimeOffset.Now,
36 Name = Api.Models.User.AdminName,
37 CanonicalName = Api.Models.User.AdminName.ToUpperInvariant(),
40 cryptographySuite.SetUserPassword(admin, Api.Models.User.DefaultAdminPassword,
true);
41 databaseContext.
Users.Add(admin);
47 SeedAdminUser(databaseContext);
48 await databaseContext.
Save(cancellationToken).ConfigureAwait(
false);
54 var admin = await databaseContext.
Users.Where(x => x.CanonicalName == Api.Models.User.AdminName.ToUpperInvariant()).FirstOrDefaultAsync(cancellationToken).ConfigureAwait(
false);
56 SeedAdminUser(databaseContext);
60 cryptographySuite.SetUserPassword(admin, Api.Models.User.DefaultAdminPassword,
false);
63 await databaseContext.
Save(cancellationToken).ConfigureAwait(
false);
async Task ResetAdminPassword(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Changes the admin password in IDatabaseContext back to it's default and enables the account ...
readonly ICryptographySuite cryptographySuite
The ICryptographySuite for the DatabaseContext<TParentContext>
Use server authentication
Task Save(CancellationToken cancellationToken)
Saves changes made to the IDatabaseContext
For initially seeding a database
DbSet< User > Users
The Users in the IDatabaseContext
AdministrationRights
Rights for Models.Administration
async Task SeedDatabase(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Initially seed a given databaseContext
Contains various cryptographic functions
InstanceManagerRights
Rights for managing Models.Instances
void SeedAdminUser(IDatabaseContext databaseContext)
Add a default admin User to a given databaseContext