public IHttpActionResult GetPermissionByModule() { try { using (BD_DWHEntities db = new BD_DWHEntities()) { var lsModules = db.modules.Select(mdl => new ModuleViewModel { id = mdl.mdl_id, name = mdl.mdl_name }) .ToList(); var lsPermissionByModule = new List <PermissionByModuleViewModel>(); foreach (ModuleViewModel module in lsModules) { PermissionByModuleViewModel permByMod = new PermissionByModuleViewModel(); var lsPermission = new List <PermissionViewModel>(); lsPermission = db.permissionByModule.Where(perm => perm.mdl_id == module.id) .Select(perm => new PermissionViewModel { id = perm.perm_id, name = perm.permission.perm_name, description = perm.permission.perm_description }).ToList(); permByMod.module = module; permByMod.lsPermission = lsPermission; lsPermissionByModule.Add(permByMod); } return(Ok(lsPermissionByModule)); } } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public IHttpActionResult authUser(LoginViewModel loginUserRA) { try { ResponseViewModel resp = new ResponseViewModel(); using (BD_DWHEntities db = new BD_DWHEntities()) { var userAuth = db.logins.Where(lg => lg.log_userName == loginUserRA.userName && lg.log_password == loginUserRA.password) .FirstOrDefault(); if (userAuth != null) { var user = db.users.Where(u => u.usu_document == userAuth.usu_document) .Select(u => new UserViewModel { document = u.usu_document, kindOfDocument = new KindOfDocumentViewModel { id = u.kod_id, description = u.kindOfDocument.kod_description }, name = u.usu_name, lastName = u.usu_lastName, cellPhone = u.usu_cellphone, email = u.usu_email }) .FirstOrDefault(); var rolByUser = db.userByRol.Where(rl => rl.usu_document == user.document) .Select(rl => new RolViewModel { id = rl.roles.rol_id, name = rl.roles.rol_name, description = rl.roles.rol_description }) .FirstOrDefault(); user.rol = rolByUser; var permissionByRol = db.permissionByRole.Where(perm => perm.rol_id == rolByUser.id) .Select(perm => new PermissionByRoleViewModel { id = perm.permByRol_id, rol = new RolViewModel { id = perm.rol_id, name = perm.roles.rol_name } }) .ToList(); var permByMod = new List <PermissionByModuleViewModel>(); Dictionary <ModuleViewModel, PermissionViewModel> dicPermission = new Dictionary <ModuleViewModel, PermissionViewModel>(); foreach (var pbm in permissionByRol) { var permModule = db.permissionByRole.Where(p => p.permByRol_id == pbm.id) .Select( p => new PermissionByModuleViewModel { id = p.permByMdl_id, module = new ModuleViewModel { id = p.permissionByModule.mdl_id, name = p.permissionByModule.modules.mdl_name } } ).FirstOrDefault(); var permission = db.permissionByModule.Where(p => p.permByMdl_id == permModule.id) .Select(p => new PermissionViewModel { id = p.perm_id, name = p.permission.perm_name, description = p.permission.perm_description }).FirstOrDefault(); dicPermission.Add(permModule.module, permission); } var lsModules = db.modules.Select(m => new ModuleViewModel { id = m.mdl_id, name = m.mdl_name }).ToList(); List <PermissionByModuleViewModel> lsPermByMod = new List <PermissionByModuleViewModel>(); foreach (var module in lsModules) { PermissionByModuleViewModel pXm = new PermissionByModuleViewModel(); pXm.lsPermission = new List <PermissionViewModel>(); var lsPermission = from p in dicPermission where p.Key.id == module.id select new PermissionViewModel { id = p.Value.id, name = p.Value.name, description = p.Value.description }; pXm.module = module; foreach (var perm in lsPermission) { pXm.lsPermission.Add(perm); } lsPermByMod.Add(pXm); } user.rol.permissionByModule = lsPermByMod; resp.response = true; resp.message = "Bienvenido " + user.name + " " + user.lastName; resp.user = user; } else { resp.response = false; resp.message = "Usuario o contraseña inválidos"; } } return(Ok(resp)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public IHttpActionResult GetPermissionByRol(int rol_id) { try { using (BD_DWHEntities db = new BD_DWHEntities()) { var lsPermissionByModule = new List <PermissionByModuleViewModel>(); var lsPermissionByRol = db.permissionByRole.Where(perm => perm.rol_id == rol_id) .Select( perm => new PermissionByModuleViewModel { id = perm.permByMdl_id } ).ToList(); Dictionary <ModuleViewModel, PermissionViewModel> dicPermission = new Dictionary <ModuleViewModel, PermissionViewModel>(); foreach (var perByMod in lsPermissionByRol) { var module = db.permissionByModule.Where(p => p.permByMdl_id == perByMod.id) .Select(p => new ModuleViewModel { id = p.mdl_id, name = p.modules.mdl_name }) .FirstOrDefault(); var permission = db.permissionByModule.Where(p => p.permByMdl_id == perByMod.id) .Select(p => new PermissionViewModel { id = p.perm_id, name = p.permission.perm_name, description = p.permission.perm_description }) .FirstOrDefault(); dicPermission.Add(module, permission); } var lsModules = db.modules.Select(mdl => new ModuleViewModel { id = mdl.mdl_id, name = mdl.mdl_name }) .ToList(); foreach (ModuleViewModel module in lsModules) { var lsPermission = from p in dicPermission where p.Key.id == module.id select new PermissionViewModel { id = p.Value.id, name = p.Value.name, description = p.Value.description }; PermissionByModuleViewModel prm = new PermissionByModuleViewModel(); prm.module = module; prm.lsPermission = new List <PermissionViewModel>(); foreach (var perm in lsPermission) { prm.lsPermission.Add(perm); } lsPermissionByModule.Add(prm); } return(Ok(lsPermissionByModule)); } } catch (Exception ex) { return(BadRequest(ex.Message)); } }