using Company.Domain.EmployeeFaceEmbeddingAgg; using MongoDB.Driver; namespace CompanyManagement.Infrastructure.Mongo.EmployeeFaceEmbeddingRepo; public class EmployeeFaceEmbeddingRepository : IEmployeeFaceEmbeddingRepository { private readonly IMongoCollection _employeeFaceEmbeddings; public EmployeeFaceEmbeddingRepository(IMongoDatabase database) { _employeeFaceEmbeddings = database.GetCollection("EmployeeFaces"); } public async Task CreateAsync(EmployeeFaceEmbedding employeeFaceEmbedding) { await _employeeFaceEmbeddings.InsertOneAsync(employeeFaceEmbedding); } public async Task UpdateAsync(EmployeeFaceEmbedding employeeFaceEmbedding) { await _employeeFaceEmbeddings.ReplaceOneAsync( x => x.Id == employeeFaceEmbedding.Id, employeeFaceEmbedding); } public async Task GetByIdAsync(string id) { return await _employeeFaceEmbeddings .Find(x => x.Id == id) .FirstOrDefaultAsync(); } public async Task GetByEmployeeIdAsync(long employeeId) { return await _employeeFaceEmbeddings .Find(x => x.EmployeeId == employeeId) .FirstOrDefaultAsync(); } public async Task> GetByWorkshopIdAsync(long workshopId) { return await _employeeFaceEmbeddings .Find(x => x.WorkshopId == workshopId) .ToListAsync(); } public async Task> GetByWorkshopIdsAsync(List workshopIds) { return await _employeeFaceEmbeddings .Find(x => workshopIds.First()==x.WorkshopId) .ToListAsync(); } public async Task DeleteAsync(string id) { await _employeeFaceEmbeddings.DeleteOneAsync(x => x.Id == id); } }