You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
5.1 KiB
145 lines
5.1 KiB
2 months ago
|
using CellularManagement.Domain.Entities;
|
||
|
|
||
|
namespace CellularManagement.Domain.Repositories;
|
||
|
|
||
|
/// <summary>
|
||
|
/// 设备命令仓储接口
|
||
|
/// 负责设备实体的写入操作
|
||
|
/// </summary>
|
||
|
public interface IDeviceCommandRepository : ICommandRepository<Device>
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// 创建设备
|
||
|
/// </summary>
|
||
|
/// <param name="device">设备实体</param>
|
||
|
/// <param name="cancellationToken">取消令牌</param>
|
||
|
/// <returns>创建后的设备实体</returns>
|
||
|
Task<Device> CreateAsync(Device device, CancellationToken cancellationToken = default);
|
||
|
|
||
|
/// <summary>
|
||
|
/// 批量创建设备
|
||
|
/// </summary>
|
||
|
/// <param name="devices">设备实体集合</param>
|
||
|
/// <param name="cancellationToken">取消令牌</param>
|
||
|
/// <returns>创建后的设备实体集合</returns>
|
||
|
Task<IEnumerable<Device>> CreateRangeAsync(IEnumerable<Device> devices, CancellationToken cancellationToken = default);
|
||
|
|
||
|
/// <summary>
|
||
|
/// 更新设备
|
||
|
/// </summary>
|
||
|
/// <param name="device">设备实体</param>
|
||
|
/// <param name="cancellationToken">取消令牌</param>
|
||
|
/// <returns>是否更新成功</returns>
|
||
|
Task<bool> UpdateAsync(Device device, CancellationToken cancellationToken = default);
|
||
|
|
||
|
/// <summary>
|
||
|
/// 批量更新设备
|
||
|
/// </summary>
|
||
|
/// <param name="devices">设备实体集合</param>
|
||
|
/// <param name="cancellationToken">取消令牌</param>
|
||
|
/// <returns>是否更新成功</returns>
|
||
|
Task<bool> UpdateRangeAsync(IEnumerable<Device> devices, CancellationToken cancellationToken = default);
|
||
|
|
||
|
/// <summary>
|
||
|
/// 删除设备
|
||
|
/// </summary>
|
||
|
/// <param name="deviceId">设备ID</param>
|
||
|
/// <param name="cancellationToken">取消令牌</param>
|
||
|
/// <returns>是否删除成功</returns>
|
||
|
Task<bool> DeleteAsync(string deviceId, CancellationToken cancellationToken = default);
|
||
|
|
||
|
/// <summary>
|
||
|
/// 批量删除设备
|
||
|
/// </summary>
|
||
|
/// <param name="deviceIds">设备ID集合</param>
|
||
|
/// <param name="cancellationToken">取消令牌</param>
|
||
|
/// <returns>删除的设备数量</returns>
|
||
|
Task<int> DeleteRangeAsync(IEnumerable<string> deviceIds, CancellationToken cancellationToken = default);
|
||
|
|
||
|
/// <summary>
|
||
|
/// 启用设备
|
||
|
/// </summary>
|
||
|
/// <param name="deviceId">设备ID</param>
|
||
|
/// <param name="cancellationToken">取消令牌</param>
|
||
|
/// <returns>是否启用成功</returns>
|
||
|
Task<bool> EnableAsync(string deviceId, CancellationToken cancellationToken = default);
|
||
|
|
||
|
/// <summary>
|
||
|
/// 禁用设备
|
||
|
/// </summary>
|
||
|
/// <param name="deviceId">设备ID</param>
|
||
|
/// <param name="cancellationToken">取消令牌</param>
|
||
|
/// <returns>是否禁用成功</returns>
|
||
|
Task<bool> DisableAsync(string deviceId, CancellationToken cancellationToken = default);
|
||
|
|
||
|
/// <summary>
|
||
|
/// 批量启用设备
|
||
|
/// </summary>
|
||
|
/// <param name="deviceIds">设备ID集合</param>
|
||
|
/// <param name="cancellationToken">取消令牌</param>
|
||
|
/// <returns>启用的设备数量</returns>
|
||
|
Task<int> EnableRangeAsync(IEnumerable<string> deviceIds, CancellationToken cancellationToken = default);
|
||
|
|
||
|
/// <summary>
|
||
|
/// 批量禁用设备
|
||
|
/// </summary>
|
||
|
/// <param name="deviceIds">设备ID集合</param>
|
||
|
/// <param name="cancellationToken">取消令牌</param>
|
||
|
/// <returns>禁用的设备数量</returns>
|
||
|
Task<int> DisableRangeAsync(IEnumerable<string> deviceIds, CancellationToken cancellationToken = default);
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// 设备查询仓储接口
|
||
|
/// 负责设备实体的读取操作
|
||
|
/// </summary>
|
||
|
public interface IDeviceQueryRepository
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// 根据序列号获取设备
|
||
|
/// </summary>
|
||
|
Task<Device?> GetBySerialNumberAsync(string serialNumber, CancellationToken cancellationToken = default);
|
||
|
|
||
|
/// <summary>
|
||
|
/// 检查序列号是否存在
|
||
|
/// </summary>
|
||
|
Task<bool> ExistsBySerialNumberAsync(string serialNumber, string? excludeDeviceId = null, CancellationToken cancellationToken = default);
|
||
|
|
||
|
/// <summary>
|
||
|
/// 分页查询设备列表
|
||
|
/// </summary>
|
||
|
Task<(int TotalCount, IEnumerable<Device> Items)> GetPagedAsync(
|
||
|
int pageNumber,
|
||
|
int pageSize,
|
||
|
string? searchTerm = null,
|
||
|
bool? isDisabled = null,
|
||
|
CancellationToken cancellationToken = default);
|
||
|
|
||
|
/// <summary>
|
||
|
/// 获取所有启用的设备
|
||
|
/// </summary>
|
||
|
Task<IEnumerable<Device>> GetEnabledDevicesAsync(CancellationToken cancellationToken = default);
|
||
|
|
||
|
/// <summary>
|
||
|
/// 获取所有禁用的设备
|
||
|
/// </summary>
|
||
|
Task<IEnumerable<Device>> GetDisabledDevicesAsync(CancellationToken cancellationToken = default);
|
||
|
|
||
|
/// <summary>
|
||
|
/// 根据IP地址获取设备
|
||
|
/// </summary>
|
||
|
Task<Device?> GetByIPAddressAsync(string ipAddress, CancellationToken cancellationToken = default);
|
||
|
|
||
|
/// <summary>
|
||
|
/// 根据IP地址获取设备
|
||
|
/// </summary>
|
||
|
Task<Device?> GetByIdAsync(string id, CancellationToken cancellationToken = default);
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// 设备仓储接口
|
||
|
/// 组合命令和查询仓储接口
|
||
|
/// </summary>
|
||
|
public interface IDeviceRepository : IDeviceCommandRepository, IDeviceQueryRepository
|
||
|
{
|
||
|
}
|