BlueCollar.SQLiteRepository.GetQueued C# (CSharp) Метод

GetQueued() приватный Метод

private GetQueued ( string applicationName, QueueNameFilters queueFilters, System.DateTime queuedBefore, IDbTransaction transaction ) : QueueRecord
applicationName string
queueFilters QueueNameFilters
queuedBefore System.DateTime
transaction IDbTransaction
Результат QueueRecord
        public QueueRecord GetQueued(string applicationName, QueueNameFilters queueFilters, DateTime queuedBefore, IDbTransaction transaction)
        {
            StringBuilder sb = new StringBuilder(
            @"SELECT *
            FROM [BlueCollarQueue]
            WHERE
            [ApplicationName] = @ApplicationName
            AND [QueuedOn] <= @QueuedBefore");

            if (!queueFilters.IncludesAllQueues)
            {
                if (queueFilters.Include.Count() > 0)
                {
                    sb.Append("\n    AND [QueueName] IN @IncludeQueueNames");
                }

                if (queueFilters.Exclude.Count() > 0)
                {
                    sb.Append("\n    AND");
                    sb.Append("\n    (");
                    sb.Append("\n        [QueueName] IS NULL");
                    sb.Append("\n        OR [QueueName] NOT IN @ExcludeQueueNames");
                    sb.Append("\n    )");
                }
            }

            sb.Append("\n");
            sb.Append(
            @"ORDER BY [QueuedOn] ASC
            LIMIT 1;");

            return this.connection.Query<QueueRecord>(
                sb.ToString(),
                new
                {
                    ApplicationName = applicationName,
                    ExcludeQueueNames = queueFilters.Exclude.ToArray(),
                    IncludeQueueNames = queueFilters.Include.ToArray(),
                    QueuedBefore = queuedBefore
                },
                transaction,
                true,
                null,
                null).FirstOrDefault();
        }