using System.Threading; using System.Threading.Tasks; using GB5Shared.DTO.Framework.Login; using TMSDAL.DTO.Reports; namespace TMSBLL.Reports { public interface ITmsReportAccessControlBLL { // Enforces MROLEVSMENU.DaysLimit (only when the caller supplied a FromDate/ToDate range) and // RecordsLimit for a (RoleId, MenuId) pair. Fails open (no exception) when no MROLEVSMENU row // exists for this role/menu, matching AccountReportAccessControlBLL's documented convention. Task EnforceAsync(TmsReportCriteria criteria, int maxResult, int menuId, LoginDTO loginDTO, CancellationToken ct); } }