Example #1
0
        private void ShowUsersInChatRequestHandler()
        {
            var request = new ShowUsersInChatRequest
            {
                ChatName = chatName,
                Sender   = UserName
            };

            responseHandlers.Add(request.Id, ShowUsersInChatResponseHandler);
            SendMessageAesEncrypted(request, serverKey);

            while (responseHandlers.ContainsKey(request.Id))
            {
            }
        }
Example #2
0
        private void ShowUsersInChatHandler(string requestInJson)
        {
            ShowUsersInChatRequest request = JsonSerializer.Deserialize <ShowUsersInChatRequest>(requestInJson);

            var response = new ShowUsersInChatResponse
            {
                RequestId = request.Id
            };

            try
            {
                IChat chat = server.ChatRepository.GetChat(request.ChatName);

                if (chat == null)
                {
                    throw new ChatNotFoundException(request.ChatName);
                }

                IReadOnlyCollection <string> userNames = chat.GetUsers().Select(user => user.Name).ToArray();

                response.UserNames = userNames;
                response.Code      = StatusCode.Ok;

                SendMessageAesEncrypted(response, ClientAesKey);
            }
            catch (NedoGramException nedoGramException)
            {
                response.Message = nedoGramException.Message;
                response.Code    = StatusCode.ClientError;

                SendMessageAesEncrypted(response, ClientAesKey);

                Console.WriteLine($"{request.Action}: {request.Sender} - {nedoGramException.Message}");
            }
            catch (Exception systemException)
            {
                response.Message = "Internal error";
                response.Code    = StatusCode.ServerError;

                SendMessageAesEncrypted(response, ClientAesKey);

                Console.WriteLine($"{request.Action}: {request.Sender} - {systemException.Message}");
            }
        }