diff --git a/Hcs.WebApp/Data/Hcs/HcsDbContext.cs b/Hcs.WebApp/Data/Hcs/HcsDbContext.cs index 432dca8..3e597e0 100644 --- a/Hcs.WebApp/Data/Hcs/HcsDbContext.cs +++ b/Hcs.WebApp/Data/Hcs/HcsDbContext.cs @@ -13,6 +13,104 @@ namespace Hcs.WebApp.Data.Hcs public DbSet Operations { get; set; } + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { + optionsBuilder + .UseSeeding((context, _) => + { + if (context.Set().Count() == 0) + { + var registries = GetDefaultRegistries(); + context.Set().AddRange(registries); + context.SaveChanges(); + } + }) + .UseAsyncSeeding(async (context, _, cancellationToken) => + { + if (!await context.Set().AnyAsync()) + { + var registries = GetDefaultRegistries(); + await context.Set().AddRangeAsync(registries); + await context.SaveChangesAsync(); + } + }); + } + + private IEnumerable GetDefaultRegistries() + { + var result = new List + { + 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) { modelBuilder.Entity() diff --git a/Hcs.WebApp/Data/Hcs/Registry.cs b/Hcs.WebApp/Data/Hcs/Registry.cs index 55e0023..fb17a0b 100644 --- a/Hcs.WebApp/Data/Hcs/Registry.cs +++ b/Hcs.WebApp/Data/Hcs/Registry.cs @@ -10,7 +10,7 @@ public bool IsCommon { get; set; } - public DateTime SyncedAt { get; set; } + public DateTime? SyncedAt { get; set; } public int LastSyncOperationId { get; set; }