private void SetupScreen() { var chatMenu = new ChatMenuScreen(_chatUi); var mainMenu = new MainMenuScreen(_chatUi); mainMenu.MenuItems = new List <MenuItem> { new MenuItem("0", "Connect", (_) => { _chatClient.Connect(_configuration); }, null), new MenuItem("1", "List chat rooms", (_) => { _chatUi.PrintAvailableRooms(_chatClient.GetChatRooms()); }, null), new MenuItem("2", "Subscribe chat room", (room) => _chatClient.SubscribeChatRoom(room).Wait(), null), new MenuItem("3", "Unsubscribe chat room", (room) => _chatClient.UnsubscribeChatRoom(room).Wait(), null), new MenuItem("4", "Enter chat room", (room) => _chatClient.EnterChatRoom(room, _chatUi.PrintMessage).Wait(), chatMenu), new MenuItem("5", "Leave chat room", (_) => _chatClient.LeaveChatRoom().Wait(), null), new MenuItem("6", "Disconnect", (_) => _chatClient.Disconnect().Wait(), null), }; chatMenu.MenuItems = new List <MenuItem> { new MenuItem("10", "Connect", (_) => _chatClient.Connect(_configuration), null), new MenuItem("11", "List signed users", (_) => { _chatUi.PrintSignedUsers(_chatClient.GetRegisteredUsers()); }, null), new MenuItem("12", "List online users", (_) => { _chatUi.PrintOnlineUsers(_chatClient.GetOnlineUsers()); }, null), new MenuItem("13", "Publish message", (msg) => _chatClient.PublishMessage(msg), null), new MenuItem("14", "Leave room", (_) => _chatClient.LeaveChatRoom(), mainMenu), new MenuItem("15", "Disconnect", (_) => _chatClient.Disconnect(), null), }; _currentScreen = mainMenu; }
public async Task SendMessageAsync_ShouldBeTrue_IfLoggedAndConnected() { //Arrange var message = "Message1"; await _chatClient.LoginAsync("Usuario1", "P2ssw0rd!"); _chatClient.Connect(); //Act var result = await _chatClient.SendMessageAsync(message); //Assert result.Should().BeTrue(); }
public ChatUseCase(IChatPresenter presenter, IChatClient chatClient) { _presenter = presenter; _chatClient = chatClient; _presenter.OnConnectButtonClick .Where(x => !string.IsNullOrEmpty(x.Name) && !string.IsNullOrEmpty(x.Uri)) .Subscribe(async x => { await chatClient.Connect(x.Name, x.Uri); _presenter.OnConnectSuccess(); }); _presenter.OnCloseButtonClick .Subscribe(async _ => { await _chatClient.Close(); presenter.OnDisconnect(); }); _presenter.OnMessageSendRequest .Subscribe(x => chatClient.Send(x)); _chatClient.OnReceived .ObserveOnMainThread() .Subscribe(x => presenter.OnMessageReceived(x.Name, x.Message)); _presenter.OnDestroy .Subscribe(_ => { _chatClient.Dispose(); }); }
public async Task Connect() { await _chatClient.Connect(); _chatClient.SendMessage("Hello World! The bot has arrived!"); _followerService.OnNewFollower += FollowerServiceOnOnNewFollower; _subscriberHandler.OnNewSubscriber += SubscriberHandlerOnOnNewSubscriber; }
public void Start() { if (!_client.Connected) { _client.Connect(); } _routineTimer.Start(); RefreshRoutineInternal(this, null); _client.NewChatMessage += ClientOnNewChatMessage; _repository.SaveCompleted += async(sender, time) => await Task.Run(() => { LastSaveTime = time; OnPropertyChanged(nameof(LastSaveTime)); }); Active = true; }
public async Task <bool> CheckConnectionAndRestartIfNeeded() { if (!hasBootedUp) { return(false); } var timeOfLatestMessage = await chatRepository.GetTimeStampForLatestMessage().ConfigureAwait(false); var timeOfCheck = datetimeProvider.UtcNow; logger.LogInformation("time of latest message: {arg}, time of check: {argTwo}", timeOfLatestMessage, timeOfCheck); if (timeOfLatestMessage < timeOfCheck.AddMinutes(-30)) { await client.Disconnect().ConfigureAwait(false); logger.LogInformation("Client Disconnected"); await Task.Delay(TimeSpan.FromMinutes(1)).ConfigureAwait(false); await client.Connect().ConfigureAwait(false); var channels = await channelRepository.GetChannels().ConfigureAwait(false); foreach (var channel in channels.Where(x => x.ShouldListen)) { await client.JoinChannel(channel.ChannelName).ConfigureAwait(false); } logger.LogInformation("Client Reconnected and Joined"); return(true); } return(false); }
public void Job() { LoggerHandler.Init(new[] { (Action <string>)Console.WriteLine }, "" /*GetAvailableLogFilename(logFilePath)*/, minLogLevel: LogLevel.Warn); _chat = new ChatClient(settings.TcpServerIp, 10240, "raspberry", "parola01"); _piHW = new RaspberryHardware(settings.PwmPeriod, settings.PwmHighDuration, settings.LinesToSkip); BindEvents(); _chat.Connect(); _piHW.Start(); _working = true; while (_working) { Console.Write("&:"); var line = Console.ReadLine(); ProcessCommand(line); } }
private static async Task Main(string[] args) { var httpClient = new HttpClient(); httpClient.BaseAddress = new Uri("http://localhost:5000/api/"); _chatClient = new ChatClient(new ChatApiClient(httpClient), new UserApiClient(httpClient)); WelcomeMessage(); var key = Console.ReadKey(); CheckLoginSelection(key); IntroduceLoginData(); await LoginOrCreateUserAsync(key); _chatClient.OverwriteLastLine += (sender, _) => { Console.SetCursorPosition(Console.CursorLeft, Console.CursorTop - 1); }; _chatClient.NewMessageRecived += (sender, s) => { Console.WriteLine(s); }; _chatClient.Connect(); var message = ""; Console.Clear(); while (true) { message = Console.ReadLine(); if (message == "exit") { break; } await _chatClient.SendMessageAsync(message); } _chatClient.Dispose(); }