public static string GetInsertScript<T>(int cultureId, string table) { var hier = LocalizationDefinitionConvention.GetInstanceHierarchy(typeof(T)); var keys = hier.Where(a => a.IsLeafNode()).Select(a => a.Value.Definition.Key); var commands = new List<string>(); foreach (var key in keys) { var sql = $"INSERT INTO {table} (CultureId, Key, Value) VALUES ({cultureId}, {key}, NULL)"; commands.Add(sql); } return string.Join(Environment.NewLine, commands); }
public static ModelBuilder SeedInvariantCultureResourcesKeysFromConventions(this ModelBuilder builder, Type type = null) { var definitions = LocalizationDefinitionConvention.GetDefinitions(type); builder.Entity<CultureEntity>() .HasData(new CultureEntity { Name = LocalizationConstants.Invariant, ActiveFlag = true, Id = 1 }); builder.Entity<CultureResourceEntity>() .HasData(definitions.Select((a,i) => new CultureResourceEntity { Id = i+1, CultureId = 1, Key = a.Key, Value = a.Key })); return builder; }