public void Dispose()
        {
            _context?.Database.EnsureDeleted();
            _context = null;

            _loggerFactory?.Dispose();
            _loggerFactory = null;
        }
        public IKeyService CreateService(KeyRackOptions options)
        {
            var timeKeeper = new TimeKeeper(options);
            var serializer = new DefaultKeySerializer();

            _context = new KeyDbContext(_dbContextOptions);
            _context.Database.EnsureCreated();

            var repository = new EntityFrameworkKeyRepository(_context, _loggerFactory.CreateLogger <EntityFrameworkKeyRepository>());

            return(new KeyService(options, repository, serializer, timeKeeper, _loggerFactory.CreateLogger <KeyService>()));
        }