private async Task GetRooms() { var rooms = await rocketChatRest.GetRooms(); Channels = new ObservableCollection <Room>(rooms.Where(x => x is Channel).ToList()); DirectConversations = new ObservableCollection <Room>(rooms.Where(x => x is DirectConversation).ToList()); foreach (var conversation in DirectConversations) { var conversationCasted = conversation as DirectConversation; var userId = conversationCasted.UserIds.FirstOrDefault(x => x != LoggedUser.Id); conversationCasted.User = Users.FirstOrDefault(x => x.Id == userId); conversationCasted.Name = conversationCasted.User.Username; conversationCasted.Avatar = conversationCasted.User.Avatar; } Discussions = new ObservableCollection <Room>(rooms.Where(x => x is Discussion).ToList()); PrivateGroups = new ObservableCollection <Room>(rooms.Where(x => x is PrivateGroup).ToList()); }