using ContactService.Domain; using ContactService.Domain.Entities; using Microsoft.EntityFrameworkCore; namespace ContactService.Infrastructure { public class FriendReposity : IFriendReposity { private readonly ContactDbContext db; public FriendReposity(ContactDbContext db) { this.db = db; } public async Task CheckOwnerIdAndTargetIdAsync(Guid ownerId, Guid targetId) { var exist = await db.Friends.AnyAsync(x => x.Owner.Id == ownerId && x.Target.Id == targetId); return exist; } public async Task CreateAsync(Friend friend) { db.Add(friend); return friend; } public Task FindByIdAsync(Guid id) { return db.Friends.FirstOrDefaultAsync(x => x.Id == id); } public Task FindByOwnerAndTargetAsync(Guid ownerId, Guid targetId) { return db.Friends.FirstOrDefaultAsync(x => x.Owner.Id == ownerId && x.Target.Id == targetId); } public async Task> FindByTargetAsync(Guid targetId) { return await db.Friends.Where(x => x.Target.Id == targetId).ToListAsync(); } public async Task> FindByOwnerAsync(Guid ownerId) { return await db.Friends.Where(x => x.Owner.Id == ownerId).ToListAsync(); } } }