[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();