using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using FrameworkDAL.DTO.Project; using FrameworkDAL.DTO.Menu; using FrameworkDAL.Query.RoleVsModule; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using Newtonsoft.Json; namespace FrameworkDAL.CustomCode.RoleVsModule { public class RoleVsModulesDAL : IRoleVsModulesDAL { private readonly IQueryExecutor _QueryExecutor; public RoleVsModulesDAL(IQueryExecutor QueryExecutor) { _QueryExecutor = QueryExecutor; } public async Task> GetRoleVsModuleWithRoleId(int RoleId, LoginDTO LoginDTO) { try { string Sql = RoleVsModulesQB.GET_ROLEVSMODULES_BY_ROLEID; var Parameters = new { roleid = RoleId }; return (await _QueryExecutor.QueryAsync(LoginDTO, Sql, Parameters)).ToList(); } catch (Exception) { throw; } } public async Task> GetRoleVsModule(int RoleId, int ModuleId, string ModuleCode, string ModuleName, LoginDTO LoginDTO) { try { string Sql = RoleVsModulesQB.GET_ROLEVSMODULES; var Parameters = new { roleid = RoleId, moduleid = ModuleId, modulecode = ModuleCode, modulename = ModuleName }; return (await _QueryExecutor.QueryAsync(LoginDTO, Sql, Parameters)).ToList(); } catch (Exception) { throw; } } public async Task> GetUserRoleVsMenu(int RoleId, int ModuleId, LoginDTO LoginDTO) { try { string Sql = RoleVsModulesQB.GET_USERROLEVSMENU; var Parameters = new { roleid = RoleId, moduleid = ModuleId }; return (await _QueryExecutor.QueryAsync(LoginDTO, Sql, Parameters)).ToList(); } catch (Exception) { throw; } } public async Task> GetExistingForRole(int RoleId, LoginDTO LoginDTO) { try { return (await _QueryExecutor.QueryAsync(LoginDTO, RoleVsModulesQB.GET_EXISTING_ROLEVSMODULES_FOR_ROLE, new { RoleId })).ToList(); } catch (Exception) { throw; } } public async Task SaveRoleVsModules(IEnumerable RoleVsModulesDTOs, LoginDTO LoginDTO) { try { string Sql = RoleVsModulesQB.SAVE_ROLEVSMODULES; return await _QueryExecutor.BulkInsertAsync(LoginDTO, Sql, RoleVsModulesDTOs); } catch (Exception) { throw; } } public async Task UpdateRoleVsModules(RoleVsModulesDTO RoleVsModulesDTO, LoginDTO LoginDTO) { try { string Sql = RoleVsModulesQB.UPDATE_ROLEVSMODULES; return await _QueryExecutor.ExecuteAsync(LoginDTO, Sql, RoleVsModulesDTO); } catch (Exception) { throw; } } public async Task DeleteRoleVsModules(int RoleId, LoginDTO LoginDTO) { try { string Sql = RoleVsModulesQB.DELETE_ROLEVSMODULES_BY_ROLEID; var Parameters = new { roleid = RoleId }; return await _QueryExecutor.ExecuteAsync(LoginDTO, Sql, Parameters); } catch (Exception) { throw; } } public async Task DeleteRoleVsModulesByModuleId(int ModuleId, int RoleId, LoginDTO LoginDTO) { try { string Sql = RoleVsModulesQB.DELETE_ROLEVSMODULES_BY_MODULEID_ROLEID; var Parameters = new { moduleid = ModuleId, roleid = RoleId }; return await _QueryExecutor.ExecuteAsync(LoginDTO, Sql, Parameters); } catch (Exception) { throw; } } } }