private void GotoMainMenuRequestHandler() { var request = new GoToMainMenuRequest(); request.Sender = UserName; responseHandlers.Add(request.Id, GotoMainMenuResponseHandler); SendMessageAesEncrypted(request, serverKey); while (responseHandlers.ContainsKey(request.Id)) { } }
private void GoToMainMenuHandler(string requestInJson) { GoToMainMenuRequest request = JsonSerializer.Deserialize <GoToMainMenuRequest>(requestInJson); var response = new ShowUsersInChatResponse { RequestId = request.Id }; try { User user = server.UserRepository.GetByName(request.Sender); if (user == null) { throw new UserNotFoundException(request.Sender); } if (user.State != UserState.InChat && user.State != UserState.Authorized) { throw new NotEnoughRightsException(request.Sender, user.State, ClientAction.GoToMainMenu); } user.CurrentChat.RemoveUser(user.Name); user.CurrentChat = null; user.State = UserState.Authorized; 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}"); } }