private void ShowUsersInChatRequestHandler() { var request = new ShowUsersInChatRequest { ChatName = chatName, Sender = UserName }; responseHandlers.Add(request.Id, ShowUsersInChatResponseHandler); SendMessageAesEncrypted(request, serverKey); while (responseHandlers.ContainsKey(request.Id)) { } }
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}"); } }