void ClearState() { ErrorMessage = ""; DiagramItems.Clear(); HeaderItems.Clear(); NotifyOfPropertyChange(nameof(HasItems)); }
public void Handle(ScrollDiagramItemIntoView @event) { var diagramItem = DiagramItems.OfType <Arrow>() .FirstOrDefault(a => a.SelectedMessage.Id == @event.Message.Id); if (diagramItem != null) { view?.diagram.BringIntoView(diagramItem); } }
void RefreshSelection() { foreach (var item in DiagramItems.OfType <Handler>()) { item.IsFocused = false; } foreach (var item in DiagramItems.OfType <Arrow>()) { if (string.Equals(item.SelectedMessage.Id, Selection.SelectedMessage.Id, StringComparison.InvariantCultureIgnoreCase)) { item.IsFocused = true; continue; } item.IsFocused = false; } }
void CreateElements(List <StoredMessage> messages) { var modelCreator = new ModelCreator(messages, this); var endpoints = modelCreator.Endpoints; var handlers = modelCreator.Handlers; var routes = modelCreator.Routes; ClearState(); DiagramItems.AddRange(endpoints); DiagramItems.AddRange(endpoints.Select(e => e.Timeline)); DiagramItems.AddRange(handlers); DiagramItems.AddRange(handlers.SelectMany(h => h.Out)); DiagramItems.AddRange(routes); HeaderItems.AddRange(endpoints); NotifyOfPropertyChange(nameof(HasItems)); }
public async Task Handle(SelectedMessageChanged message) { try { var conversationId = Selection?.SelectedMessage?.ConversationId; if (string.IsNullOrEmpty(conversationId)) { ClearState(); return; } if (loadedConversationId == conversationId && DiagramItems.Any()) //If we've already displayed this diagram { RefreshSelection(); return; } var messages = (await serviceControl.GetConversationById(conversationId)).ToList(); if (messages.Count == 0) { LogTo.Warning("No messages found for conversation id {0}", conversationId); ClearState(); return; } CreateElements(messages); loadedConversationId = conversationId; RefreshSelection(); } catch (Exception ex) { ClearState(); ErrorMessage = $"There was an error processing the message data."; ReportPackage = new ReportMessageCommand.ReportMessagePackage(ex, Selection?.SelectedMessage); } }