Exemplo n.º 1
0
        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}");
            }
        }
Exemplo n.º 2
0
        private void ShowUsersInChatResponseHandler(string responseInJson)
        {
            ShowUsersInChatResponse response = JsonSerializer.Deserialize <ShowUsersInChatResponse>(responseInJson);

            if (response.Code != StatusCode.Ok)
            {
                Console.WriteLine(response.Message);
                return;
            }

            Console.WriteLine(Environment.NewLine + $"Users in the chat {chatName}");

            foreach (string name in response.UserNames)
            {
                Console.WriteLine(name);
            }
        }
Exemplo n.º 3
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}");
            }
        }