/// <summary> /// Определяет содержится ли объект в таблице соответствий /// </summary> /// <param name="roleId">Идентификатор роли</param> /// <param name="userId">Идентификатор пользователя</param> /// <returns>Логической выражение содержится или нет</returns> public bool IsExist(Guid roleId, Guid userId) { string existQuery = string.Format( "SELECT COUNT(*) " + "FROM [dbo].[UserRole] AS ur " + "WHERE ur.user_id = '{0}' AND ur.role_id = '{1}'" , userId.ToString(), roleId.ToString()); int count = (int)(dbContext.ExecuteScalar(existQuery, CommandType.Text)); return(count > 0); }
/// <summary> /// Функция определяет доступен ли элемент управления для роли /// </summary> /// <param name="module">Элемент управления</param> /// <param name="role">Роль пользователя</param> /// <returns>Логическое значение доступен элемент или нет</returns> public bool ControlAvailable(Module module, Role role) { int count = (int)dbContext.ExecuteScalar(string.Format( "SELECT COUNT(*) " + "FROM [dbo].[ModuleRole] AS mr " + "WHERE module_id = '{0}' AND role_id = '{1}'", module.Id.ToString(), role.Id.ToString()) , System.Data.CommandType.Text); if (count == 1) return true; else if (count == 0) return false; else throw new Exception(string.Format("Невозможно определить права для {0} и {1}.", module.Name, role.Name)); }
/// <summary> /// Добавление новой роли в таблицу /// </summary> /// <param name="role">Объект класса Role</param> /// <returns>ID новой записи</returns> /// <exception cref="System.ArgumentNullException">Исключение выбрасывается когда параметр role равен null</exception> public Guid Add(Role role) { string recordId; if (role == null) { throw new ArgumentNullException("role"); } string queryRole = String.Format( "INSERT INTO [dbo].[Role] " + "([id] ,[name] ,[description] ,[creator_id], [create_date]) " + "VALUES " + "(@id ,@name ,@description, '{0}', GETDATE()) " + "SELECT @id ", ((DBUser)CurrentUser.Instance).Id); Dictionary <string, object> paramsDictionary = new Dictionary <string, object>(); role.toDictionary(paramsDictionary); recordId = dbContext.ExecuteScalar(queryRole, CommandType.Text, paramsDictionary).ToString(); return(Guid.Parse(recordId)); }