コード例 #1
0
        //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.");
            }
        }
コード例 #2
0
 public IActionResult Create([FromBody] Monkey monkey)
 {
     if (ModelState.IsValid)
     {
         Guid obj = Guid.NewGuid();
         monkey.Id = obj.ToString();
         _dataAccessProvider.AddMonkeyRecord(monkey);
         return(Ok());
     }
     return(BadRequest());
 }