using Bit.Core.Entities; using Bit.Seeder.Services; using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.DependencyInjection; namespace Bit.Seeder.Pipeline; /// /// Convenience extension methods for resolving common services from . /// Minimizes churn in step implementations when transitioning from direct property access to DI. /// internal static class SeederContextExtensions { internal static IPasswordHasher GetPasswordHasher(this SeederContext context) => context.Services.GetRequiredService>(); internal static IManglerService GetMangler(this SeederContext context) => context.Services.GetRequiredService(); internal static ISeedReader GetSeedReader(this SeederContext context) => context.Services.GetRequiredService(); internal static SeederSettings GetSettings(this SeederContext context) => context.Services.GetRequiredService(); internal static string GetPassword(this SeederContext context) => context.GetSettings().Password ?? Factories.UserSeeder.DefaultPassword; } /// /// Runtime settings for a seeding operation, registered in DI. /// internal sealed record SeederSettings(string? Password = null);