/// <summary> /// Guarda las modificaciones del rol. /// </summary> /// <param name="role"></param> /// <returns></returns> public bool Edit(Role role) { RoleMapper roleMapper = new RoleMapper(); RolePermissionMapper rolePermissionMapper = new RolePermissionMapper(); if (!IsValid(role)) { return(false); } if (roleMapper.Exists(role)) { string errorDescription = "Ya existe rol con ese nombre"; log.AddLogWarn("Edit", errorDescription, this); AddError(new ResultBE(ResultBE.Type.ALREADY_EXISTS, errorDescription)); return(false); } if (!roleMapper.Edit(role)) { string errorDescription = "No se pudo actualizar el rol."; log.AddLogCritical("Edit", errorDescription, this); AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription)); return(false); } // TODO - los roles tienen una lista de permisos y deberían guardarse en la misma transacción if (!rolePermissionMapper.Edit(role)) { string errorDescription = "No se ha podido guardar la nómina de permisos asociados al rol."; log.AddLogCritical("Edit", errorDescription, this); AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription)); return(false); } return(true); }
/// <summary> /// Persiste el rol y los permisos asociados. /// </summary> /// <param name="role"></param> /// <returns></returns> public bool Save(Role role) { RoleMapper roleMapper = new RoleMapper(); RolePermissionMapper rolePermissionMapper = new RolePermissionMapper(); if (!IsValid(role)) { return(false); } if (roleMapper.Exists(role)) { string errorDescription = "Ya existe un rol con ese nombre."; log.AddLogCritical("Save", errorDescription, this); AddError(new ResultBE(ResultBE.Type.ALREADY_EXISTS, errorDescription)); return(false); } if (!roleMapper.Save(role)) { string errorDescription = "Error al grabar rol"; log.AddLogCritical("Save", errorDescription, this); AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription)); return(false); } // TODO - los roles tienen una lista de permisos if (!rolePermissionMapper.SavePermissionForRole(role)) { string errorDescription = "Error al asociar los permisos al rol."; log.AddLogCritical("Save", errorDescription, this); AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription)); return(false); } return(true); }