using Abp.Dependency; using Abp.Domain.Uow; using Abp.EntityFrameworkCore.Uow; using Microsoft.EntityFrameworkCore; using System.Transactions; using VberAdmin.EntityFrameworkCore; namespace VberAdmin.Seed; public static class SeedHelper { public static void SeedHostDb(IIocResolver iocResolver) { WithDbContext(iocResolver, SeedHostDb); } public static void SeedHostDb(VberAdminDbContext context) { context.SuppressAutoSetTenantId = true; new InitialHostDbBuilder(context).Create(); } private static void WithDbContext(IIocResolver iocResolver, Action contextAction) where TDbContext : DbContext { using var uowManager = iocResolver.ResolveAsDisposable(); using var uow = uowManager.Object.Begin(TransactionScopeOption.Suppress); var context = uowManager.Object.Current.GetDbContext(Abp.MultiTenancy.MultiTenancySides.Host); contextAction(context); uow.Complete(); } }