Add default registries

This commit is contained in:
2025-10-28 15:23:31 +09:00
parent fa485918cc
commit 5e5880c367
2 changed files with 99 additions and 1 deletions

View File

@ -13,6 +13,104 @@ namespace Hcs.WebApp.Data.Hcs
public DbSet<Operation> Operations { get; set; } public DbSet<Operation> Operations { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.UseSeeding((context, _) =>
{
if (context.Set<Registry>().Count() == 0)
{
var registries = GetDefaultRegistries();
context.Set<Registry>().AddRange(registries);
context.SaveChanges();
}
})
.UseAsyncSeeding(async (context, _, cancellationToken) =>
{
if (!await context.Set<Registry>().AnyAsync())
{
var registries = GetDefaultRegistries();
await context.Set<Registry>().AddRangeAsync(registries);
await context.SaveChangesAsync();
}
});
}
private IEnumerable<Registry> GetDefaultRegistries()
{
var result = new List<Registry>
{
new()
{
Number = 2,
Name = "Коммунальный ресурс",
IsCommon = true
},
new()
{
Number = 3,
Name = "Вид коммунальной услуги",
IsCommon = true
},
new()
{
Number = 16,
Name = "Межповерочный интервал",
IsCommon = true
},
new()
{
Number = 24,
Name = "Состояние дома",
IsCommon = true
},
new()
{
Number = 27,
Name = "Тип прибора учета",
IsCommon = true
},
new()
{
Number = 32,
Name = "Часовые зоны по Olson",
IsCommon = true
},
new()
{
Number = 51,
Name = "Вид коммунальной услуги",
IsCommon = false
},
new()
{
Number = 58,
Name = "Основание заключения договора",
IsCommon = false
},
new()
{
Number = 239,
Name = "Тарифицируемый ресурс",
IsCommon = true
},
new()
{
Number = 276,
Name = "Показатели качества коммунальных ресурсов",
IsCommon = true
},
new()
{
Number = 338,
Name = "Стадия жизненного цикла",
IsCommon = true
}
};
return result;
}
protected override void OnModelCreating(ModelBuilder modelBuilder) protected override void OnModelCreating(ModelBuilder modelBuilder)
{ {
modelBuilder.Entity<Campaign>() modelBuilder.Entity<Campaign>()

View File

@ -10,7 +10,7 @@
public bool IsCommon { get; set; } public bool IsCommon { get; set; }
public DateTime SyncedAt { get; set; } public DateTime? SyncedAt { get; set; }
public int LastSyncOperationId { get; set; } public int LastSyncOperationId { get; set; }