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);
                }
            }
        }
Exemple #2
0
        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);
                }
            }
        }