Rocket.Chat.Net.Driver.RocketChatDriver.SubscribeToRoomListAsync C# (CSharp) Method

SubscribeToRoomListAsync() public method

public SubscribeToRoomListAsync ( ) : Task
return Task
        public async Task SubscribeToRoomListAsync()
        {
            await _client.SubscribeAndWaitAsync("subscription", TimeoutToken).ConfigureAwait(false);
            var roomCollection = GetRoomsCollection();
            if (roomCollection == null)
            {
                _logger.Error("RoomCollection should not be null.");
                return;
            }
            roomCollection.Modified += async (sender, args) =>
            {
                if (args.ModificationType == ModificationType.Added)
                {
                    var room = args.Result;
                    await SubscribeToRoomInformationAsync(room.Name, room.Type).ConfigureAwait(false);
                }
            };
            foreach (var room in roomCollection.Items().ToList().Select(x => x.Value))
            {
                await SubscribeToRoomInformationAsync(room.Name, room.Type).ConfigureAwait(false);
            }
        }

Usage Example

        private static async Task<IRocketChatDriver> ComposeAsync()
        {
            var driver = new RocketChatDriver(Constants.RocketServer, false);
            await driver.ConnectAsync();
            await driver.LoginWithEmailAsync(Constants.OneEmail, Constants.OnePassword);
            await driver.SubscribeToRoomListAsync();

            return driver;
        }