private void AddAndPublish(DiagnosticMessage message)
        {
            var identicalMessage = GetStoredDiagnosticMessage(message.ID, message.Fmi);

            if (identicalMessage == null)
            {
                ActiveDiagnosticMessages.Add(message);
            }
            else
            {
                identicalMessage.TimeStamp = DateTime.Now;
            }
            PublishEvent(message);
        }
 /// <summary>
 /// Looks up a stored Diagnostic Record by ID, regardless of ID Type
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public DiagnosticMessage GetStoredDiagnosticMessage(uint id)
 {
     return(ActiveDiagnosticMessages.Find(x => (x.ID == id)));
 }
 /// <summary>
 /// Looks up a stored Diagnostic Record by ID and FMI (regardless of ID Type)
 /// </summary>
 /// <param name="id"></param>
 /// <param name="fmi"></param>
 /// <returns></returns>
 public DiagnosticMessage GetStoredDiagnosticMessage(uint id, byte fmi)
 {
     return(ActiveDiagnosticMessages.Find(x => (x.ID == id) && (x.Fmi == fmi)));
 }