61 lines
2.5 KiB
C#
61 lines
2.5 KiB
C#
using Indotalent.Data.Entities;
|
|
using Indotalent.Infrastructure.Database.Demo;
|
|
using Microsoft.AspNetCore.Identity;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
namespace Indotalent.Infrastructure.Database;
|
|
|
|
public static class DatabaseSeederDemo
|
|
{
|
|
public static async Task SeedAsync(IServiceProvider serviceProvider)
|
|
{
|
|
var roleManager = serviceProvider.GetRequiredService<RoleManager<IdentityRole>>();
|
|
var userManager = serviceProvider.GetRequiredService<UserManager<ApplicationUser>>();
|
|
var configuration = serviceProvider.GetRequiredService<IConfiguration>();
|
|
var context = serviceProvider.GetRequiredService<AppDbContext>();
|
|
|
|
// 1. Master Data (Must be first)
|
|
await UserSeeder.GenerateDataAsync(userManager, context, configuration);
|
|
await UnitMeasureSeeder.GenerateDataAsync(context);
|
|
await WarehouseSeeder.GenerateDataAsync(context);
|
|
await PaymentMethodSeeder.GenerateDataAsync(context);
|
|
await EmployeeGroupSeeder.GenerateDataAsync(context);
|
|
await EmployeeCategorySeeder.GenerateDataAsync(context);
|
|
await EmployeeSeeder.GenerateDataAsync(context);
|
|
|
|
// 2. Customer & Vendor Related
|
|
await CustomerCategorySeeder.GenerateDataAsync(context);
|
|
await CustomerGroupSeeder.GenerateDataAsync(context);
|
|
await CustomerSeeder.GenerateDataAsync(context);
|
|
await CustomerContactSeeder.GenerateDataAsync(context);
|
|
|
|
await VendorCategorySeeder.GenerateDataAsync(context);
|
|
await VendorGroupSeeder.GenerateDataAsync(context);
|
|
await VendorSeeder.GenerateDataAsync(context);
|
|
await VendorContactSeeder.GenerateDataAsync(context);
|
|
|
|
// 3. Product Related
|
|
await ProductGroupSeeder.GenerateDataAsync(context);
|
|
await ProductSeeder.GenerateDataAsync(context);
|
|
|
|
// 4. Sales Related
|
|
await SalesOrderSeeder.GenerateDataAsync(context);
|
|
|
|
// 5. Purchase Related
|
|
await PurchaseOrderSeeder.GenerateDataAsync(context);
|
|
|
|
// 6. Inventory Operations
|
|
|
|
// 7. Finance & Project Related
|
|
await InvoiceSeeder.GenerateDataAsync(context);
|
|
await PaymentReceiveSeeder.GenerateDataAsync(context);
|
|
await BillSeeder.GenerateDataAsync(context);
|
|
await PaymentDisburseSeeder.GenerateDataAsync(context);
|
|
|
|
await BookingGroupSeeder.GenerateDataAsync(context);
|
|
await BookingResourceSeeder.GenerateDataAsync(context);
|
|
await BookingSeeder.GenerateDataAsync(context);
|
|
|
|
}
|
|
} |