public List <ModuleWisePageAccessEntity> GetAllModulesWisePermissions()
        {
            List <ModuleWisePageAccessEntity> listModuleswisePageAccessEntity = new List <ModuleWisePageAccessEntity>();

            IAccountManagementRepository accountRepository = DataFactory.DataFactory.CreateAccountmanagementRepositoryInstance();
            var AllModulesData = accountRepository.GetModulewisePermissionList();

            foreach (var moduleWisePermissionData in AllModulesData)
            {
                ModuleWisePageAccessEntity modulwisePageAccessEntity = new ModuleWisePageAccessEntity();
                modulwisePageAccessEntity.Module            = new ModuleEntity();
                modulwisePageAccessEntity.Module.ModuleId   = moduleWisePermissionData.Module.ModuleId;
                modulwisePageAccessEntity.Module.ModuleName = moduleWisePermissionData.Module.ModuleName;
                List <PageEntity> listPageEntity = new List <PageEntity>();
                foreach (var permissionData in moduleWisePermissionData.pageList)
                {
                    PageEntity pageEntity = new PageEntity();
                    pageEntity.PageId   = permissionData.PageId;
                    pageEntity.PageName = permissionData.PageName;
                    listPageEntity.Add(pageEntity);
                }
                modulwisePageAccessEntity.pageList = listPageEntity;
                listModuleswisePageAccessEntity.Add(modulwisePageAccessEntity);
            }


            return(listModuleswisePageAccessEntity);
        }
        public List <ModuleWisePageAccessEntity> GetModulewiseMenuAccessForRole(int roleId)
        {
            List <ModuleWisePageAccessEntity> listModuleWisePageAccessEntity = new List <ModuleWisePageAccessEntity>();
            IAccountManagementRepository      accountRepository = DataFactory.DataFactory.CreateAccountmanagementRepositoryInstance();
            var listModulewiseMenuAccessForRoleData             = accountRepository.GetModulewiseMenuAccessForRoleData(roleId);

            foreach (var modulewiseMenuAccessForRoleData in listModulewiseMenuAccessForRoleData)
            {
                ModuleWisePageAccessEntity moduleWisePageAccessEntity = new ModuleWisePageAccessEntity();
                moduleWisePageAccessEntity.Module            = new ModuleEntity();
                moduleWisePageAccessEntity.Module.ModuleId   = modulewiseMenuAccessForRoleData.Module.ModuleId;
                moduleWisePageAccessEntity.Module.ModuleName = modulewiseMenuAccessForRoleData.Module.ModuleName;
                foreach (var pageData in modulewiseMenuAccessForRoleData.pageList)
                {
                    PageEntity page = new PageEntity();

                    page.PageId   = pageData.PageId;
                    page.PageName = pageData.PageName;
                    page.PageUrl  = pageData.PageUrl;
                    moduleWisePageAccessEntity.pageList.Add(page);
                }
                listModuleWisePageAccessEntity.Add(moduleWisePageAccessEntity);
            }
            return(listModuleWisePageAccessEntity);
        }
        public async Task <HttpResponseMessage> MapModuleWisePageAccessWithRole(List <ModuleWisePageAccessModel> moduleWisePageAccessModelList)
        {
            try
            {
                List <ModuleWisePageAccessEntity> listModulewisepageAccessEntity = new List <ModuleWisePageAccessEntity>();



                foreach (var moduleWisePageAccessModel in moduleWisePageAccessModelList)
                {
                    ModuleWisePageAccessEntity moduleWisePageAccessEntity = new ModuleWisePageAccessEntity();
                    moduleWisePageAccessEntity.Module            = new ModuleEntity();
                    moduleWisePageAccessEntity.Module.ModuleId   = moduleWisePageAccessModel.Module.ModuleId;
                    moduleWisePageAccessEntity.Module.ModuleName = moduleWisePageAccessModel.Module.ModuleName;
                    moduleWisePageAccessEntity.Role = new RoleEntity();
                    if (moduleWisePageAccessModel.Role != null)
                    {
                        if (moduleWisePageAccessModel.Role.RoleId != 0)
                        {
                            moduleWisePageAccessEntity.Role.RoleId = moduleWisePageAccessModel.Role.RoleId;
                        }
                    }

                    foreach (var pageModel in moduleWisePageAccessModel.pageList)
                    {
                        PageEntity pageEntity = new PageEntity();

                        pageEntity.PageId         = pageModel.PageId;
                        pageEntity.PageName       = pageModel.PageName;
                        pageEntity.IsPageSelected = pageModel.IsPageSelected;
                        moduleWisePageAccessEntity.pageList.Add(pageEntity);
                    }
                    listModulewisepageAccessEntity.Add(moduleWisePageAccessEntity);
                }
                BusinessFactory.CreateAccountManagementBusinessInstance().MapModuleWisePageAccessWithRole(listModulewisepageAccessEntity);
                return(Request.CreateResponse(HttpStatusCode.OK));
            }
            catch (System.Exception e)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e));
            }
        }