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); }
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); }
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); }