Compare commits

...

2 Commits

2 changed files with 51 additions and 11 deletions

View File

@ -34,37 +34,64 @@ namespace bsmd.database
public static void Enqueue(Message.NSWProvider provider, Message message)
{
// Validate inputs
if (message == null)
{
_log.ErrorFormat("Enqueue called with null message for provider {0}", provider);
return;
}
if (!message.Id.HasValue)
{
_log.ErrorFormat("Enqueue called with message that has no Id assigned for provider {0}", provider);
return;
}
if (!_telemetry.ContainsKey(provider))
_telemetry.Add(provider, new Dictionary<Guid, MessageTelemetry>());
if (_telemetry[provider].ContainsKey(message.Id.Value))
Guid messageId = message.Id.Value;
if (_telemetry[provider].ContainsKey(messageId))
{
_telemetry[provider][message.Id.Value].NumTries++;
_telemetry[provider][messageId].NumTries++;
}
else
{
MessageTelemetry mt = new MessageTelemetry();
mt.SendDate = DateTime.Now;
mt.NumTries = 1;
_telemetry[provider][message.Id.Value] = mt;
_telemetry[provider][messageId] = mt;
}
}
public static void Dequeue(Message.NSWProvider provider, Message message)
{
if (message == null)
{
_log.ErrorFormat("Dequeue called with null message for provider {0}", provider);
return;
}
if (!message.Id.HasValue)
{
_log.ErrorFormat("Dequeue called with message that has no Id assigned for provider {0}", provider);
return;
}
if (_telemetry.ContainsKey(provider))
{
if (_telemetry[provider].ContainsKey(message.Id.Value))
Guid messageId = message.Id.Value;
if (_telemetry[provider].ContainsKey(messageId))
{
MessageTelemetry mt = _telemetry[provider][message.Id.Value];
_log.InfoFormat("[{0,10}][{1,8}][{2:00000}][{3:00}] ",provider, message.MessageNotificationClassDisplay, (DateTime.Now - mt.SendDate).TotalSeconds, mt.NumTries);
_telemetry[provider].Remove(message.Id.Value);
MessageTelemetry mt = _telemetry[provider][messageId];
_log.InfoFormat("[{0,10}][{1,8}][{2:00000}][{3:00}] ", provider, message.MessageNotificationClassDisplay, (DateTime.Now - mt.SendDate).TotalSeconds, mt.NumTries);
_telemetry[provider].Remove(messageId);
}
else
{
// this can happen if the service gets re-started and not all sent messages have yet been received
_log.WarnFormat("trying to deque a message from telemetry that we don't know about. Provider: {0} MessageId: {1}",
provider.ToString(), message.Id.Value);
provider.ToString(), messageId);
}
}
}

View File

@ -85,6 +85,18 @@ namespace bsmd.hisnord
bool? retval;
try
{
if (core == null)
{
_log.ErrorFormat("CreateSendFile called with null core");
return false;
}
if (!core.Id.HasValue)
{
_log.ErrorFormat("CreateSendFile called with core that has no Id assigned");
return false;
}
nsw _nsw = new nsw();
_nsw.conveyance = new conveyance();
@ -121,8 +133,9 @@ namespace bsmd.hisnord
_nsw.conveyance.owner_sender.contact.phone = rp.Phone;
_nsw.conveyance.owner_sender.contact.fax = rp.Fax;
_nsw.document_reference = core.Id.Value.ToString();
_nsw.conveyance.code = core.Id.ToString();
Guid coreId = core.Id.Value;
_nsw.document_reference = coreId.ToString();
_nsw.conveyance.code = coreId.ToString();
if (!core.VisitId.IsNullOrEmpty())
{