private async Task markOwnership(SqlConnection conn, SqlTransaction tx, Envelope[] outgoing) { var cmd = conn.CreateCommand(tx, $"{_mssqlSettings.SchemaName}.uspMarkOutgoingOwnership"); cmd.CommandType = CommandType.StoredProcedure; var list = cmd.Parameters.AddWithValue("IDLIST", SqlServerEnvelopePersistor.BuildIdTable(outgoing)); list.SqlDbType = SqlDbType.Structured; list.TypeName = $"{_mssqlSettings.SchemaName}.EnvelopeIdList"; cmd.Parameters.AddWithValue("owner", _settings.UniqueNodeId).SqlDbType = SqlDbType.Int; await cmd.ExecuteNonQueryAsync(); }
private async Task <Envelope[]> filterExpired(SqlConnection conn, SqlTransaction tx, IEnumerable <Envelope> outgoing) { var expiredMessages = outgoing.Where(x => x.IsExpired()).ToArray(); _logger.DiscardedExpired(expiredMessages); var cmd = conn.CreateCommand(tx, $"{_mssqlSettings.SchemaName}.uspDeleteOutgoingEnvelopes"); cmd.CommandType = CommandType.StoredProcedure; var list = cmd.Parameters.AddWithValue("IDLIST", SqlServerEnvelopePersistor.BuildIdTable(expiredMessages)); list.SqlDbType = SqlDbType.Structured; list.TypeName = $"{_mssqlSettings.SchemaName}.EnvelopeIdList"; await cmd.ExecuteNonQueryAsync(); return(outgoing.Where(x => !x.IsExpired()).ToArray()); }