using FrameworkBLL.RoleVsMenu; using FrameworkDAL.DTO.RoleVsMenu; using GB5Shared.DTO.Framework.ResponseStandard; using Microsoft.AspNetCore.Mvc; using GB5Shared.DTO.Framework.Login; using GB5Shared.DTO.Framework.SuccessORError; using GB5Shared.DTO.Framework.Logging; using FrameworkDAL.CustomCode.RoleVsMenu; using static GB5Shared.GB5Constant.Constant; namespace FrameworkSL.Controllers.RoleVsMenu { [ApiController] [Route("[controller]")] public class RoleVsMenuService : ControllerBase { private readonly IRoleVsMenuBLL _IRoleVsMenuBLL; private readonly IRoleVsMenuDAL _IRoleVsMenuDAL; public RoleVsMenuService(IRoleVsMenuBLL IRoleVsMenuBLL , IRoleVsMenuDAL IRoleVsMenuDAL) { _IRoleVsMenuBLL = IRoleVsMenuBLL; _IRoleVsMenuDAL = IRoleVsMenuDAL; } [HttpPost("SaveRoleVsMenu")] public async Task> SaveRoleVsMenu(int ModuleId, int PageId, List RoleVsMenuDTO ,[FromHeader(Name = "Login")] string LoginDTOJson) { var LoginDTO = Newtonsoft.Json.JsonConvert.DeserializeObject(LoginDTOJson); try { string result = await _IRoleVsMenuBLL.Save(ModuleId, PageId, RoleVsMenuDTO, LoginDTO); SuccessDTO successDTO = new SuccessDTO { Body = result, Status = "Success", ValidationBody = "Details Saved Successfully" }; return await GB5Shared.ResponseStandard.Response.CreateSuccessResponse(successDTO, CacheKeyLevel.NOT_REQUIRED,LoginDTO!); } catch (Exception ex) { return await GB5Shared.ResponseStandard.Response.CreateExceptionError( ex, CacheKeyLevel.NOT_REQUIRED, LoginDTO!,ex.Message, 500 ); } } /// /// GetRoleVsMenu /// /// /// /// /// [HttpGet("GetRoleVsMenu")] public async Task> GetRoleVsMenu( int RoleId,int ModuleId, [FromHeader(Name = "Login")] string LoginDTOJson) { var LoginDTO = Newtonsoft.Json.JsonConvert.DeserializeObject(LoginDTOJson); try { SuccessDTO SucessDTO = new SuccessDTO(); string Json = ""; if (RoleId == 0 || ModuleId == 0) { SucessDTO.Id = 0; SucessDTO.Body = "Select RoleId and ModuleId."; return await GB5Shared.ResponseStandard.Response.CreateSuccessResponse(SucessDTO, CacheKeyLevel.NOT_REQUIRED, LoginDTO!); } else { Json = await _IRoleVsMenuBLL.GetRoleVsMenu(RoleId, ModuleId, LoginDTO); SucessDTO.Id = 0; SucessDTO.Body = Json; return await GB5Shared.ResponseStandard.Response.CreateSuccessResponse(SucessDTO, CacheKeyLevel.NOT_REQUIRED, LoginDTO!); } } catch (Exception ex) { return await GB5Shared.ResponseStandard.Response.CreateExceptionError( ex, CacheKeyLevel.NOT_REQUIRED, LoginDTO,ex.Message, 500 ); } } /// /// DeleteRoleVsMenu /// /// /// /// /// [HttpDelete("DeleteRoleVsMenu")] public async Task> DeleteRoleVsMenu(int RoleId, int ModuleId, [FromHeader(Name = "Login")] string LoginDTOJson) { var LoginDTO = Newtonsoft.Json.JsonConvert.DeserializeObject(LoginDTOJson); try { SuccessDTO SucessDTO = new SuccessDTO(); string Json = ""; if (RoleId == 0 || ModuleId == 0) { SucessDTO.Id = 0; SucessDTO.Body = "Select RoleId and ModuleId."; return await GB5Shared.ResponseStandard.Response.CreateSuccessResponse(SucessDTO, CacheKeyLevel.NOT_REQUIRED, LoginDTO); } else { Json = await _IRoleVsMenuDAL.DeleteRoleVsMenu(RoleId, ModuleId, LoginDTO); SucessDTO.Id = 0; SucessDTO.Body = Json; return await GB5Shared.ResponseStandard.Response.CreateSuccessResponse(SucessDTO, CacheKeyLevel.NOT_REQUIRED, LoginDTO); } } catch (Exception ex) { return await GB5Shared.ResponseStandard.Response.CreateExceptionError( ex, CacheKeyLevel.NOT_REQUIRED, LoginDTO,ex.Message, 500 ); } } } }