private void CircuitConnection_MessageReceived(object sender, Models.CircuitEvent e) { if (e.EventName == Models.CircuitEventName.ChatReceived) { var deviceId = (string)e.Params[0]; if (deviceId == Session.DeviceId) { var deviceName = (string)e.Params[1]; var message = (string)e.Params[2]; var disconnected = (bool)e.Params[3]; var session = AppState.DevicesFrameChatSessions.Find(x => x.DeviceId == deviceId); if (disconnected) { session.ChatHistory.Add(new ChatHistoryItem() { Message = $"{Session.DeviceName} disconnected.", Origin = ChatHistoryItemOrigin.System }); } else { session.ChatHistory.Add(new ChatHistoryItem() { Message = message, Origin = ChatHistoryItemOrigin.Device }); } if (!session.IsExpanded) { session.MissedChats++; } InvokeAsync(StateHasChanged); JsInterop.ScrollToEnd(_chatMessagesWindow); } } }
private void CircuitConnection_MessageReceived(object sender, Models.CircuitEvent e) { if (e.EventName == Models.CircuitEventName.ChatReceived) { var deviceId = (string)e.Params[0]; if (!AppState.DevicesFrameChatSessions.Exists(x => x.DeviceId == deviceId)) { var deviceName = (string)e.Params[1]; var message = (string)e.Params[2]; var disconnected = (bool)e.Params[3]; if (disconnected) { return; } var newChat = new ChatSession() { DeviceId = deviceId, DeviceName = deviceName, IsExpanded = true }; newChat.ChatHistory.Add(new ChatHistoryItem() { Message = message, Origin = ChatHistoryItemOrigin.Device }); AppState.DevicesFrameChatSessions.Add(newChat); InvokeAsync(StateHasChanged); } } }