コード例 #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 GroupConversations
                         .AsNoTracking()
                         .Where(t => t.Users.Any(p => p.UserId == userId))
                         .Include(t => t.Messages)
                         .ThenInclude(t => t.Ats)
                         .Include(t => t.Users)
                         .ThenInclude(t => t.User)
                         .ToListAsync();

            var myConversations = new List <Conversation>();

            myConversations.AddRange(personalRelations);
            myConversations.AddRange(groups);
            return(myConversations);
        }
コード例 #2
0
        public async Task <GroupConversation> CreateGroup(string groupName, string creatorId, string joinPassword)
        {
            var newGroup = new GroupConversation
            {
                GroupName     = groupName,
                GroupImageKey = Convert.ToInt32(_configuration["GroupImageKey"]),
                AESKey        = Guid.NewGuid().ToString("N"),
                OwnerId       = creatorId,
                JoinPassword  = joinPassword ?? string.Empty
            };

            GroupConversations.Add(newGroup);
            await SaveChangesAsync();

            return(newGroup);
        }
コード例 #3
0
ファイル: KahlaDbContext.cs プロジェクト: ploxolq/Kahla
        public async Task <GroupConversation> CreateGroup(string groupName, string groupImagePath, string creatorId, string joinPassword)
        {
            var newGroup = new GroupConversation
            {
                GroupName      = groupName,
                GroupImagePath = groupImagePath,
                AESKey         = Guid.NewGuid().ToString("N"),
                OwnerId        = creatorId,
                JoinPassword   = joinPassword ?? string.Empty
            };
            await GroupConversations.AddAsync(newGroup);

            await SaveChangesAsync();

            return(newGroup);
        }