Example #1
0
    private static IDictionary <string, string> CreateAndSaveDefaultValues(
        EFConfigurationContext dbContext)
    {
        // Quotes (c)2005 Universal Pictures: Serenity
        // https://www.uphe.com/movies/serenity
        var configValues =
            new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)
        {
            { "quote1", "I aim to misbehave." },
            { "quote2", "I swallowed a bug." },
            { "quote3", "You can't stop the signal, Mal." }
        };

        if (dbContext == null || dbContext.Values == null)
        {
            throw new Exception("Null DB context");
        }

        dbContext.Values.AddRange(configValues
                                  .Select(kvp => new EFConfigurationValue
        {
            Id    = kvp.Key,
            Value = kvp.Value
        })
                                  .ToArray());

        dbContext.SaveChanges();

        return(configValues);
    }
        public override void Load()
        {
            var builder = new DbContextOptionsBuilder <EFConfigurationContext>();

            OptionsAction(builder);

            using (var dbContext = new EFConfigurationContext(builder.Options))
            {
                dbContext.Database.EnsureCreated();

                Data = !dbContext.Values.Any() ? CreateAndSaveDefaultValues(dbContext) : dbContext.Values.ToDictionary(c => c.Id, c => c.Value);
            }
        }
        private static IDictionary <string, string> CreateAndSaveDefaultValues(EFConfigurationContext dbContext)
        {
            var configValues = new Dictionary <string, string>
            {
                { "quote1", "I aim to misbehave." },
                { "quote2", "I swallowed a bug." },
                { "quote3", "You can't stop the signal, Mal." }
            };

            dbContext.Values.AddRange(configValues
                                      .Select(kvp => new EFConfigurationValue
            {
                Id    = kvp.Key,
                Value = kvp.Value
            }).ToArray());
            dbContext.SaveChanges();

            return(configValues);
        }