Ejemplo n.º 1
0
        public void Unsubscribe()
        {
            foreach (var a in Authorized.GetInvocationList())
            {
                Authorized -= (Action)a;
            }

            foreach (var a in RoomCreated.GetInvocationList())
            {
                RoomCreated -= (SocketMessage <RoomDTO>)a;
            }

            foreach (var a in NewMessageReceived.GetInvocationList())
            {
                NewMessageReceived -= (SocketMessage <MessageDTO>)a;
            }

            foreach (var a in RoomParticipated.GetInvocationList())
            {
                RoomParticipated -= (SocketMessage <RoomParticipatedDTO>)a;
            }

            foreach (var a in RoomLeft.GetInvocationList())
            {
                RoomLeft -= (SocketMessage <RoomParticipatedDTO>)a;
            }

            foreach (var a in FileStatusChanged.GetInvocationList())
            {
                FileStatusChanged -= (SocketMessage <FileStatusDTO>)a;
            }
        }
Ejemplo n.º 2
0
        private void HandleSocketMessage(object sender, MessageEventArgs e)
        {
            var message = e.Data;

            try
            {
                var baseMessage = JsonConvert.DeserializeObject <BaseMessage>(message);
                if (baseMessage.Type == SocketMessageTypes.SuccessfullyAuthorized)
                {
                    Authorized?.Invoke();
                }
                else if (baseMessage.Type == SocketMessageTypes.RoomCreated)
                {
                    var response = JsonConvert.DeserializeObject <SocketResponseDTO <RoomDTO> >(message);
                    RoomCreated?.Invoke(response);
                }
                else if (baseMessage.Type == SocketMessageTypes.NewMessage)
                {
                    var response = JsonConvert.DeserializeObject <SocketResponseDTO <MessageDTO> >(message);
                    NewMessageReceived?.Invoke(response);
                }
                else if (baseMessage.Type == SocketMessageTypes.RoomParticipated)
                {
                    var response = JsonConvert.DeserializeObject <SocketResponseDTO <RoomParticipatedDTO> >(message);
                    RoomParticipated?.Invoke(response);
                }
                else if (baseMessage.Type == SocketMessageTypes.RoomLeft)
                {
                    var response = JsonConvert.DeserializeObject <SocketResponseDTO <RoomParticipatedDTO> >(message);
                    RoomLeft?.Invoke(response);
                }
                else if (baseMessage.Type == SocketMessageTypes.FileStatusChanged)
                {
                    var response = JsonConvert.DeserializeObject <SocketResponseDTO <FileStatusDTO> >(message);
                    FileStatusChanged?.Invoke(response);
                }
            }
            catch (Exception ex)
            {
                Failed?.Invoke(ex.Message);
            }
        }