NServiceBus.MsmqTransportInfrastructure.ConfigureSendInfrastructure C# (CSharp) Method

ConfigureSendInfrastructure() public method

public ConfigureSendInfrastructure ( ) : TransportSendInfrastructure
return TransportSendInfrastructure
        public override TransportSendInfrastructure ConfigureSendInfrastructure()
        {
            new CheckMachineNameForComplianceWithDtcLimitation().Check();

            Func<IReadOnlyDictionary<string, string>, string> getMessageLabel;
            settings.TryGet("Msmq.GetMessageLabel", out getMessageLabel);

            Func<IReadOnlyDictionary<string, string>, string> messageLabelGenerator;
            if (!settings.TryGet("msmqLabelGenerator", out messageLabelGenerator))
            {
                messageLabelGenerator = headers => string.Empty;
            }

            var msmqSettings = settings.Get<MsmqSettings>();

            return new TransportSendInfrastructure(
                () => new MsmqMessageDispatcher(msmqSettings, messageLabelGenerator),
                () =>
                {
                    var bindings = settings.Get<QueueBindings>();

                    foreach (var address in bindings.SendingAddresses)
                    {
                        QueuePermissions.CheckQueue(address);
                    }

                    var result = new MsmqTimeToBeReceivedOverrideCheck(settings).CheckTimeToBeReceivedOverrides();
                    return Task.FromResult(result);
                });
        }