/// <summary> /// stops the cases queue worker /// </summary> public void StopRlmDbWorkersCases() { case_queue.CompleteAdding(); ctSourceCases.Cancel(); dbSavingTime.Stop(); RlmDbLogger.Info("\n" + string.Format("[{0:G}]: Data successfully saved to the database in {1}", DateTime.Now, dbSavingTime.Elapsed), Network.DatabaseName); if (ConfigFile.DropDb) { Task.Delay(5000).Wait(); rlmDb.DropDB(); RlmDbLogger.Info("\n" + string.Format("[{0:G}]: {1} database successfully dropped...\n*** END ***\n", DateTime.Now, Network.DatabaseName), Network.DatabaseName); } // notify parent network that db background workers are done DataPersistenceComplete?.Invoke(); progressUpdater.Stop(); foreach (var item in rlmDb.CaseWorkerQueues) { item.CompleteAdding(); } }
/// <summary> /// stops the cases queue worker /// </summary> public void StopRlmDbWorkersCases() { bcCasesQueue?.CompleteAdding(); if (ConfigFile.DropDb) { Thread.Sleep(5000); rlmDb.DropDB(); RlmDbLogger.Info("\n" + string.Format("[{0:G}]: {1} database successfully dropped...\n*** END ***\n", DateTime.Now, Network.DatabaseName), Network.DatabaseName); } progressUpdater.Stop(); if (rlmDb.CaseWorkerQueues != null) { foreach (var item in rlmDb.CaseWorkerQueues) { item.WorkerQueues.CompleteAdding(); } } }