public async Task InitSessionGroups() { var teamVM = ServiceLocator.Current.GetInstance <TeamViewModel>(); var conversationQuery = new AVQuery <AVObject>("_Conversation") .WhereEqualTo("team", teamVM.SelectdTeam).Limit(200); var conversations = (await conversationQuery.FindAsync()) .Select(x => AVIMConversation.CreateWithData(x, client)); foreach (var conversation in conversations) { var session = new ConversationSessionViewModel(conversation); if (conversation.ContainsKey("category")) { var category = conversation.Get <int>("category"); if (conversation.MemberIds.Contains(client.ClientId)) { var group = this.SessionGroups.First(g => g.Category == category); if (group != null) { group.Sessions.Add(session); } } else { var group = this.SessionGroups.First(g => g.Category == -1); if (group != null) { group.Sessions.Add(session); } } } } }
public async Task <IEnumerable <AVIMConversation> > LoadAllConversationsInTeamAsync(string teamId = null, Team team = null) { var wrappedTeam = wrapTeam(teamId, team); var query = new AVQuery <AVObject>("_Conversation") .WhereEqualTo("team", wrappedTeam).Limit(300); var result = await query.FindAsync(); return(result.Select(x => { return AVIMConversation.CreateWithData(x, client); })); }