diff --git a/src/X1.Domain/Repositories/Base/IBaseRepository.cs b/src/X1.Domain/Repositories/Base/IBaseRepository.cs
index bbc11e1..6373c0b 100644
--- a/src/X1.Domain/Repositories/Base/IBaseRepository.cs
+++ b/src/X1.Domain/Repositories/Base/IBaseRepository.cs
@@ -110,29 +110,32 @@ namespace CellularManagement.Domain.Repositories.Base
/// 根据ID查询单个实体
///
/// 要查询的实体ID
+ /// 查询条件表达式
/// 取消令牌,用于取消异步操作
/// 查询到的实体,如果不存在则返回 null
///
/// 这是一个异步操作,因为需要等待数据库的查询操作完成
/// 使用主键进行查询,性能最优
///
- Task GetByIdAsync(string id, CancellationToken cancellationToken = default);
+ Task GetByIdAsync(string id, Func, IQueryable>? include = null, CancellationToken cancellationToken = default);
///
/// 查询所有实体
///
+ /// 查询条件表达式
/// 取消令牌,用于取消异步操作
/// 所有实体的集合
///
/// 这是一个异步操作,因为需要等待数据库的查询操作完成
/// 注意:对于大数据量的表,建议使用分页查询
///
- Task> GetAllAsync(CancellationToken cancellationToken = default);
+ Task> GetAllAsync(Func, IQueryable>? include = null, CancellationToken cancellationToken = default);
///
/// 根据条件查询实体
///
/// 查询条件表达式
+ /// 查询条件表达式
/// 取消令牌,用于取消异步操作
/// 符合条件的实体集合
///
@@ -140,13 +143,14 @@ namespace CellularManagement.Domain.Repositories.Base
/// 使用 LINQ 表达式树构建查询条件
/// 条件查询会被转换为 SQL 语句在数据库端执行
///
- Task> FindAsync(Expression> predicate, CancellationToken cancellationToken = default);
+ Task> FindAsync(Expression> predicate, Func, IQueryable>? include = null, CancellationToken cancellationToken = default);
///
/// 分页查询实体
///
/// 页码,从1开始
/// 每页记录数
+ /// 查询条件表达式
/// 取消令牌,用于取消异步操作
/// 分页查询结果,包含总记录数和当前页数据
///
@@ -154,7 +158,7 @@ namespace CellularManagement.Domain.Repositories.Base
/// 分页查询可以有效减少数据传输量,提高性能
/// 建议在查询大数据量时使用
///
- Task<(int TotalCount, IEnumerable Items)> GetPagedAsync(int pageNumber, int pageSize, CancellationToken cancellationToken = default);
+ Task<(int TotalCount, IEnumerable Items)> GetPagedAsync(int pageNumber, int pageSize, Func, IQueryable>? include = null, CancellationToken cancellationToken = default);
///
/// 根据条件分页查询实体
@@ -162,6 +166,7 @@ namespace CellularManagement.Domain.Repositories.Base
/// 查询条件表达式
/// 页码,从1开始
/// 每页记录数
+ /// 查询条件表达式
/// 取消令牌,用于取消异步操作
/// 分页查询结果,包含总记录数和当前页数据
///
@@ -172,12 +177,14 @@ namespace CellularManagement.Domain.Repositories.Base
Expression> predicate,
int pageNumber,
int pageSize,
+ Func, IQueryable>? include = null,
CancellationToken cancellationToken = default);
///
/// 查询单个实体
///
/// 查询条件表达式
+ /// 查询条件表达式
/// 取消令牌,用于取消异步操作
/// 查询到的实体,如果不存在则返回 null
///
@@ -185,31 +192,33 @@ namespace CellularManagement.Domain.Repositories.Base
/// 如果查询结果包含多个实体,将返回第一个
/// 建议在确定只会返回一个结果时使用
///
- Task FirstOrDefaultAsync(Expression> predicate, CancellationToken cancellationToken = default);
+ Task FirstOrDefaultAsync(Expression> predicate, Func, IQueryable>? include = null, CancellationToken cancellationToken = default);
///
/// 查询实体是否存在
///
/// 查询条件表达式
+ /// 查询条件表达式
/// 取消令牌,用于取消异步操作
/// 是否存在符合条件的实体
///
/// 这是一个异步操作,因为需要等待数据库的查询操作完成
/// 使用 EXISTS 语句在数据库端执行,性能优于获取完整实体
///
- Task AnyAsync(Expression> predicate, CancellationToken cancellationToken = default);
+ Task AnyAsync(Expression> predicate, Func, IQueryable>? include = null, CancellationToken cancellationToken = default);
///
/// 统计符合条件的实体数量
///
/// 查询条件表达式
+ /// 查询条件表达式
/// 取消令牌,用于取消异步操作
/// 符合条件的实体数量
///
/// 这是一个异步操作,因为需要等待数据库的查询操作完成
/// 使用 COUNT 语句在数据库端执行,性能优于获取完整实体
///
- Task CountAsync(Expression> predicate, CancellationToken cancellationToken = default);
+ Task CountAsync(Expression> predicate, Func, IQueryable>? include = null, CancellationToken cancellationToken = default);
///
/// 执行SQL复制查询
diff --git a/src/X1.Domain/Repositories/Base/IQueryRepository.cs b/src/X1.Domain/Repositories/Base/IQueryRepository.cs
index ec4f3d8..1e4034f 100644
--- a/src/X1.Domain/Repositories/Base/IQueryRepository.cs
+++ b/src/X1.Domain/Repositories/Base/IQueryRepository.cs
@@ -21,29 +21,32 @@ public interface IQueryRepository where T : class
/// 根据ID查询单个实体
///
/// 要查询的实体ID
+ /// 查询条件表达式
/// 取消令牌,用于取消异步操作
/// 查询到的实体,如果不存在则返回 null
///
/// 这是一个异步操作,因为需要等待数据库的查询操作完成
/// 使用主键进行查询,性能最优
///
- Task GetByIdAsync(string id, CancellationToken cancellationToken = default);
+ Task GetByIdAsync(string id, Func, IQueryable>? include = null, CancellationToken cancellationToken = default);
///
/// 查询所有实体
///
+ /// 查询条件表达式
/// 取消令牌,用于取消异步操作
/// 所有实体的集合
///
/// 这是一个异步操作,因为需要等待数据库的查询操作完成
/// 注意:对于大数据量的表,建议使用分页查询
///
- Task> GetAllAsync(CancellationToken cancellationToken = default);
+ Task> GetAllAsync(Func, IQueryable>? include = null, CancellationToken cancellationToken = default);
///
/// 根据条件查询实体
///
/// 查询条件表达式
+ /// 查询条件表达式
/// 取消令牌,用于取消异步操作
/// 符合条件的实体集合
///
@@ -51,13 +54,14 @@ public interface IQueryRepository where T : class
/// 使用 LINQ 表达式树构建查询条件
/// 条件查询会被转换为 SQL 语句在数据库端执行
///
- Task> FindAsync(Expression> predicate, CancellationToken cancellationToken = default);
+ Task> FindAsync(Expression> predicate, Func, IQueryable>? include = null, CancellationToken cancellationToken = default);
///
/// 分页查询实体
///
/// 页码,从1开始
/// 每页记录数
+ /// 查询条件表达式
/// 取消令牌,用于取消异步操作
/// 分页查询结果,包含总记录数和当前页数据
///
@@ -65,7 +69,7 @@ public interface IQueryRepository where T : class
/// 分页查询可以有效减少数据传输量,提高性能
/// 建议在查询大数据量时使用
///
- Task<(int TotalCount, IEnumerable Items)> GetPagedAsync(int pageNumber, int pageSize, CancellationToken cancellationToken = default);
+ Task<(int TotalCount, IEnumerable Items)> GetPagedAsync(int pageNumber, int pageSize, Func, IQueryable>? include = null, CancellationToken cancellationToken = default);
///
/// 根据条件分页查询实体
@@ -73,6 +77,7 @@ public interface IQueryRepository where T : class
/// 查询条件表达式
/// 页码,从1开始
/// 每页记录数
+ /// 查询条件表达式
/// 取消令牌,用于取消异步操作
/// 分页查询结果,包含总记录数和当前页数据
///
@@ -83,12 +88,14 @@ public interface IQueryRepository where T : class
Expression> predicate,
int pageNumber,
int pageSize,
+ Func, IQueryable>? include = null,
CancellationToken cancellationToken = default);
///
/// 查询单个实体
///
/// 查询条件表达式
+ /// 查询条件表达式
/// 取消令牌,用于取消异步操作
/// 查询到的实体,如果不存在则返回 null
///
@@ -96,31 +103,33 @@ public interface IQueryRepository where T : class
/// 如果查询结果包含多个实体,将返回第一个
/// 建议在确定只会返回一个结果时使用
///
- Task FirstOrDefaultAsync(Expression> predicate, CancellationToken cancellationToken = default);
+ Task FirstOrDefaultAsync(Expression> predicate, Func, IQueryable>? include = null, CancellationToken cancellationToken = default);
///
/// 查询实体是否存在
///
/// 查询条件表达式
+ /// 查询条件表达式
/// 取消令牌,用于取消异步操作
/// 是否存在符合条件的实体
///
/// 这是一个异步操作,因为需要等待数据库的查询操作完成
/// 使用 EXISTS 语句在数据库端执行,性能优于获取完整实体
///
- Task AnyAsync(Expression> predicate, CancellationToken cancellationToken = default);
+ Task AnyAsync(Expression> predicate, Func, IQueryable>? include = null, CancellationToken cancellationToken = default);
///
/// 统计符合条件的实体数量
///
/// 查询条件表达式
+ /// 查询条件表达式
/// 取消令牌,用于取消异步操作
/// 符合条件的实体数量
///
/// 这是一个异步操作,因为需要等待数据库的查询操作完成
/// 使用 COUNT 语句在数据库端执行,性能优于获取完整实体
///
- Task CountAsync(Expression> predicate, CancellationToken cancellationToken = default);
+ Task CountAsync(Expression> predicate, Func, IQueryable>? include = null, CancellationToken cancellationToken = default);
///
/// 执行SQL复制查询
diff --git a/src/X1.Infrastructure/Repositories/Base/BaseRepository.cs b/src/X1.Infrastructure/Repositories/Base/BaseRepository.cs
index 55ee5e0..6f082f7 100644
--- a/src/X1.Infrastructure/Repositories/Base/BaseRepository.cs
+++ b/src/X1.Infrastructure/Repositories/Base/BaseRepository.cs
@@ -111,69 +111,65 @@ public abstract class BaseRepository : IBaseRepository where T : class
///
/// 根据ID查询实体
///
- public virtual async Task GetByIdAsync(string id, CancellationToken cancellationToken = default)
+ public virtual async Task GetByIdAsync(string id, Func, IQueryable>? include = null, CancellationToken cancellationToken = default)
{
- return await QueryRepository.GetByIdAsync(id, cancellationToken);
+ return await QueryRepository.GetByIdAsync(id, include, cancellationToken);
}
///
/// 查询所有实体
///
- public virtual async Task> GetAllAsync(CancellationToken cancellationToken = default)
+ public virtual async Task> GetAllAsync(Func, IQueryable>? include = null, CancellationToken cancellationToken = default)
{
- return await QueryRepository.GetAllAsync(cancellationToken);
+ return await QueryRepository.GetAllAsync(include, cancellationToken);
}
///
/// 根据条件查询实体
///
- public virtual async Task> FindAsync(System.Linq.Expressions.Expression> predicate, CancellationToken cancellationToken = default)
+ public virtual async Task> FindAsync(System.Linq.Expressions.Expression> predicate, Func, IQueryable>? include = null, CancellationToken cancellationToken = default)
{
- return await QueryRepository.FindAsync(predicate, cancellationToken);
+ return await QueryRepository.FindAsync(predicate, include, cancellationToken);
}
///
/// 分页查询实体
///
- public virtual async Task<(int TotalCount, IEnumerable Items)> GetPagedAsync(int pageNumber, int pageSize, CancellationToken cancellationToken = default)
+ public virtual async Task<(int TotalCount, IEnumerable Items)> GetPagedAsync(int pageNumber, int pageSize, Func, IQueryable>? include = null, CancellationToken cancellationToken = default)
{
- return await QueryRepository.GetPagedAsync(pageNumber, pageSize, cancellationToken);
+ return await QueryRepository.GetPagedAsync(pageNumber, pageSize, include, cancellationToken);
}
///
/// 根据条件分页查询实体
///
- public virtual async Task<(int TotalCount, IEnumerable Items)> GetPagedAsync(
- System.Linq.Expressions.Expression> predicate,
- int pageNumber,
- int pageSize,
- CancellationToken cancellationToken = default)
+ public virtual async Task<(int TotalCount, IEnumerable Items)> GetPagedAsync(System.Linq.Expressions.Expression> predicate, int pageNumber, int pageSize, Func, IQueryable>? include = null, CancellationToken cancellationToken = default)
{
- return await QueryRepository.GetPagedAsync(predicate, pageNumber, pageSize, cancellationToken);
+ return await QueryRepository.GetPagedAsync(predicate, pageNumber, pageSize, include, cancellationToken);
}
///
/// 查询单个实体
///
- public virtual async Task FirstOrDefaultAsync(System.Linq.Expressions.Expression> predicate, CancellationToken cancellationToken = default)
+ public virtual async Task FirstOrDefaultAsync(System.Linq.Expressions.Expression> predicate, Func, IQueryable>? include = null, CancellationToken cancellationToken = default)
{
- return await QueryRepository.FirstOrDefaultAsync(predicate, cancellationToken);
+ return await QueryRepository.FirstOrDefaultAsync(predicate, include, cancellationToken);
}
///
/// 查询实体是否存在
///
- public virtual async Task AnyAsync(System.Linq.Expressions.Expression> predicate, CancellationToken cancellationToken = default)
+ public virtual async Task AnyAsync(System.Linq.Expressions.Expression> predicate, Func, IQueryable>? include = null, CancellationToken cancellationToken = default)
{
- return await QueryRepository.AnyAsync(predicate, cancellationToken);
+ return await QueryRepository.AnyAsync(predicate, include, cancellationToken);
}
///
/// 统计符合条件的实体数量
///
- public virtual async Task CountAsync(System.Linq.Expressions.Expression> predicate, CancellationToken cancellationToken = default)
+ public virtual async Task CountAsync(System.Linq.Expressions.Expression> predicate, Func, IQueryable>? include = null, CancellationToken cancellationToken = default)
{
- return await QueryRepository.CountAsync(predicate, cancellationToken);
+ return await QueryRepository.CountAsync(predicate, include, cancellationToken);
}
///
diff --git a/src/X1.Infrastructure/Repositories/CQRS/QueryRepository.cs b/src/X1.Infrastructure/Repositories/CQRS/QueryRepository.cs
index c01d997..18d4915 100644
--- a/src/X1.Infrastructure/Repositories/CQRS/QueryRepository.cs
+++ b/src/X1.Infrastructure/Repositories/CQRS/QueryRepository.cs
@@ -44,82 +44,99 @@ public class QueryRepository : IQueryRepository where T : class
///
/// 根据ID查询单个实体
///
- public async Task GetByIdAsync(string id, CancellationToken cancellationToken = default)
+ public async Task GetByIdAsync(string id, Func, IQueryable>? include = null, CancellationToken cancellationToken = default)
{
- return await _dbSet.FindAsync(new object[] { id }, cancellationToken);
+ IQueryable query = _dbSet;
+ if (include != null)
+ query = include(query);
+ return await query.FirstOrDefaultAsync(e => EF.Property(e, "Id") == id, cancellationToken);
}
///
/// 查询所有实体
///
- public async Task> GetAllAsync(CancellationToken cancellationToken = default)
+ public async Task> GetAllAsync(Func, IQueryable>? include = null, CancellationToken cancellationToken = default)
{
- return await _dbSet.ToListAsync(cancellationToken);
+ IQueryable query = _dbSet;
+ if (include != null)
+ query = include(query);
+ return await query.ToListAsync(cancellationToken);
}
///
/// 根据条件查询实体
///
- public async Task> FindAsync(Expression> predicate, CancellationToken cancellationToken = default)
+ public async Task> FindAsync(Expression> predicate, Func, IQueryable>? include = null, CancellationToken cancellationToken = default)
{
- return await _dbSet.Where(predicate).ToListAsync(cancellationToken);
+ IQueryable query = _dbSet.Where(predicate);
+ if (include != null)
+ query = include(query);
+ return await query.ToListAsync(cancellationToken);
}
///
/// 分页查询实体
///
- public async Task<(int TotalCount, IEnumerable Items)> GetPagedAsync(int pageNumber, int pageSize, CancellationToken cancellationToken = default)
+ public async Task<(int TotalCount, IEnumerable Items)> GetPagedAsync(int pageNumber, int pageSize, Func, IQueryable>? include = null, CancellationToken cancellationToken = default)
{
- var totalCount = await _dbSet.CountAsync(cancellationToken);
- var items = await _dbSet
+ IQueryable query = _dbSet;
+ if (include != null)
+ query = include(query);
+ var totalCount = await query.CountAsync(cancellationToken);
+ var items = await query
.Skip((pageNumber - 1) * pageSize)
.Take(pageSize)
.ToListAsync(cancellationToken);
-
return (totalCount, items);
}
///
/// 根据条件分页查询实体
///
- public async Task<(int TotalCount, IEnumerable Items)> GetPagedAsync(
- Expression> predicate,
- int pageNumber,
- int pageSize,
- CancellationToken cancellationToken = default)
+ public async Task<(int TotalCount, IEnumerable Items)> GetPagedAsync(Expression> predicate, int pageNumber, int pageSize, Func, IQueryable>? include = null, CancellationToken cancellationToken = default)
{
- var query = _dbSet.Where(predicate);
+ IQueryable query = _dbSet.Where(predicate);
+ if (include != null)
+ query = include(query);
var totalCount = await query.CountAsync(cancellationToken);
var items = await query
.Skip((pageNumber - 1) * pageSize)
.Take(pageSize)
.ToListAsync(cancellationToken);
-
return (totalCount, items);
}
///
/// 查询单个实体
///
- public async Task FirstOrDefaultAsync(Expression> predicate, CancellationToken cancellationToken = default)
+ public async Task FirstOrDefaultAsync(Expression> predicate, Func, IQueryable>? include = null, CancellationToken cancellationToken = default)
{
- return await _dbSet.FirstOrDefaultAsync(predicate, cancellationToken);
+ IQueryable query = _dbSet.Where(predicate);
+ if (include != null)
+ query = include(query);
+ return await query.FirstOrDefaultAsync(cancellationToken);
}
///
/// 查询实体是否存在
///
- public async Task AnyAsync(Expression> predicate, CancellationToken cancellationToken = default)
+ public async Task AnyAsync(Expression> predicate, Func, IQueryable>? include = null, CancellationToken cancellationToken = default)
{
- return await _dbSet.AnyAsync(predicate, cancellationToken);
+ IQueryable query = _dbSet.Where(predicate);
+ if (include != null)
+ query = include(query);
+ return await query.AnyAsync(cancellationToken);
}
///
/// 统计符合条件的实体数量
///
- public async Task CountAsync(Expression> predicate, CancellationToken cancellationToken = default)
+ public async Task CountAsync(Expression> predicate, Func, IQueryable>? include = null, CancellationToken cancellationToken = default)
{
- return await _dbSet.CountAsync(predicate, cancellationToken);
+ IQueryable query = _dbSet.Where(predicate);
+ if (include != null)
+ query = include(query);
+ return await query.CountAsync(cancellationToken);
}
///
diff --git a/src/X1.Infrastructure/Repositories/Device/CellularDeviceRepository.cs b/src/X1.Infrastructure/Repositories/Device/CellularDeviceRepository.cs
index c033a1d..75856ec 100644
--- a/src/X1.Infrastructure/Repositories/Device/CellularDeviceRepository.cs
+++ b/src/X1.Infrastructure/Repositories/Device/CellularDeviceRepository.cs
@@ -64,7 +64,7 @@ public class CellularDeviceRepository : BaseRepository, ICellula
///
public async Task> GetAllDevicesAsync(CancellationToken cancellationToken = default)
{
- var devices = await QueryRepository.GetAllAsync(cancellationToken);
+ var devices = await QueryRepository.GetAllAsync(cancellationToken: cancellationToken);
return devices.ToList();
}
@@ -73,7 +73,7 @@ public class CellularDeviceRepository : BaseRepository, ICellula
///
public async Task GetDeviceByIdAsync(string id, CancellationToken cancellationToken = default)
{
- return await QueryRepository.GetByIdAsync(id, cancellationToken);
+ return await QueryRepository.GetByIdAsync(id, cancellationToken: cancellationToken);
}
@@ -85,7 +85,7 @@ public class CellularDeviceRepository : BaseRepository, ICellula
///
public async Task GetDeviceBySerialNumberAsync(string serialNumber, CancellationToken cancellationToken = default)
{
- return await QueryRepository.FirstOrDefaultAsync(d => d.SerialNumber == serialNumber, cancellationToken);
+ return await QueryRepository.FirstOrDefaultAsync(d => d.SerialNumber == serialNumber, cancellationToken: cancellationToken);
}
///
@@ -95,7 +95,7 @@ public class CellularDeviceRepository : BaseRepository, ICellula
string? keyword,
CancellationToken cancellationToken = default)
{
- var query = await QueryRepository.FindAsync(d => true, cancellationToken);
+ var query = await QueryRepository.FindAsync(d => true, cancellationToken: cancellationToken);
if (!string.IsNullOrWhiteSpace(keyword))
{
@@ -118,7 +118,7 @@ public class CellularDeviceRepository : BaseRepository, ICellula
///
public async Task ExistsAsync(string id, CancellationToken cancellationToken = default)
{
- return await QueryRepository.AnyAsync(d => d.Id == id, cancellationToken);
+ return await QueryRepository.AnyAsync(d => d.Id == id, cancellationToken: cancellationToken);
}
///
@@ -126,6 +126,6 @@ public class CellularDeviceRepository : BaseRepository, ICellula
///
public async Task SerialNumberExistsAsync(string serialNumber, CancellationToken cancellationToken = default)
{
- return await QueryRepository.AnyAsync(d => d.SerialNumber == serialNumber, cancellationToken);
+ return await QueryRepository.AnyAsync(d => d.SerialNumber == serialNumber, cancellationToken: cancellationToken);
}
}
\ No newline at end of file
diff --git a/src/X1.Infrastructure/Repositories/Device/ProtocolVersionRepository.cs b/src/X1.Infrastructure/Repositories/Device/ProtocolVersionRepository.cs
index 32d0d2c..5a23fd7 100644
--- a/src/X1.Infrastructure/Repositories/Device/ProtocolVersionRepository.cs
+++ b/src/X1.Infrastructure/Repositories/Device/ProtocolVersionRepository.cs
@@ -62,7 +62,7 @@ public class ProtocolVersionRepository : BaseRepository, IProto
///
public async Task> GetAllProtocolVersionsAsync(CancellationToken cancellationToken = default)
{
- var protocolVersions = await QueryRepository.GetAllAsync(cancellationToken);
+ var protocolVersions = await QueryRepository.GetAllAsync(cancellationToken:cancellationToken);
return protocolVersions.ToList();
}
@@ -71,7 +71,7 @@ public class ProtocolVersionRepository : BaseRepository, IProto
///
public async Task GetProtocolVersionByIdAsync(string id, CancellationToken cancellationToken = default)
{
- return await QueryRepository.GetByIdAsync(id, cancellationToken);
+ return await QueryRepository.GetByIdAsync(id, cancellationToken:cancellationToken);
}
///
@@ -79,7 +79,7 @@ public class ProtocolVersionRepository : BaseRepository, IProto
///
public async Task GetProtocolVersionByVersionAsync(string version, CancellationToken cancellationToken = default)
{
- return await QueryRepository.FirstOrDefaultAsync(pv => pv.Version == version, cancellationToken);
+ return await QueryRepository.FirstOrDefaultAsync(pv => pv.Version == version, cancellationToken:cancellationToken);
}
///
@@ -89,7 +89,7 @@ public class ProtocolVersionRepository : BaseRepository, IProto
string? keyword,
CancellationToken cancellationToken = default)
{
- var query = await QueryRepository.FindAsync(pv => true, cancellationToken);
+ var query = await QueryRepository.FindAsync(pv => true, cancellationToken:cancellationToken);
if (!string.IsNullOrWhiteSpace(keyword))
{
@@ -108,7 +108,7 @@ public class ProtocolVersionRepository : BaseRepository, IProto
///
public async Task ExistsAsync(string id, CancellationToken cancellationToken = default)
{
- return await QueryRepository.AnyAsync(pv => pv.Id == id, cancellationToken);
+ return await QueryRepository.AnyAsync(pv => pv.Id == id, cancellationToken: cancellationToken);
}
///
@@ -116,7 +116,7 @@ public class ProtocolVersionRepository : BaseRepository, IProto
///
public async Task VersionExistsAsync(string version, CancellationToken cancellationToken = default)
{
- return await QueryRepository.AnyAsync(pv => pv.Version == version, cancellationToken);
+ return await QueryRepository.AnyAsync(pv => pv.Version == version, cancellationToken: cancellationToken);
}
///
@@ -124,7 +124,7 @@ public class ProtocolVersionRepository : BaseRepository, IProto
///
public async Task> GetEnabledProtocolVersionsAsync(CancellationToken cancellationToken = default)
{
- var protocolVersions = await QueryRepository.FindAsync(pv => pv.IsEnabled, cancellationToken);
+ var protocolVersions = await QueryRepository.FindAsync(pv => pv.IsEnabled, cancellationToken: cancellationToken);
return protocolVersions.ToList();
}
}
\ No newline at end of file
diff --git a/src/X1.Infrastructure/Repositories/Identity/LoginLogRepository.cs b/src/X1.Infrastructure/Repositories/Identity/LoginLogRepository.cs
index bbc8d87..122eee8 100644
--- a/src/X1.Infrastructure/Repositories/Identity/LoginLogRepository.cs
+++ b/src/X1.Infrastructure/Repositories/Identity/LoginLogRepository.cs
@@ -55,7 +55,7 @@ public class LoginLogRepository : BaseRepository, ILoginLogRepository
{
var logs = await QueryRepository.FindAsync(
log => log.UserId == userId,
- cancellationToken);
+ cancellationToken: cancellationToken);
return logs.OrderByDescending(l => l.LoginTime)
.Take(count)
@@ -72,7 +72,7 @@ public class LoginLogRepository : BaseRepository, ILoginLogRepository
log => log.IpAddress == ipAddress &&
!log.IsSuccess &&
log.LoginTime >= windowStart,
- cancellationToken);
+ cancellationToken: cancellationToken);
return failedAttempts >= MaxLoginAttempts;
}
@@ -87,7 +87,7 @@ public class LoginLogRepository : BaseRepository, ILoginLogRepository
log => log.IpAddress == ipAddress &&
!log.IsSuccess &&
log.LoginTime >= windowStart,
- cancellationToken);
+ cancellationToken: cancellationToken);
}
///
@@ -114,7 +114,7 @@ public class LoginLogRepository : BaseRepository, ILoginLogRepository
{
return await QueryRepository.FindAsync(
log => log.UserId == userId,
- cancellationToken);
+ cancellationToken: cancellationToken);
}
///
@@ -124,7 +124,7 @@ public class LoginLogRepository : BaseRepository, ILoginLogRepository
{
return await QueryRepository.FindAsync(
log => true,
- cancellationToken);
+ cancellationToken: cancellationToken);
}
///
@@ -134,7 +134,7 @@ public class LoginLogRepository : BaseRepository, ILoginLogRepository
{
return await QueryRepository.FindAsync(
log => !log.IsSuccess && log.CreatedAt >= startTime && log.CreatedAt <= endTime,
- cancellationToken);
+ cancellationToken: cancellationToken);
}
///
@@ -144,7 +144,7 @@ public class LoginLogRepository : BaseRepository, ILoginLogRepository
{
return await QueryRepository.FindAsync(
log => log.IpAddress == ipAddress,
- cancellationToken);
+ cancellationToken: cancellationToken);
}
///
@@ -154,7 +154,7 @@ public class LoginLogRepository : BaseRepository, ILoginLogRepository
{
var oldLogs = await QueryRepository.FindAsync(
log => log.CreatedAt < before,
- cancellationToken);
+ cancellationToken: cancellationToken);
if (oldLogs.Any())
{
@@ -172,7 +172,7 @@ public class LoginLogRepository : BaseRepository, ILoginLogRepository
{
var logs = await QueryRepository.FindAsync(
log => log.CreatedAt >= startTime && log.CreatedAt <= endTime,
- cancellationToken);
+ cancellationToken: cancellationToken);
return new LoginStatistics
{
diff --git a/src/X1.Infrastructure/Repositories/Identity/PermissionRepository.cs b/src/X1.Infrastructure/Repositories/Identity/PermissionRepository.cs
index f4815f4..b1a9669 100644
--- a/src/X1.Infrastructure/Repositories/Identity/PermissionRepository.cs
+++ b/src/X1.Infrastructure/Repositories/Identity/PermissionRepository.cs
@@ -53,7 +53,7 @@ public class PermissionRepository : BaseRepository, IPermissionRepos
///
public async Task DeletePermissionAsync(string permissionId, CancellationToken cancellationToken = default)
{
- var permission = await QueryRepository.GetByIdAsync(permissionId, cancellationToken);
+ var permission = await QueryRepository.GetByIdAsync(permissionId, cancellationToken: cancellationToken);
if (permission != null)
{
CommandRepository.Delete(permission);
@@ -81,7 +81,7 @@ public class PermissionRepository : BaseRepository, IPermissionRepos
///
public async Task DeletePermissionsAsync(IEnumerable permissionIds, CancellationToken cancellationToken = default)
{
- var permissions = await QueryRepository.FindAsync(p => permissionIds.Contains(p.Id), cancellationToken);
+ var permissions = await QueryRepository.FindAsync(p => permissionIds.Contains(p.Id), cancellationToken: cancellationToken);
if (permissions.Any())
{
CommandRepository.DeleteRange(permissions);
@@ -97,7 +97,7 @@ public class PermissionRepository : BaseRepository, IPermissionRepos
///
public async Task> GetAllPermissionsAsync(CancellationToken cancellationToken = default)
{
- return await QueryRepository.GetAllAsync(cancellationToken);
+ return await QueryRepository.GetAllAsync(cancellationToken: cancellationToken);
}
///
@@ -105,7 +105,7 @@ public class PermissionRepository : BaseRepository, IPermissionRepos
///
public async Task GetPermissionByIdAsync(string permissionId, CancellationToken cancellationToken = default)
{
- return await QueryRepository.GetByIdAsync(permissionId, cancellationToken);
+ return await QueryRepository.GetByIdAsync(permissionId, cancellationToken: cancellationToken);
}
///
@@ -113,7 +113,7 @@ public class PermissionRepository : BaseRepository, IPermissionRepos
///
public async Task GetPermissionByNameAsync(string name, CancellationToken cancellationToken = default)
{
- return await QueryRepository.FirstOrDefaultAsync(p => p.Name == name, cancellationToken);
+ return await QueryRepository.FirstOrDefaultAsync(p => p.Name == name, cancellationToken: cancellationToken);
}
///
@@ -121,7 +121,7 @@ public class PermissionRepository : BaseRepository, IPermissionRepos
///
public async Task> GetPermissionsByTypeAsync(string type, CancellationToken cancellationToken = default)
{
- return await QueryRepository.FindAsync(p => p.Type == type, cancellationToken);
+ return await QueryRepository.FindAsync(p => p.Type == type, cancellationToken: cancellationToken);
}
///
@@ -129,7 +129,7 @@ public class PermissionRepository : BaseRepository, IPermissionRepos
///
public async Task ExistsAsync(string permissionId, CancellationToken cancellationToken = default)
{
- return await QueryRepository.AnyAsync(p => p.Id == permissionId, cancellationToken);
+ return await QueryRepository.AnyAsync(p => p.Id == permissionId, cancellationToken: cancellationToken);
}
///
@@ -137,7 +137,7 @@ public class PermissionRepository : BaseRepository, IPermissionRepos
///
public async Task NameExistsAsync(string name, CancellationToken cancellationToken = default)
{
- return await QueryRepository.AnyAsync(p => p.Name == name, cancellationToken);
+ return await QueryRepository.AnyAsync(p => p.Name == name, cancellationToken: cancellationToken);
}
///
@@ -145,7 +145,7 @@ public class PermissionRepository : BaseRepository, IPermissionRepos
///
public async Task GetByNameAsync(string name, CancellationToken cancellationToken = default)
{
- return await QueryRepository.FirstOrDefaultAsync(p => p.Name == name, cancellationToken);
+ return await QueryRepository.FirstOrDefaultAsync(p => p.Name == name, cancellationToken: cancellationToken);
}
#endregion
diff --git a/src/X1.Infrastructure/Repositories/Identity/RolePermissionRepository.cs b/src/X1.Infrastructure/Repositories/Identity/RolePermissionRepository.cs
index 8550f50..d556730 100644
--- a/src/X1.Infrastructure/Repositories/Identity/RolePermissionRepository.cs
+++ b/src/X1.Infrastructure/Repositories/Identity/RolePermissionRepository.cs
@@ -45,10 +45,10 @@ public class RolePermissionRepository : BaseRepository, IRolePer
{
var rolePermissions = await QueryRepository.FindAsync(
rp => rp.RoleId == roleId,
- cancellationToken);
+ cancellationToken: cancellationToken);
var permissionIds = rolePermissions.Select(rp => rp.PermissionId);
- return await _permissionQueryRepository.FindAsync(p => permissionIds.Contains(p.Id), cancellationToken);
+ return await _permissionQueryRepository.FindAsync(p => permissionIds.Contains(p.Id), cancellationToken: cancellationToken);
}
///
@@ -58,10 +58,10 @@ public class RolePermissionRepository : BaseRepository, IRolePer
{
var rolePermissions = await QueryRepository.FindAsync(
rp => rp.PermissionId == permissionId,
- cancellationToken);
+ cancellationToken: cancellationToken);
var roleIds = rolePermissions.Select(rp => rp.RoleId);
- return await _roleQueryRepository.FindAsync(r => roleIds.Contains(r.Id), cancellationToken);
+ return await _roleQueryRepository.FindAsync(r => roleIds.Contains(r.Id), cancellationToken: cancellationToken);
}
///
@@ -71,7 +71,7 @@ public class RolePermissionRepository : BaseRepository, IRolePer
{
return await QueryRepository.AnyAsync(
rp => rp.RoleId == roleId && rp.PermissionId == permissionId,
- cancellationToken);
+ cancellationToken: cancellationToken);
}
///
@@ -92,7 +92,7 @@ public class RolePermissionRepository : BaseRepository, IRolePer
{
var rolePermissions = await QueryRepository.FindAsync(
rp => rp.RoleId == roleId && permissionIds.Contains(rp.PermissionId),
- cancellationToken);
+ cancellationToken: cancellationToken);
if (rolePermissions.Any())
{
@@ -110,7 +110,7 @@ public class RolePermissionRepository : BaseRepository, IRolePer
{
return await QueryRepository.FindAsync(
rp => rp.RoleId == roleId,
- cancellationToken);
+ cancellationToken: cancellationToken);
}
///
@@ -120,7 +120,7 @@ public class RolePermissionRepository : BaseRepository, IRolePer
{
var rolePermissions = await QueryRepository.FindAsync(
rp => rp.RoleId == roleId && permissionIds.Contains(rp.PermissionId),
- cancellationToken);
+ cancellationToken: cancellationToken);
return rolePermissions.Count() == permissionIds.Count();
}
@@ -132,7 +132,7 @@ public class RolePermissionRepository : BaseRepository, IRolePer
{
var rolePermissions = await QueryRepository.FindAsync(
rp => rp.RoleId == roleId && permissionIds.Contains(rp.PermissionId),
- cancellationToken);
+ cancellationToken: cancellationToken);
var existingPermissionIds = rolePermissions.Select(rp => rp.PermissionId);
return permissionIds.Except(existingPermissionIds);
diff --git a/src/X1.Infrastructure/Repositories/Identity/UserRoleRepository.cs b/src/X1.Infrastructure/Repositories/Identity/UserRoleRepository.cs
index 1db76c1..2d4104d 100644
--- a/src/X1.Infrastructure/Repositories/Identity/UserRoleRepository.cs
+++ b/src/X1.Infrastructure/Repositories/Identity/UserRoleRepository.cs
@@ -45,7 +45,7 @@ public class UserRoleRepository : BaseRepository, IUserRoleRepository
{
var userRole = await QueryRepository.FirstOrDefaultAsync(
ur => ur.UserId == userId && ur.RoleId == roleId,
- cancellationToken);
+ cancellationToken: cancellationToken);
if (userRole != null)
{
@@ -68,7 +68,7 @@ public class UserRoleRepository : BaseRepository, IUserRoleRepository
{
var userRoles = await QueryRepository.FindAsync(
ur => ur.UserId == userId && roleIds.Contains(ur.RoleId),
- cancellationToken);
+ cancellationToken: cancellationToken);
if (userRoles.Any())
{
@@ -87,7 +87,7 @@ public class UserRoleRepository : BaseRepository, IUserRoleRepository
{
var userRoles = await QueryRepository.FindAsync(
ur => ur.UserId == userId,
- cancellationToken);
+ cancellationToken: cancellationToken);
return userRoles.Select(ur => ur.RoleId).ToList();
}
@@ -99,7 +99,7 @@ public class UserRoleRepository : BaseRepository, IUserRoleRepository
{
var userRoles = await QueryRepository.FindAsync(
ur => ur.RoleId == roleId,
- cancellationToken);
+ cancellationToken: cancellationToken);
return userRoles.Select(ur => ur.UserId).ToList();
}
@@ -111,7 +111,7 @@ public class UserRoleRepository : BaseRepository, IUserRoleRepository
{
return await QueryRepository.AnyAsync(
ur => ur.UserId == userId && ur.RoleId == roleId,
- cancellationToken);
+ cancellationToken: cancellationToken);
}
///
@@ -121,7 +121,7 @@ public class UserRoleRepository : BaseRepository, IUserRoleRepository
{
return await QueryRepository.FirstOrDefaultAsync(
ur => ur.UserId == userId && ur.RoleId == roleId,
- cancellationToken);
+ cancellationToken: cancellationToken);
}
#endregion