using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using FrameworkDAL.DTO.RoleVsMenu; using GB5Shared.DTO.Framework.Login; namespace FrameworkDAL.CustomCode.RoleVsMenu { public interface IRoleVsMenuDAL { Task DeleteRoleVsMenuForRole(int RoleId, LoginDTO LoginDTO); Task DeleteRoleVsMenu(int RoleId, int ModuleId, LoginDTO LoginDTO); Task DeleteRoleVsMenuForMenu(int RoleId, int MenuId, LoginDTO LoginDTO); Task SaveRoleVsMenu(IEnumerable RoleVsMenuDTOs, LoginDTO LoginDTO); Task> GetRoleVsMenu(int RoleId, int ModuleId, LoginDTO LoginDTO); // ── Diff-based save (fixes the delete+reinsert-everything Save() shape) ────────── // Statement building/execution stays in RoleVsMenuBLL, directly via IQueryExecutor — // matching this class's own pre-existing convention (BLL already called // _queryExecutor.ExecuteAsync directly with DAL-returned SQL text before this fix). Task> GetExistingForModule(int RoleId, int ModuleId, LoginDTO LoginDTO); Task> GetExistingForMenuIds(int RoleId, IEnumerable MenuIds, LoginDTO LoginDTO); } }