private static void RecreateDatabaseAndInstallObjects() { using (HangfireDbContext context = new HangfireDbContext(ConnectionUtils.GetConnectionString(), ConnectionUtils.GetDatabaseName())) { context.Init(); MongoCollection[] collections = { context.DistributedLock, context.Counter, context.Hash, context.Job, context.JobParameter, context.JobQueue, context.List, context.Server, context.Set, context.State }; foreach (MongoCollection collection in collections) { WriteConcernResult result = collection.RemoveAll(); if (result.Ok == false) throw new InvalidOperationException("Unable to cleanup database."); } } }
private static void RecreateDatabaseAndInstallObjects() { using (HangfireDbContext context = new HangfireDbContext(ConnectionUtils.GetConnectionString(), ConnectionUtils.GetDatabaseName())) { try { context.Init(); List<Task> tasks = new List<Task>(); tasks.Add(context.Identifiers.DeleteManyAsync(new BsonDocument())); tasks.Add(context.DistributedLock.DeleteManyAsync(new BsonDocument())); tasks.Add(context.AggregatedCounter.DeleteManyAsync(new BsonDocument())); tasks.Add(context.Counter.DeleteManyAsync(new BsonDocument())); tasks.Add(context.Hash.DeleteManyAsync(new BsonDocument())); tasks.Add(context.Job.DeleteManyAsync(new BsonDocument())); tasks.Add(context.JobParameter.DeleteManyAsync(new BsonDocument())); tasks.Add(context.JobQueue.DeleteManyAsync(new BsonDocument())); tasks.Add(context.List.DeleteManyAsync(new BsonDocument())); tasks.Add(context.Server.DeleteManyAsync(new BsonDocument())); tasks.Add(context.Set.DeleteManyAsync(new BsonDocument())); tasks.Add(context.State.DeleteManyAsync(new BsonDocument())); Task.WaitAll(tasks.ToArray()); } catch (MongoException ex) { throw new InvalidOperationException("Unable to cleanup database.", ex); } } }