private void VerifyCount(long messageCount, string route) { var connScope = _scope.GetDisposable <LiteDbConnectionManager>(); if (connScope == null) { using (var conn = new LiteDatabase(_connection.ConnectionString)) { if (string.IsNullOrEmpty(route)) { var col = conn.GetCollection <Schema.MetaDataTable>(_tableNameHelper.MetaDataName); Assert.Equal(messageCount, col.Count()); } else { var col = conn.GetCollection <Schema.MetaDataTable>(_tableNameHelper.MetaDataName); var results = col.Query() .Where(x => x.Route.Equals(route)) .ToList(); Assert.Equal(messageCount, results.Count); } } } else { } }
public static void SetError(QueueConnection queueConnection, ICreationScope scope) { var connection = new LiteDbConnectionInformation(queueConnection); var helper = new TableNameHelper(connection); var connScope = scope.GetDisposable <LiteDbConnectionManager>(); if (connScope == null) { using (var conn = new LiteDatabase(connection.ConnectionString)) { var col = conn.GetCollection <Schema.StatusTable>(helper.StatusName); var results = col.Query() .ToList(); foreach (var result in results) { result.Status = QueueStatuses.Error; col.Update(result); } } } else { using (var conn = connScope.GetDatabase()) { var col = conn.Database.GetCollection <Schema.StatusTable>(helper.StatusName); var results = col.Query() .ToList(); foreach (var result in results) { result.Status = QueueStatuses.Error; col.Update(result); } } } }
public void Verify(long messageCount, int errorCount) { var connScope = _scope.GetDisposable <LiteDbConnectionManager>(); if (connScope == null) { using (var conn = new LiteDatabase(_connection.ConnectionString)) { var col = conn.GetCollection <Schema.MetaDataErrorsTable>(_tableNameHelper.MetaDataErrorsName); Assert.Equal(messageCount, col.Count()); //only check the two below tables if the error count is > 0. //error count of 0 means we are processing poison messages //poison messages go right into the error queue, without updating the tracking table if (errorCount > 0) { var col2 = conn.GetCollection <Schema.ErrorTrackingTable>(_tableNameHelper.ErrorTrackingName); Assert.Equal(messageCount, col2.Count()); var results = col2.Query() .ToList(); foreach (var record in results) { Assert.Equal(errorCount, record.RetryCount); } } } } else { using (var conn = connScope.GetDatabase()) { var col = conn.Database.GetCollection <Schema.MetaDataErrorsTable>(_tableNameHelper.MetaDataErrorsName); Assert.Equal(messageCount, col.Count()); //only check the two below tables if the error count is > 0. //error count of 0 means we are processing poison messages //poison messages go right into the error queue, without updating the tracking table if (errorCount > 0) { var col2 = conn.Database.GetCollection <Schema.ErrorTrackingTable>(_tableNameHelper.ErrorTrackingName); Assert.Equal(messageCount, col2.Count()); var results = col2.Query() .ToList(); foreach (var record in results) { Assert.Equal(errorCount, record.RetryCount); } } } } }
/// <summary> /// Initializes a new instance of the <see cref="LiteDbConnectionManager"/> class. /// </summary> /// <param name="connectionInformation">The connection information.</param> /// <param name="scope">The scope.</param> public LiteDbConnectionManager(IConnectionInformation connectionInformation, ICreationScope scope) { Guard.NotNull(() => connectionInformation, connectionInformation); Guard.NotNull(() => scope, scope); _connectionInformation = connectionInformation; var builder = new LiteDB.ConnectionString(_connectionInformation.ConnectionString); _shared = builder.Connection == ConnectionType.Shared; var existingScopeConnection = scope.GetDisposable <LiteDbConnectionManager>(); if (existingScopeConnection != null) { _db = existingScopeConnection.GetDatabase().Database; _shouldDisposeDirectConnection = false; } else { _shouldDisposeDirectConnection = true; } }
public static void Verify(QueueConnection queueConnection, long messageCount, ICreationScope scope) { var connection = new LiteDbConnectionInformation(queueConnection); var helper = new TableNameHelper(connection); var connScope = scope.GetDisposable <LiteDbConnectionManager>(); if (connScope == null) { using (var conn = new LiteDatabase(connection.ConnectionString)) { var col = conn.GetCollection <Schema.MetaDataTable>(helper.MetaDataName); Assert.Equal(messageCount, col.Count()); } } else { using (var conn = connScope.GetDatabase()) { var col = conn.Database.GetCollection <Schema.MetaDataTable>(helper.MetaDataName); Assert.Equal(messageCount, col.Count()); } } }
private void AllTablesRecordCount(int recordCount, bool ignoreMeta, bool ignoreErrorTracking) { var connScope = _scope.GetDisposable <LiteDbConnectionManager>(); if (connScope == null) { using (var conn = new LiteDatabase(_connection.ConnectionString)) { if (!ignoreMeta) { var col = conn.GetCollection <Schema.MetaDataTable>(_tableNameHelper.MetaDataName); Assert.Equal(recordCount, col.Count()); } if (!ignoreErrorTracking) { var col = conn.GetCollection <Schema.ErrorTrackingTable>(_tableNameHelper.ErrorTrackingName); Assert.Equal(recordCount, col.Count()); } var col2 = conn.GetCollection <Schema.MetaDataErrorsTable>(_tableNameHelper.MetaDataErrorsName); Assert.Equal(recordCount, col2.Count()); var col3 = conn.GetCollection <Schema.QueueTable>(_tableNameHelper.QueueName); Assert.Equal(recordCount, col3.Count()); if (_options.EnableStatusTable) { var col = conn.GetCollection <Schema.StatusTable>(_tableNameHelper.StatusName); Assert.Equal(recordCount, col.Count()); } } } else { using (var conn = connScope.GetDatabase()) { if (!ignoreMeta) { var col = conn.Database.GetCollection <Schema.MetaDataTable>(_tableNameHelper.MetaDataName); Assert.Equal(recordCount, col.Count()); } if (!ignoreErrorTracking) { var col = conn.Database.GetCollection <Schema.ErrorTrackingTable>(_tableNameHelper.ErrorTrackingName); Assert.Equal(recordCount, col.Count()); } var col2 = conn.Database.GetCollection <Schema.MetaDataErrorsTable>(_tableNameHelper.MetaDataErrorsName); Assert.Equal(recordCount, col2.Count()); var col3 = conn.Database.GetCollection <Schema.QueueTable>(_tableNameHelper.QueueName); Assert.Equal(recordCount, col3.Count()); if (_options.EnableStatusTable) { var col = conn.Database.GetCollection <Schema.StatusTable>(_tableNameHelper.StatusName); Assert.Equal(recordCount, col.Count()); } } } }