diff --git a/src/ServiceControl.Audit.Persistence.RavenDB/Indexes/MessagesViewIndex.cs b/src/ServiceControl.Audit.Persistence.RavenDB/Indexes/MessagesViewIndex.cs index 6e348f08c4..0bef33c8fc 100644 --- a/src/ServiceControl.Audit.Persistence.RavenDB/Indexes/MessagesViewIndex.cs +++ b/src/ServiceControl.Audit.Persistence.RavenDB/Indexes/MessagesViewIndex.cs @@ -12,23 +12,24 @@ public MessagesViewIndex() { Map = messages => from message in messages + let metadata = message.MessageMetadata select new SortAndFilterOptions { - MessageId = (string)message.MessageMetadata["MessageId"], - MessageType = (string)message.MessageMetadata["MessageType"], - IsSystemMessage = (bool)message.MessageMetadata["IsSystemMessage"], - Status = (bool)message.MessageMetadata["IsRetried"] ? MessageStatus.ResolvedSuccessfully : MessageStatus.Successful, - TimeSent = (DateTime)message.MessageMetadata["TimeSent"], + MessageId = (string)metadata["MessageId"], + MessageType = (string)metadata["MessageType"], + IsSystemMessage = (bool)metadata["IsSystemMessage"], + Status = (bool)metadata["IsRetried"] ? MessageStatus.ResolvedSuccessfully : MessageStatus.Successful, + TimeSent = (DateTime)metadata["TimeSent"], ProcessedAt = message.ProcessedAt, - ReceivingEndpointName = ((EndpointDetails)message.MessageMetadata["ReceivingEndpoint"]).Name, - CriticalTime = (TimeSpan?)message.MessageMetadata["CriticalTime"], - ProcessingTime = (TimeSpan?)message.MessageMetadata["ProcessingTime"], - DeliveryTime = (TimeSpan?)message.MessageMetadata["DeliveryTime"], - Query = message.MessageMetadata.Select(_ => _.Value.ToString()).Union(new[] - { - string.Join(" ", message.Headers.Select(x => x.Value)) - }).ToArray(), - ConversationId = (string)message.MessageMetadata["ConversationId"] + ReceivingEndpointName = ((EndpointDetails)metadata["ReceivingEndpoint"]).Name, + CriticalTime = (TimeSpan?)metadata["CriticalTime"], + ProcessingTime = (TimeSpan?)metadata["ProcessingTime"], + DeliveryTime = (TimeSpan?)metadata["DeliveryTime"], + Query = new[] { + string.Join(' ', message.Headers.Values), + string.Join(' ', metadata.Values.Select(v => v.ToString() ?? string.Empty)) + }, + ConversationId = (string)metadata["ConversationId"] }; Index(x => x.Query, FieldIndexing.Search); diff --git a/src/ServiceControl.Persistence.RavenDB/Indexes/MessagesViewIndex.cs b/src/ServiceControl.Persistence.RavenDB/Indexes/MessagesViewIndex.cs index aff8883bc6..93e153c15e 100644 --- a/src/ServiceControl.Persistence.RavenDB/Indexes/MessagesViewIndex.cs +++ b/src/ServiceControl.Persistence.RavenDB/Indexes/MessagesViewIndex.cs @@ -14,11 +14,12 @@ public MessagesViewIndex() from message in messages let last = message.ProcessingAttempts.Last() + let metadata = last.MessageMetadata select new SortAndFilterOptions { MessageId = last.MessageId, - MessageType = (string)last.MessageMetadata["MessageType"], - IsSystemMessage = (bool)last.MessageMetadata["IsSystemMessage"], + MessageType = (string)metadata["MessageType"], + IsSystemMessage = (bool)metadata["IsSystemMessage"], Status = message.Status == FailedMessageStatus.Archived ? MessageStatus.ArchivedFailure : message.Status == FailedMessageStatus.Resolved @@ -26,14 +27,14 @@ from message in messages : message.ProcessingAttempts.Count == 1 ? MessageStatus.Failed : MessageStatus.RepeatedFailure, - TimeSent = (DateTime)last.MessageMetadata["TimeSent"], + TimeSent = (DateTime)metadata["TimeSent"], ProcessedAt = last.AttemptedAt, - ReceivingEndpointName = ((EndpointDetails)last.MessageMetadata["ReceivingEndpoint"]).Name, - CriticalTime = (TimeSpan?)last.MessageMetadata["CriticalTime"], - ProcessingTime = (TimeSpan?)last.MessageMetadata["ProcessingTime"], - DeliveryTime = (TimeSpan?)last.MessageMetadata["DeliveryTime"], - Query = last.MessageMetadata.Select(_ => _.Value.ToString()).Union(new[] { string.Join(" ", last.Headers.Select(x => x.Value)) }).ToArray(), - ConversationId = (string)last.MessageMetadata["ConversationId"] + ReceivingEndpointName = ((EndpointDetails)metadata["ReceivingEndpoint"]).Name, + CriticalTime = (TimeSpan?)metadata["CriticalTime"], + ProcessingTime = (TimeSpan?)metadata["ProcessingTime"], + DeliveryTime = (TimeSpan?)metadata["DeliveryTime"], + Query = metadata.Select(_ => _.Value.ToString()).Union(new[] { string.Join(" ", last.Headers.Select(x => x.Value)) }).ToArray(), + ConversationId = (string)metadata["ConversationId"] }; // StandardAnalyzer is the default analyzer, so no follow-up Analyze() call is needed here