@@ -208,6 +208,50 @@ public static class DbSeeder
|
||||
}
|
||||
}
|
||||
|
||||
public static async Task SeedSiteSettingAsync(AppDbContext db)
|
||||
{
|
||||
// Singleton row holding site-wide presentation/locale settings.
|
||||
if (!await db.SiteSettings.AnyAsync())
|
||||
{
|
||||
db.SiteSettings.Add(new SiteSetting
|
||||
{
|
||||
SiteTitle = "River Of Life Christian Church",
|
||||
SiteTitleZh = "生命河靈糧堂",
|
||||
DefaultLanguage = "en",
|
||||
TimeZone = "America/Los_Angeles",
|
||||
DateFormat = "yyyy-MM-dd",
|
||||
Currency = "USD",
|
||||
});
|
||||
await db.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
|
||||
public static async Task SeedNotificationSettingAsync(AppDbContext db, IConfiguration config)
|
||||
{
|
||||
// Singleton row that becomes the runtime source of truth for SMTP + Line. Seed it once
|
||||
// from the legacy "Smtp"/"Line" appsettings sections so existing config carries over.
|
||||
if (!await db.NotificationSettings.AnyAsync())
|
||||
{
|
||||
var smtp = config.GetSection("Smtp");
|
||||
var line = config.GetSection("Line");
|
||||
db.NotificationSettings.Add(new NotificationSetting
|
||||
{
|
||||
EnableEmail = !string.IsNullOrWhiteSpace(smtp["Host"]),
|
||||
SmtpHost = smtp["Host"] ?? "",
|
||||
SmtpPort = int.TryParse(smtp["Port"], out var port) ? port : 587,
|
||||
SmtpUseSsl = !bool.TryParse(smtp["UseSsl"], out var ssl) || ssl,
|
||||
SmtpUser = smtp["User"] ?? "",
|
||||
SmtpPassword = smtp["Password"] ?? "",
|
||||
FromAddress = smtp["FromAddress"] ?? "",
|
||||
FromName = smtp["FromName"] ?? "",
|
||||
EnableLine = !string.IsNullOrWhiteSpace(line["ChannelAccessToken"]),
|
||||
LineChannelAccessToken = line["ChannelAccessToken"] ?? "",
|
||||
LineChannelSecret = line["ChannelSecret"] ?? "",
|
||||
});
|
||||
await db.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Seeds roles and (in Development) the default admin account.
|
||||
/// Called once on application startup after migrations have been applied.
|
||||
@@ -217,6 +261,7 @@ public static class DbSeeder
|
||||
var roleManager = services.GetRequiredService<RoleManager<AppRole>>();
|
||||
var userManager = services.GetRequiredService<UserManager<AppUser>>();
|
||||
var env = services.GetRequiredService<IWebHostEnvironment>();
|
||||
var config = services.GetRequiredService<IConfiguration>();
|
||||
|
||||
await SeedRolesAsync(roleManager);
|
||||
|
||||
@@ -226,6 +271,8 @@ public static class DbSeeder
|
||||
await SeedMinistriesAsync(db);
|
||||
await SeedExpenseCategoriesAsync(db);
|
||||
await SeedChurchProfileAsync(db);
|
||||
await SeedSiteSettingAsync(db);
|
||||
await SeedNotificationSettingAsync(db, config);
|
||||
|
||||
if (env.IsDevelopment())
|
||||
await SeedAdminUserAsync(userManager);
|
||||
|
||||
Reference in New Issue
Block a user