Добрый день! Банальная тема. Получаю коллекцию начальников: var chiefs = PublicAPI.Portal.Security.OrganizationItem.GetChiefByUser(context.Poljzovatelj); и, о ужас!!!, сортированную по фамилиям. Как получить иерархию? Мне нужен ближайший начальник.
Добрый день, думаю вам нужен чуть-чуть другой метод, для получения руководителей в иерархическом порядке: Код: var chiefs = PublicAPI.Portal.Security.OrganizationItem.GetUserChiefsHierarchy(context.Poljzovatelj);
Может быть, но имеем явное несовпадение типов: Мне нужен тип User, а в вашем случае переменная chiefs имеет тип HierarchyChiefDisplayModel Какая-то "Модель отображения".
Действительно, не обратил внимания. Тогда предлагаю следующий код: Код: var managers = PublicAPI.Portal.Security.OrganizationItem.GetUserChiefsHierarchy(user).GetUsersHierarchy(user.OrganizationItems.FirstOrDefault()); Замечу, что для использования типа HierarchyChiefDisplayModel необходимо добавить сборку EleWise.ELMA.Security. Надеюсь код работает, сам не тестировал. Так же можете посмотреть вот эту статью из базы знаний: https://www.elma-bpm.ru/kb/article-35.html
Тест выдал ошибку: Ошибка при выполнении сценария: Значение не может быть неопределенным. Имя параметра: key [System.ArgumentNullException: Значение не может быть неопределенным. Имя параметра: key] в System.Collections.Generic.Dictionary`2.FindEntry(TKey key) в System.Collections.Generic.Dictionary`2.get_Item(TKey key) в EleWise.ELMA.Security.Managers.HierarchyChiefDisplayModel.GetUsersHierarchy(IOrganizationItem startItem) Статью прочитал. Думал что с использованием PublicAPI будет правильно (код короче), но в этом случае First() выдает глупости. Без использования PublicAPI код более громоздкий, но зато var chief = chiefs.First (); выдает нужный результат. Можно сказать что вопрос решился, но хотелось бы уметь влиять на результат .GetChiefByUser(), т.е. получить не просто список начальников, а именно в иерархии.