using GroupService.Domain.Entities; using GroupService.Domain.IReposities; using Microsoft.EntityFrameworkCore; namespace GroupService.Infrastructure.Reposities { public class GroupMemberReposity : IGroupMemberReposity { private readonly GroupDbContext db; public GroupMemberReposity(GroupDbContext db) { this.db = db; } public async Task CheckMemberExistAsync(Guid groupId, Guid userId) { return await db.GroupMembers.AnyAsync(x => x.UserId == userId && x.GroupId == groupId ); } public GroupMember Create(GroupMember member) { db.GroupMembers.Add(member); return member; } public async Task> FindByGroupIdAsync(Guid groupId) { return await db.GroupMembers.Where(x => x.GroupId == groupId).ToListAsync(); } public async Task FindOneByGroupIdAndUserIdAsync(Guid groupId, Guid userId) { return await db.GroupMembers.FirstOrDefaultAsync(x => x.UserId == userId && x.GroupId == groupId ); } public async Task> FindByUserIdAsync(Guid userId) { return await db.GroupMembers.Where(x => x.UserId == userId).ToListAsync(); } public async Task FindByIdAsync(Guid id) { return await db.GroupMembers.FirstOrDefaultAsync(x => x.Id == id); } } }