using System.Data.Common; using EntitlementDAL.DTOs; using GB5Shared.DTO.Framework.Login; namespace EntitlementDAL.Interfaces; public interface IFeatureGroupDAL { Task GetByIdAsync(int featureGroupId, LoginDTO login, CancellationToken ct); Task> GetListAsync(LoginDTO login, CancellationToken ct); Task SaveAsync(FeatureGroupDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task UpdateAsync(FeatureGroupDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task DeleteAsync(int featureGroupId, LoginDTO login, DbTransaction tx, CancellationToken ct); } public interface IFeatureDAL { Task GetByIdAsync(int featureId, LoginDTO login, CancellationToken ct); Task GetByCodeAsync(string featureCode, LoginDTO login, CancellationToken ct); Task> GetListAsync(LoginDTO login, CancellationToken ct); /// Feature.svc/GetList's filtered variant — pieOnly=true restricts to /// ISEXPOSEDTOPIE=1 rows (the only view an anonymous caller is ever allowed to see). Task> GetListFilteredAsync(bool pieOnly, LoginDTO login, CancellationToken ct); Task SaveAsync(FeatureDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task UpdateAsync(FeatureDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task DeleteAsync(int featureId, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> GetMenuSetMapByFeatureAsync(int featureId, LoginDTO login, CancellationToken ct); Task SaveMenuSetMapAsync(FeatureMenuSetMapDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); }