Ejemplo n.º 1
0
        public async Task <List <Conversation> > MyConversations(string userId)
        {
            var personalRelations = await PrivateConversations
                                    .AsNoTracking()
                                    .Where(t => t.RequesterId == userId || t.TargetId == userId)
                                    .Include(t => t.RequestUser)
                                    .Include(t => t.TargetUser)
                                    .Include(t => t.Messages)
                                    .ThenInclude(t => t.Ats)
                                    .ToListAsync();

            var groups = await UserGroupRelations
                         .AsNoTracking()
                         .Where(t => t.UserId == userId)
                         .Include(t => t.Group.Messages)
                         .ThenInclude(t => t.Ats)
                         .Include(t => t.User)
                         .ToListAsync();

            var myConversations = new List <Conversation>();

            myConversations.AddRange(personalRelations);
            myConversations.AddRange(groups.Select(t => t.Group));
            return(myConversations);
        }