private static void autodetermineId(object message, Type messageType, MessageTrack track) { var property = messageType.GetProperties().FirstOrDefault(x => FubuCore.StringExtensions.EqualsIgnoreCase(x.Name, "Id")); if (property != null) { var rawValue = property.GetValue(message, null); if (rawValue != null) { track.Id = rawValue.ToString(); } } }
private static MessageTrack derive(object message, string id) { var messageType = message.GetType(); var track = new MessageTrack { Description = message.ToString(), FullName = messageType.FullName, Type = messageType.Name, Timestamp = DateTime.UtcNow, Id = id }; if (id.IsEmpty()) { autodetermineId(message, messageType, track); } return(track); }
private static MessageTrack derive(object message, string id) { var messageType = message.GetType(); var track = new MessageTrack { Description = message.ToString(), FullName = messageType.FullName, Type = messageType.Name, Timestamp = DateTime.UtcNow, Id = id }; if (id.IsEmpty()) { autodetermineId(message, messageType, track); } return track; }
public static void Record(MessageTrack track) { _lock.Write(() => { if (track.Status == MessageTrack.Sent) { _sent.Add(track); _outstanding.Add(track); } else { _received.Add(track); _outstanding.Remove(track); } }); _lock.Read(() => { if (!_outstanding.Any()) { EventAggregator.SendMessage(new AllMessagesComplete()); } return(true); }); }
protected bool Equals(MessageTrack other) { return(string.Equals(FullName, other.FullName) && string.Equals(Id, other.Id)); }
protected bool Equals(MessageTrack other) { return string.Equals(FullName, other.FullName) && string.Equals(Id, other.Id); }