logo

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