private void OnFilteredLogsReceived(object sender, FilteredLogsReceivedEventArgs e)
 {
     FilteredLogsReceived?.Invoke(this, e);
 }
Example #2
0
        private void OnMessage(object sender, MessageEventArgs e)
        {
            if (!e.IsText)
            {
                return;
            }

            var container = JsonConvert.DeserializeObject <MessageContainer>(e.Data);

            switch (container.Identifier)
            {
            case nameof(ConnectionResponse):
                var connectionResponse = ((JObject)container.Payload).ToObject(typeof(ConnectionResponse)) as ConnectionResponse;
                if (connectionResponse.Result == ResultCode.Failure)
                {
                    Username = string.Empty;
                    string source = string.Empty;
                    ErrorReceived?.Invoke(this, new ErrorReceivedEventArgs(connectionResponse.Reason, connectionResponse.Date));
                }
                if (!String.IsNullOrEmpty(Username))
                {
                    ConnectionStateChanged?.Invoke(this, new ConnectionStateChangedEventArgs(Username, true, DateTime.Now, connectionResponse.ActiveUsers));
                }
                break;

            case nameof(ConnectionBroadcast):
                var connectionBroadcast = ((JObject)container.Payload).ToObject(typeof(ConnectionBroadcast)) as ConnectionBroadcast;
                if (connectionBroadcast.Username != Username)
                {
                    ConnectionReceived?.Invoke(this, new ConnectionReceivedEventArgs(connectionBroadcast.Username, connectionBroadcast.IsConnected, connectionBroadcast.Date));
                }
                break;

            case nameof(MessageBroadcast):
                var messageBroadcast = ((JObject)container.Payload).ToObject(typeof(MessageBroadcast)) as MessageBroadcast;
                MessageReceived?.Invoke(this, new MessageReceivedEventArgs(messageBroadcast.Source, messageBroadcast.Target, messageBroadcast.Message, messageBroadcast.Groupname, messageBroadcast.Date));
                break;

            case nameof(UserListResponse):
                var userListResponse = ((JObject)container.Payload).ToObject(typeof(UserListResponse)) as UserListResponse;
                UsersReceived?.Invoke(this, new UsersReceivedEventArgs(userListResponse.UserList));
                break;

            case nameof(MessageHistoryResponse):
                var messageHistoryResponse = ((JObject)container.Payload).ToObject(typeof(MessageHistoryResponse)) as MessageHistoryResponse;
                MessageHistoryReceived?.Invoke(this, new MessageHistoryReceivedEventArgs(messageHistoryResponse.GroupMessages));
                break;

            case nameof(FiltrationResponse):
                var filterResponse = ((JObject)container.Payload).ToObject(typeof(FiltrationResponse)) as FiltrationResponse;
                FilteredLogsReceived?.Invoke(this, new FilteredLogsReceivedEventArgs(filterResponse.FilteredLogs));
                break;

            case nameof(GroupListResponse):
                var groupsListResponse = ((JObject)container.Payload).ToObject(typeof(GroupListResponse)) as GroupListResponse;
                GroupsReceived?.Invoke(this, new GroupsReceivedEventArgs(groupsListResponse.Groups));
                break;

            case nameof(GroupBroadcast):
                var groupBroadcast = ((JObject)container.Payload).ToObject(typeof(GroupBroadcast)) as GroupBroadcast;
                GroupsReceived?.Invoke(this, new GroupsReceivedEventArgs(groupBroadcast.Groupname));
                break;
            }
        }