コード例 #1
0
        private QueueMessagePolicy BuildPolicy(QueueDefinition definition, uint?sendAfterSeconds, uint?expireAfterSeconds)
        {
            QueueMessagePolicy result = null;

            if (definition.MaxRetryBeforeSendingToDeadLetterQueue > 0 && !String.IsNullOrWhiteSpace(definition.DeadLetterQueueName))
            {
                result = result ?? new QueueMessagePolicy();
                result.MaxReceiveCount = (int)definition.MaxRetryBeforeSendingToDeadLetterQueue;
                result.MaxReceiveQueue = definition.DeadLetterQueueName;
            }

            if (expireAfterSeconds.HasValue)
            {
                result = result ?? new QueueMessagePolicy();
                result.ExpirationSeconds = (int)expireAfterSeconds.Value;
            }


            if (sendAfterSeconds.HasValue)
            {
                result = result ?? new QueueMessagePolicy();
                result.DelaySeconds = (int)sendAfterSeconds.Value;
            }


            return(result);
        }
コード例 #2
0
        private IObjectSerialization GetSerializer(QueueDefinition definition)
        {
            if (null == definition)
            {
                throw new ArgumentNullException(nameof(definition));
            }

            if (null == definition.Serializer || !_serviceProvider.TryResolve <IObjectSerialization>(definition.Serializer, out var serializer))
            {
                return(_serviceProvider.Resolve <IObjectSerialization>());
            }

            return(serializer);
        }