protected virtual void OnClientSendMessage(string cMessage) //brodcasted messages { ClientSendMessage?.Invoke(this, new ClientEventArgs() { clientMessageToSend = cMessage }); //TODO all Send message }
protected virtual void OnClientSendMessage(string cMessage) //транслируемые сообщения { ClientSendMessage?.Invoke(this, new ClientEventArgs() { clientMessageToSend = cMessage }); }
// Metoda przetwarzająca polecania wprowadzone przez użytkownika. // Wykorzystuje metody statyczne sprawdzające czy wpisane polecenie jest poprawne. // W przypadku sukcesu wykonuje odpowiednią operację private void ProcessTag(string tag) { ClientCommand command = null; if (HelpTagValidator.Validate(tag)) { PrintHelp(); return; } if (ConnectionTagValidator.Validate(tag)) { var ipAddress = ConnectionTagValidator.GetIpAddress(tag); var portNumber = ConnectionTagValidator.GetPortNumber(tag); TryToConnect(ipAddress, portNumber); StartReceivingIfConnected(); return; } if (QuitTagValidator.Validate(tag)) { if (_client.Connected) { command = new ClientDisconnect(_id, _sessionId, _byteSender, _packetFormatter); _quiting = true; } else { QuitProgram(); } } // Jeżeli klient nie jest podłączony z serwerem metoda ta kończy się, ponieważ operacje poniżej wymagają // połączenia z serwerem do ich realizacji if (!_client.Connected) { PrintInvalidInputOrConnectionRequiredMessage(); return; } // Operacje wymagające połączenia z serwerem int destinationId; switch (tag) { case var input when IdTagValidator.Validate(input): command = new ClientGetId(_id, _sessionId, _byteSender, _packetFormatter); break; case var input when InviteTagValidator.Validate(input): destinationId = int.Parse(InviteTagValidator.GetMatchedValue(tag)); command = new ClientInvite(_id, destinationId, _sessionId, _byteSender, _packetFormatter); break; case var input when AcceptTagValidator.Validate(input): destinationId = int.Parse(AcceptTagValidator.GetMatchedValue(tag)); command = new ClientAcceptInvite(_id, destinationId, _sessionId, _byteSender, _packetFormatter); break; case var input when DeclineTagValidator.Validate(input): destinationId = int.Parse(DeclineTagValidator.GetMatchedValue(tag)); command = new ClientDeclineInvite(_id, destinationId, _sessionId, _byteSender, _packetFormatter); break; case var input when MessageTagValidator.Validate(input): var messageToSend = MessageTagValidator.GetMatchedValue(tag); command = new ClientSendMessage(_id, _sessionId, _byteSender, _packetFormatter, messageToSend); break; case var input when CloseTagValidator.Validate(input): command = new ClientCloseAndOpenNewSessionCommand(_id, _sessionId, _byteSender, _packetFormatter); break; case var input when DisconnectTagValidator.Validate(input): command = new ClientDisconnect(_id, _sessionId, _byteSender, _packetFormatter); break; } if (command != null) { _commandHandler.Handle(command); } else { PrintInvalidInputMessage(); } }