示例#1
0
        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);
            }));
        }