﻿namespace Dike.Core.Application.Services
{
    /// <summary>
    /// Base class for all CRUD application services of the application.
    /// </summary>
    /// <typeparam name="TEntity">The type of the entity.</typeparam>
    /// <typeparam name="TEntityDto">The type of the entity based DTO object.</typeparam>
    /// <seealso cref="Dike.Core.Application.Services.CrudAppService{TEntity, TEntityDto, TPrimaryKey}" />
    public abstract class CrudAppService<TEntity, TEntityDto>
        : CrudAppService<TEntity, TEntityDto, int>
        where TEntity : class, Domain.Entities.IEntity<int>
        where TEntityDto : Dto.IEntityDto<int>
    {
        #region Constructors

        /// <summary>
        /// Initializes a new instance of the <see cref="CrudAppService{TEntity, TEntityDto}"/> class.
        /// </summary>
        /// <param name="repository">The repository to access the data.</param>
        protected CrudAppService(Domain.Repositories.IRepository<TEntity, int> repository)
            : base(repository)
        {
        }

        #endregion Constructors
    }
}