DotNetWorkQueue.Transport.SqlServer.Basic.QueryHandler.BuildDequeueCommand.BuildCommand C# (CSharp) Method

BuildCommand() public method

public BuildCommand ( SqlCommand selectCommand, ReceiveMessageQuery query ) : void
selectCommand System.Data.SqlClient.SqlCommand
query ReceiveMessageQuery
return void
        public void BuildCommand(SqlCommand selectCommand, ReceiveMessageQuery query)
        {
            selectCommand.Transaction = query.Transaction;
            if (query.MessageId != null && query.MessageId.HasValue)
            {
                selectCommand.CommandText =
                     _createDequeueStatement.GetDeQueueCommand(true, query.Routes);
                selectCommand.Parameters.Add("@QueueID", SqlDbType.BigInt);
                selectCommand.Parameters["@QueueID"].Value = query.MessageId.Id.Value;
            }
            else
            {
                selectCommand.CommandText =
                     _createDequeueStatement.GetDeQueueCommand(false, query.Routes);
            }
            if (_options.Value.EnableRoute && query.Routes != null && query.Routes.Count > 0)
            {
                var routeCounter = 1;
                foreach (var route in query.Routes)
                {
                    selectCommand.Parameters.Add("@Route" + routeCounter.ToString(), SqlDbType.VarChar);
                    selectCommand.Parameters["@Route" + routeCounter.ToString()].Value = route;
                    routeCounter++;
                }
            }
        }
    }

Usage Example

 /// <summary>
 /// Handles the specified query.
 /// </summary>
 /// <param name="query">The query.</param>
 /// <returns></returns>
 public async Task <IReceivedMessageInternal> Handle(ReceiveMessageQueryAsync <SqlConnection, SqlTransaction> query)
 {
     using (var selectCommand = query.Connection.CreateCommand())
     {
         _buildDequeueCommand.BuildCommand(selectCommand, query);
         using (var reader = await selectCommand.ExecuteReaderAsync().ConfigureAwait(false))
         {
             return(_readMessage.Read(reader));
         }
     }
 }
All Usage Examples Of DotNetWorkQueue.Transport.SqlServer.Basic.QueryHandler.BuildDequeueCommand::BuildCommand