internal static bool GetConfiguredAuditQueue(ReadOnlySettings settings, out Result result)
{
if (settings.TryGet(out result))
{
return true;
}
var auditConfig = settings.GetConfigSection<AuditConfig>();
string address;
TimeSpan? timeToBeReceived = null;
if (auditConfig == null)
{
address = ReadAuditQueueNameFromRegistry();
}
else
{
var ttbrOverride = auditConfig.OverrideTimeToBeReceived;
if (ttbrOverride > TimeSpan.Zero)
{
timeToBeReceived = ttbrOverride;
}
if (string.IsNullOrWhiteSpace(auditConfig.QueueName))
{
address = ReadAuditQueueNameFromRegistry();
}
else
{
address = auditConfig.QueueName;
}
}
if (address == null)
{
result = null;
return false;
}
result = new Result
{
Address = address,
TimeToBeReceived = timeToBeReceived
};
return true;
}