﻿using System.Collections.Generic;

namespace BLL
{
  interface IRepositoryAsociaciones<Asociacion> where Asociacion : class, new()
  {
    /// <summary>
    /// Muestra toda la información del catálogo en Base de Datos por medio de una paginación y número de registros. Puede aplicarse de manera opcional un criterio de busqueda
    /// pero siempre debe tener un ordenamiento por registro en cuestión.
    /// </summary>
    /// <returns>
    /// El objeto del tipo '<see cref="IEnumerable"/>' para el tipo generico T.
    /// </returns>
    IEnumerable<Asociacion> GetAll(short iPaginaActual, short iNumeroRegistros, string strCriterioBusqueda, string strOrdenamiento);

    /// <summary>
    /// Agrega o añade un nuevo registro al catálogo.
    /// </summary>
    /// <param name="item">
    /// El elemento en cuestión del tipo genérico T.
    /// </param>
    void Add(Asociacion item);

    /// <summary>
    /// Elimina un nuevo registro del catálogo (eliminación lógica).
    /// </summary>
    /// <param name="item">
    /// El elemento en cuestión del tipo genérico T.
    /// </param>
    void Remove(Asociacion item);

  }
}
