Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }