Added preprocessor directives for .NET framework compatibility. Modified `using` directives to be framework-specific. Improved code formatting for better readability. Introduced obsolete attributes for deprecated methods, recommending `MediatR` as an alternative. Added XML documentation for clarity and maintainability.
65 lines
2.8 KiB
C#
65 lines
2.8 KiB
C#
#if NET
|
|
namespace DigitalData.Core.Abstraction.Application.Repository
|
|
{
|
|
/// <summary>
|
|
/// Defines the contract for CRUD operations on a repository for entities of type TEntity.
|
|
/// </summary>
|
|
/// <typeparam name="TEntity">The type of the entity this repository works with.</typeparam>
|
|
/// <typeparam name="TId">The type of the identifier for the entity.</typeparam>
|
|
[Obsolete("Use IRepository")]
|
|
public interface ICRUDRepository<TEntity, TId> where TEntity : class
|
|
{
|
|
/// <summary>
|
|
/// Adds a new entity to the repository.
|
|
/// </summary>
|
|
/// <param name="entity">The entity to add.</param>
|
|
/// <returns>The added entity, or null if the entity cannot be added.</returns>
|
|
Task<TEntity?> CreateAsync(TEntity entity);
|
|
|
|
/// <summary>
|
|
/// Retrieves an entity by its identifier from the repository.
|
|
/// </summary>
|
|
/// <param name="id">The identifier of the entity to retrieve.</param>
|
|
/// <returns>The entity found, or null if no entity is found.</returns>
|
|
Task<TEntity?> ReadByIdAsync(TId id);
|
|
|
|
/// <summary>
|
|
/// Retrieves all entities from the repository.
|
|
/// </summary>
|
|
/// <returns>A collection of all entities.</returns>
|
|
Task<IEnumerable<TEntity>> ReadAllAsync();
|
|
|
|
/// <summary>
|
|
/// Updates an existing entity in the repository.
|
|
/// </summary>
|
|
/// <param name="entity">The entity to update.</param>
|
|
/// <returns>The updated entity.</returns>
|
|
Task<bool> UpdateAsync(TEntity entity);
|
|
|
|
/// <summary>
|
|
/// Deletes an entity from the repository.
|
|
/// </summary>
|
|
/// <param name="entity">The entity to delete.</param>
|
|
/// <returns>If entity is deleted, return true othwerwise return false.</returns>
|
|
Task<bool> DeleteAsync(TEntity entity);
|
|
|
|
/// <summary>
|
|
/// Asynchronously counts all entities in the repository.
|
|
/// </summary>
|
|
/// <returns>The total number of entities in the repository.</returns>
|
|
Task<int> CountAsync();
|
|
|
|
/// <summary>
|
|
/// Asynchronously counts the number of entities in the repository that match a specific identifier.
|
|
/// </summary>
|
|
/// <param name="id">The identifier of the entities to count.</param>
|
|
/// <returns>The number of entities with the specified identifier.</returns>
|
|
/// <remarks>
|
|
/// This method provides a count of entities in the database that match the given identifier.
|
|
/// If there are multiple entities with the same identifier, they will all be counted.
|
|
/// The default implementation assumes that the identifier is unique for each entity.
|
|
/// </remarks>
|
|
Task<int> CountAsync(TId id);
|
|
}
|
|
}
|
|
#endif |