using System; using System.Collections.Generic; using System.Threading.Tasks; using Company.Domain.InstitutionContractSendFlagAgg; using MongoDB.Driver; namespace CompanyManagement.Infrastructure.Mongo.InstitutionContractSendFlagRepo; /// /// Repository برای مدیریت فلگ ارسال قرارداد در MongoDB /// public class InstitutionContractSendFlagRepository : IInstitutionContractSendFlagRepository { private readonly IMongoCollection _collection; public InstitutionContractSendFlagRepository(IMongoDatabase database) { _collection = database.GetCollection("InstitutionContractSendFlag"); } public async Task Create(InstitutionContractSendFlag flag) { await _collection.InsertOneAsync(flag); } public async Task GetByContractId(long contractId) { var filter = Builders.Filter .Eq(x => x.InstitutionContractId, contractId); return await _collection.Find(filter).FirstOrDefaultAsync(); } public async Task Update(InstitutionContractSendFlag flag) { var filter = Builders.Filter .Eq(x => x.InstitutionContractId, flag.InstitutionContractId); await _collection.ReplaceOneAsync(filter, flag); } public async Task IsContractSent(long contractId) { var flag = await GetByContractId(contractId); return flag != null && flag.IsSent; } public async Task Remove(long contractId) { var filter = Builders.Filter .Eq(x => x.InstitutionContractId, contractId); await _collection.DeleteOneAsync(filter); } }