Skip to content

Commit

Permalink
Merge branch 'delete-dup-msg-id' into main
Browse files Browse the repository at this point in the history
telstrapurple#99

* delete-dup-msg-id:
  When deleting messages, match by message id and seq no.
  • Loading branch information
timabell committed Jan 20, 2025
2 parents 58b1e7a + ba86dde commit e034929
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 9 deletions.
12 changes: 7 additions & 5 deletions PurpleExplorer/Models/MessageCollection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,13 @@ public void AddMessages(IEnumerable<Message> messages)
MessageCount = Messages.Count;
}

public void RemoveMessage(string messageId)
public void RemoveMessage(string messageId, long seqNo)
{
Messages.Remove(Messages.Single(msg => msg.MessageId.Equals(messageId)));
var match = (Message msg) => msg.MessageId.Equals(messageId) && msg.SequenceNumber.Equals(seqNo);
Messages.Remove(Messages.Single(match));
MessageCount = Messages.Count;
}

public void ClearMessages()
{
Messages.Clear();
Expand All @@ -66,9 +67,10 @@ public void AddDlqMessages(IEnumerable<Message> dlqMessages)
DlqCount = DlqMessages.Count;
}

public void RemoveDlqMessage(string messageId)
public void RemoveDlqMessage(string messageId, long seqNo)
{
DlqMessages.Remove(DlqMessages.Single(msg => msg.MessageId.Equals(messageId)));
var match = (Message msg) => msg.MessageId.Equals(messageId) && msg.SequenceNumber.Equals(seqNo);
DlqMessages.Remove(DlqMessages.Single(match));
DlqCount = DlqMessages.Count;
}

Expand Down
8 changes: 4 additions & 4 deletions PurpleExplorer/ViewModels/MessageDetailsWindowViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@ await _topicHelper.DeleteMessage(connectionString, Subscription.Topic.Name, Subs
Message, Message.IsDlq);

if(!Message.IsDlq)
Subscription.RemoveMessage(Message.MessageId);
Subscription.RemoveMessage(Message.MessageId, Message.SequenceNumber);
else
Subscription.RemoveDlqMessage(Message.MessageId);
Subscription.RemoveDlqMessage(Message.MessageId, Message.SequenceNumber);
}

if (Queue != null)
Expand All @@ -80,9 +80,9 @@ await _topicHelper.DeleteMessage(connectionString, Subscription.Topic.Name, Subs
await _queueHelper.DeleteMessage(connectionString, Queue.Name, Message, Message.IsDlq);

if(!Message.IsDlq)
Queue.RemoveMessage(Message.MessageId);
Queue.RemoveMessage(Message.MessageId, Message.SequenceNumber);
else
Queue.RemoveDlqMessage(Message.MessageId);
Queue.RemoveDlqMessage(Message.MessageId, Message.SequenceNumber);
}

_loggingService.Log($"Message deleted, MessageId: {Message.MessageId}");
Expand Down

0 comments on commit e034929

Please sign in to comment.