/// <summary> /// Migrates all used contexts if enabled and add seed data if enabled and tables are empty. /// Seeding only happens in migrations are enabled. /// </summary> public void Migrate() { if (Settings.IsMigrationsEnabled(PersistedGrantDb)) { Migrate(PersistedGrantDb); } if (Settings.IsMigrationsEnabled(ConfigurationDb)) { Migrate(ConfigurationDb); if (Settings.IsDataSeedingEnabled(SeedEntityType.ApiResources)) { if (!ConfigurationDb.ApiResources.Any()) { ConfigurationDb.ApiResources .AddRange(SeedData.ApiResources.Select(entity => entity.ToEntity())); } } if (Settings.IsDataSeedingEnabled(SeedEntityType.IdentityResources)) { if (!ConfigurationDb.IdentityResources.Any()) { ConfigurationDb.IdentityResources .AddRange(SeedData.IdentityResources.Select(entity => entity.ToEntity())); } } if (Settings.IsDataSeedingEnabled(SeedEntityType.Clients)) { if (!ConfigurationDb.Clients.Any()) { ConfigurationDb.Clients .AddRange(SeedData.Clients.Select(entity => entity.ToEntity())); } } ConfigurationDb.SaveChanges(); } if (Settings.IsMigrationsEnabled(UserDb)) { Migrate(UserDb); if (Settings.IsDataSeedingEnabled(SeedEntityType.Users)) { if (!UserDb.UserAccounts.Any()) { var accounts = SeedData.TestUsers.Select(user => new UserAccount { Subject = Guid.Parse(user.SubjectId), UserName = user.Username, DateCreated = DateTimeOffset.Now, DateModified = DateTimeOffset.Now, PasswordHash = Hasher.HashPassword(user.Password) }); UserDb.UserAccounts.AddRange(accounts); UserDb.SaveChanges(); } } } }
public void CanReadConfigurationStream() { var expected = new ConfigurationDb { ConnectionString = "the_connection_string" }; var stream = new MiqoConfig() .Save(expected) .ApplicationSettings() .ToStream(); stream.Position = 0; var actual = new MiqoConfig() .Load() .ApplicationSettings() .FromStream <ConfigurationDb>(stream); Assert.Equal(expected.ConnectionString, actual.ConnectionString); }
public void SerializeAndDeserializeUsingCustomFormatter() { var formatter = new XmlConfigurationFormatter(typeof(ConfigurationDb)); var expected = new ConfigurationDb { ConnectionString = "the_connection_string" }; var xml = new MiqoConfig(formatter) .Save(expected) .ApplicationSettings() .ToString(); Assert.NotEmpty(xml); var actual = new MiqoConfig(formatter) .Load() .ApplicationSettings() .FromString <ConfigurationDb>(xml); Assert.Equal(expected.ConnectionString, actual.ConnectionString); }