//TODO Transactional? public static void Initialize(IServiceProvider services) { using (var context = new PostgreSqlContext( services.GetRequiredService < DbContextOptions <PostgreSqlContext> >())) { // Get a logger var logger = services.GetRequiredService <ILogger <DbInitializer> >(); IDataAccessProvider dbProvider = services.GetRequiredService <IDataAccessProvider>(); if (context.monkeys.Any()) { logger.LogInformation("DB not empty"); return; } logger.LogInformation("Start seeding DB..."); string MonkeyJson = File.ReadAllText("monkeycollection.json"); var options = new JsonSerializerOptions { AllowTrailingCommas = true, PropertyNameCaseInsensitive = true }; options.Converters.Add(new JsonDateTimeConverter()); List <Monkey> MonkeyList = JsonSerializer.Deserialize <List <Monkey> >(MonkeyJson, options); MonkeyList.ForEach((monkey) => dbProvider.AddMonkeyRecord(monkey)); logger.LogInformation("Finished seeding DB."); } }
public IActionResult Create([FromBody] Monkey monkey) { if (ModelState.IsValid) { Guid obj = Guid.NewGuid(); monkey.Id = obj.ToString(); _dataAccessProvider.AddMonkeyRecord(monkey); return(Ok()); } return(BadRequest()); }