Работа с группами
В этой статье рассмотрен процесс создания новой группы, добавление пользователя в группу и получение списка пользователей группы.
Приступая к работе
Вам понадобятся следующие инструменты и возможности:
Знания по использованию API key в МоиОтчеты Облако.
В этой статье будет пропущена дополнительная информация по аутентификации и авторизации.
Редактор C# кода или текстовый редактор, например Visual Studio Code.
Активная подписка для МоиОтчеты Облако, в которой есть два слота для пользователя.
Доступ в интернет.
Обратите внимание! Это руководство рассчитано, что вы уже знаете, как разработать своё приложение на языке программирования C#.
Обратите внимание! Пункты выше описывают рекомендуемые инструменты.
Замечание
Обратите внимание! Добавить пользователя в группу возможно только если пользователь существует в рабочем пространстве.
Обратите внимание! Добавить пользователя в группу возможно только по его идентификатору.
Инструкция
Для создания новой группы необходим идентификатор рабочего пространства и название новой группы.
Для получения идентификатора рабочего пространства воспользуйтесь методом GetSubscriptionsAsync(Nullable<Int32>, Nullable<Int32>, System.Threading.CancellationToken).
public async Task<string> GetSubscriptionId(HttpClient httpClient) { ISubscriptionsClient subscriptionsClient = new SubscriptionsClient(httpClient); SubscriptionsVM subscriptions = await subscriptionsClient.GetSubscriptionsAsync(0, 10); SubscriptionVM subscription = subscriptions.Subscriptions.First(); return subscription.Id; }
В этом примере функция запрашивает первые 10 рабочих пространств из списка рабочих пространств пользователя, выбирает первое рабочее пространство и возвращает его идентификатор.
Идентификатор рабочего пространства и подписки совпадает, т.к. к каждому рабочему пространству соотносится одна подписка.
Для создания новой группы воспользуйтесь методом CreateGroupAsync(CreateGroupVM, System.Threading.CancellationToken).
public async Task<string> CreateGroup(HttpClient httpClient, string subscriptionId, string groupName) { IGroupsClient groupsClient = new GroupsClient(httpClient); CreateGroupVM viewModel = new CreateGroupVM() { Name = groupName, SubscriptionId = subscriptionId }; GroupVM group = await groupsClient.CreateGroupAsync(viewModel); return group.Id; }
В этом примере функция создаёт новую группу с именем группы
groupName
для рабочего пространства с идентификаторомsubscriptionId
, в результате функция вернёт идентификатор созданной группы.Для добавления нового пользователя в группу воспользуйтесь методом AddUserToGroupAsync(String, String, System.Threading.CancellationToken).
public async Task AddUser(HttpClient httpClient, string groupId, string userId) { IGroupUsersClient groupUsersClient = new GroupUsersClient(httpClient); await groupUsersClient.AddUserToGroupAsync(groupId, userId); }
В этом примере функция добавляет пользователя с идентификатором
userId
в группу с идентификаторомgroupId
.Для получения списка пользователей в группе воспользуйтесь методом GetUsersInGroupAsync(String, Nullable<Int32>, Nullable<Int32>, System.Threading.CancellationToken).
public async Task<IEnumerable<string>> GetUsers(HttpClient httpClient, string groupId) { IGroupUsersClient groupUsersClient = new GroupUsersClient(httpClient); GroupUsersVM users = await groupUsersClient.GetUsersInGroupAsync(groupId, 0, 10); return users.Users.Select(m => m.UserId); }
В этом примере функция запрашивает первые 10 пользователей из группы с идентификатором
groupId
.