61 lines
1.9 KiB
C#
61 lines
1.9 KiB
C#
using Company.Domain.EmployeeFaceEmbeddingAgg;
|
|
using MongoDB.Driver;
|
|
|
|
namespace CompanyManagement.Infrastructure.Mongo.EmployeeFaceEmbeddingRepo;
|
|
|
|
public class EmployeeFaceEmbeddingRepository : IEmployeeFaceEmbeddingRepository
|
|
{
|
|
private readonly IMongoCollection<EmployeeFaceEmbedding> _employeeFaceEmbeddings;
|
|
|
|
public EmployeeFaceEmbeddingRepository(IMongoDatabase database)
|
|
{
|
|
_employeeFaceEmbeddings = database.GetCollection<EmployeeFaceEmbedding>("EmployeeFaceEmbeddings");
|
|
}
|
|
|
|
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<EmployeeFaceEmbedding> GetByIdAsync(string id)
|
|
{
|
|
return await _employeeFaceEmbeddings
|
|
.Find(x => x.Id == id)
|
|
.FirstOrDefaultAsync();
|
|
}
|
|
|
|
public async Task<EmployeeFaceEmbedding> GetByEmployeeIdAsync(long employeeId)
|
|
{
|
|
return await _employeeFaceEmbeddings
|
|
.Find(x => x.EmployeeId == employeeId)
|
|
.FirstOrDefaultAsync();
|
|
}
|
|
|
|
public async Task<List<EmployeeFaceEmbedding>> GetByWorkshopIdAsync(long workshopId)
|
|
{
|
|
return await _employeeFaceEmbeddings
|
|
.Find(x => x.WorkshopId == workshopId)
|
|
.ToListAsync();
|
|
}
|
|
|
|
public async Task<List<EmployeeFaceEmbedding>> GetByWorkshopIdsAsync(List<long> workshopIds)
|
|
{
|
|
return await _employeeFaceEmbeddings
|
|
.Find(x => workshopIds.Contains(x.WorkshopId))
|
|
.ToListAsync();
|
|
}
|
|
|
|
public async Task DeleteAsync(string id)
|
|
{
|
|
await _employeeFaceEmbeddings.DeleteOneAsync(x => x.Id == id);
|
|
}
|
|
}
|
|
|