Пример #1
0
 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();
         }
     }
 }
Пример #2
0
        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();
                }
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        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;
        }
Пример #5
0
        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);
            });
        }
Пример #6
0
 protected bool Equals(MessageTrack other)
 {
     return(string.Equals(FullName, other.FullName) && string.Equals(Id, other.Id));
 }
Пример #7
0
 protected bool Equals(MessageTrack other)
 {
     return string.Equals(FullName, other.FullName) && string.Equals(Id, other.Id);
 }