[ELMA3] Добавление участников проекта в сценарии
В данной статье рассматривается процесс добавления участников проекта сценарием, а также создание новой проектной роли.
Добавление пользователей в проектную роль «Участники проекта»
Чтобы добавить пользователей в проектную роль Участники проекта, используйте следующий сценарий.
Пример сценария с использованием PublicAPI
Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.12.1 включительно.
Контекстные переменные:
- context.Proekt – переменная типа Базовый тип проекта;
- context.Poljzovateli – переменная типа Пользователь (список).
Пространство имен:
using EleWise.ELMA.API;
Текст сценария:
PublicAPI.Projects.ProjectRole.AddUserToProjectRole(context.Proekt, PublicAPI.Projects.ProjectRole.Filter().Query("Name = ’Участники проекта’ and Project ="+context.Proekt.Id.ToString()).Find().FirstOrDefault(), context.Poljzovateli); //Добавляем пользователей из переменной context.Poljzovateli в проект context.Proekt в группу "Участники проекта"
Пример сценария без использования PublicAPI
Пространства имен:
using EleWise.ELMA.Security.Models; using EleWise.ELMA.Security.Managers;
Текст сценария:
foreach (var role in context.Proekt.ProjectRoles) { if (role.Name == "Участники проекта") { var projUsers = UserGroupManager.Instance.GetUsersByGroup(11); //в данном случае участники проекта берутся из группы пользователей с id 11, т.е. из группы все пользователи foreach (var itemUser in projUsers) { role.Users.Add((User)UserManager.Instance.Load(itemUser)); } role.Save();
Создание новой проектной роли
В базовом проекте используется 3 типа ролей: участники, менеджеры и кураторы проекта. Если требуется введение новой проектной роли, можно воспользоваться следующим сценарием.
Пример сценария с использованием PublicAPI
Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.12.1 включительно.
Контекстные переменные:
- context.Proekt – переменная типа Проект;
- context.Poljzovateli – переменная типа Пользователь (список).
Пространство имен:
using EleWise.ELMA.API;
Текст сценария:
var projectRole = PublicAPI.Projects.ProjectRole.CreateProjectRole(context.Proekt, "Роль проекта"); foreach (var users in context.Poljzovateli){ projectRole.Users.Add(users); } projectRole.Save();
Пример сценария без использования PublicAPI
Пространства имен:
using EleWise.ELMA.Projects.Models; using EleWise.ELMA.Security.Managers; using EleWise.ELMA.Security.Models;
Текст сценария:
var role = new ProjectRole(); role.Project = context.Proekt; role.Name = "Ответственные за бюджет проекта"; role.CreationAuthor = context.Menedzher; role.ChangeAuthor = context.Menedzher; role.Save(); //далее пользователи из группы пользователей записываются в роль var projUsers = UserGroupManager.Instance.GetUsersByGroup(11); foreach (var itemUser in projUsers) { role.Users.Add((User)UserManager.Instance.Load(itemUser)); } role.Save();