コード例 #1
0
        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();
        }
コード例 #2
0
        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());
        }