using Fake.DependencyInjection; using Oms.Domain.CustomersAggregate.Entities; using Oms.Domain.CustomersAggregate.Repositories; using Oms.SqlSugarCore.Repositories; namespace Oms.SqlSugarCore.Customers; public class CustomerExportQualificationRepository : OmsSqlSugarRepository, ICustomerExportQualificationRepository, IScopedDependency { public Task GetOwnedAsync( int id, int customerId, CancellationToken cancellationToken = default) { return FirstOrDefaultAsync(x => x.Id == id && x.CustomerId == customerId, cancellationToken); } public Task GetDefaultAsync( int customerId, CancellationToken cancellationToken = default) { return FirstOrDefaultAsync(x => x.CustomerId == customerId && x.IsDefault == 1, cancellationToken); } public async Task ClearDefaultAsync( int customerId, int? excludeId = null, CancellationToken cancellationToken = default) { var hasExcludeId = excludeId.HasValue; var excludeIdValue = excludeId.GetValueOrDefault(); var list = await GetListAsync( x => x.CustomerId == customerId && x.IsDefault == 1 && (!hasExcludeId || x.Id != excludeIdValue), cancellationToken: cancellationToken); if (list.Count == 0) { return; } foreach (var item in list) { item.IsDefault = 0; await UpdateAsync(item); } } }