public bool ExecuteConditionalAction() { // first ping var msgPing = ChatMessageFactory.CreateDefault(Command.REQ_PING, Participant.CLIENT); var dealer = (DealerSocket)messageBroker.Socket; messageBroker.Client_SendMsg(dealer, msgPing); ConsoleUI.ShowTextLine(Phrase.AskUsername); return(true); }
public bool ExecuteConditionalAction() { // validating exit (to broadcast) if (chatMessage.Validate(validExit).IsValid) { UserSession chatUserReg = new UserSession(rawAddress.Replace("\0", "")); var router = (RouterSocket)messageBroker.Socket; var msgBroadcastExit = ChatMessageFactory.CreateDefault(Command.BROADCAST_END_SESSION, Participant.SERVER, chatUserReg); messageBroker.Server_BroadcastMessage(messageBroker.ChatRoom.ChatUserList, router, rawAddress, msgBroadcastExit); return(true); } return(false); }
public bool ExecuteConditionalAction() { // last ping and good bye! var msgBye = ChatMessageFactory.CreateDefault(Command.REQ_END_SESSION, Participant.CLIENT, this.messageBroker.ChatRoom.UserSession); var dealer = (DealerSocket)messageBroker.Socket; messageBroker.Client_SendMsg(dealer, msgBye); int numChars = this.messageBroker.ChatRoom.UserSession.HasUserName() ? this.messageBroker.ChatRoom.UserSession.UserName.Length + 3 : 10; for (int i = 0; i < numChars; i++) { // backspace Console.Write("\b"); } ConsoleUI.ShowTextLine(Phrase.EndSessionUsername); return(true); }
private void ConsoleLoop() { ConsoleUI.ShowText(Phrase.UsernamePrefix, new[] { userSession.UserName }); string msgChat = Console.ReadLine(); while (msgChat != "/exit") { var chatToServer = ChatMessageFactory.CreateDefault(Command.REQ_CHAT, Participant.CLIENT, userSession); chatToServer.Content = msgChat; broker.Client_SendMsg(dealer, chatToServer); ConsoleUI.ShowText(Phrase.UsernamePrefix, new[] { userSession.UserName }); msgChat = Console.ReadLine(); } // exit notification new CommandsInvoker(new CmdNotifyExitClient(broker)).Invoke(); Thread.Sleep(2000); }
public bool ExecuteConditionalAction() { // New user registration if (chatMessage.Validate(_validRegistration).IsValid) { UserSession chatUserReg = new UserSession(rawAddress.Replace("\0", "")); int ix = messageBroker.ChatRoom.ChatUserList.IndexOf(rawAddress); chatUserReg.SetUserName($"{chatMessage.UserName}{ix}"); var msgResponseRegistration = ChatMessageFactory.CreateDefault(Command.REQ_REGISTER_USERNAME, Participant.SERVER, chatUserReg); var router = (RouterSocket)messageBroker.Socket; messageBroker.Server_SendReply(router, new NetMQFrame(rawAddress), msgResponseRegistration); var msgBroadcastNewUser = ChatMessageFactory.CreateDefault(Command.BROADCAST_NEW_USER, Participant.SERVER, chatUserReg); messageBroker.Server_BroadcastMessage(messageBroker.ChatRoom.ChatUserList, router, rawAddress, msgBroadcastNewUser); return(true); } return(false); }
public bool ExecuteConditionalAction() { var regUserCmd = ChatMessageFactory.CreateDefault(Command.REQ_REGISTER_USERNAME, Participant.CLIENT, messageBroker.ChatRoom.UserSession); ConsoleUI.ShowText(Phrase.GuestPrefix); regUserCmd.UserName = Console.ReadLine(); while (!regUserCmd.Validate(validUserName).IsValid) { ConsoleUI.ShowTextLine(Phrase.InvalidUsernameFormat); ConsoleUI.ShowText(Phrase.GuestPrefix); regUserCmd.UserName = Console.ReadLine().ToLower(); } IEnumerable <string> errors; if (!regUserCmd.TryValidate(validRegistration, out errors)) { ThrowExHelper.ThrowException($"ERROR:Invalid registration, ChatMessage:{regUserCmd}"); } var dealer = (DealerSocket)messageBroker.Socket; //messageBroker.Client_SendMsg(messageBroker.ChatRoom.UserSession.StrUserGuid, dealer, regUserCmd); messageBroker.Client_SendMsg(dealer, regUserCmd); // waiting the username update from server.. while (string.IsNullOrWhiteSpace(messageBroker.ChatRoom.UserSession.UserName)) { Thread.Sleep(100); } ConsoleUI.ShowTextLine(Phrase.ThankYouNewUsername, new[] { messageBroker.ChatRoom.UserSession.UserName }); return(true); }