Пример #1
0
 private void OnSignal(object sender, Session.SignalEventArgs e)
 => RaiseMessageReceived(e.P2);
        private void OnSignal(object sender, Session.SignalEventArgs e)
        {
            try
            {
                messagesOpentok = JsonConvert.DeserializeObject <MessagesOpentok>(e.P2);

                if (e.P1 == "infoCall")
                {
                    _medicalVideoCall.LoadCallHistoryId(messagesOpentok);
                    _medicalVideoCall.ServiceDate   = messagesOpentok.ServiceDate;
                    _medicalVideoCall.ServiceNumber = messagesOpentok.ServiceNumber;
                }

                if (!String.IsNullOrEmpty(messagesOpentok.from))
                {
                    _medicalVideoCall.VideoCallStatusAsync(messagesOpentok.type, messagesOpentok.info?.doctorName, true);
                }

                if (e.P1.Equals("call") && messagesOpentok.type == 1 && e.P0.Connection.ConnectionId != e.P3.ConnectionId)
                {
                    InvitedConnection = e.P3;
                }

                if (e.P1.Equals("file"))
                {
                    if (messagesOpentok.status == 3)
                    {
                        _medicalVideoCall.EnableUpload = true;
                    }
                    else if (messagesOpentok.status == 2)
                    {
                        _medicalVideoCall.EnableUpload = false;
                    }
                }

                SendMessageAsync($"{{\"msg\":\"OK\",\"type\":1}}", "chat", true);
                SendMessageAsync($"{{\"status\":1}}", "file", true);

                if (e.P1.Equals("chat"))
                {
                    MessageChatViewModel message;
                    if (messagesOpentok.type == 2)
                    {
                        message = new MessageChatViewModel
                        {
                            Text         = messagesOpentok.msg,
                            User         = "******",
                            CompleteName = $"Dr. {_medicalVideoCall.DoctorName}",
                            IsFile       = false
                        };
                        _medicalVideoCall.EnableChat = true;
                        _medicalVideoCall.Messages.Insert(0, message);
                    }
                    else if (messagesOpentok.type == 3)
                    {
                        message = new MessageChatViewModel
                        {
                            UrlFile      = messagesOpentok.UrlFile,
                            Text         = messagesOpentok.msg,
                            User         = "******",
                            CompleteName = $"Dr. {_medicalVideoCall.DoctorName}",
                            IsFile       = true
                        };
                        _medicalVideoCall.EnableChat = true;
                        _medicalVideoCall.Messages.Insert(0, message);
                    }
                }

                RaiseMessageReceived(e.P2);
            }
            catch (Exception ex)
            {
                ServiceLocator.Current.GetInstance <IExceptionService>().RegisterException(ex);
            }
        }