Table of Contents

Работа с группами

Продукты: МоиОтчеты Облако, МоиОтчеты Корпоративный Сервер, МоиОтчеты Публикатор

В этой статье рассмотрен процесс создания новой группы, добавление пользователя в группу и получение списка пользователей группы.

Приступая к работе

Вам понадобятся следующие инструменты и возможности:

  1. Знания по использованию API key в Сервисных решениях.

    В этой статье будет пропущена дополнительная информация по аутентификации и авторизации.

  2. .NET SDK.

  3. Редактор C# кода или текстовый редактор, например Visual Studio Code.

  4. Активная подписка на один из продуктов: МоиОтчеты Облако, МоиОтчеты Корпоративный Сервер или МоиОтчеты Публикатор, в которой есть два слота для пользователя.

  5. Доступ в интернет.

Обратите внимание! Это руководство рассчитано, что вы уже знаете, как разработать своё приложение на языке программирования C#.

Примечание. Пункты выше описывают рекомендуемые инструменты.

Замечание

Важно! Добавить пользователя в группу возможно только если пользователь существует в рабочем пространстве.

Обратите внимание! Добавить пользователя в группу возможно только по его идентификатору.

Инструкция

  1. Для создания новой группы необходим идентификатор рабочего пространства и название новой группы.

    Для получения идентификатора рабочего пространства воспользуйтесь методом GetSubscriptionsAsync(int?, int?, 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 рабочих пространств из списка рабочих пространств пользователя, выбирает первое рабочее пространство и возвращает его идентификатор.

    Идентификатор рабочего пространства и подписки совпадает, т.к. к каждому рабочему пространству соотносится одна подписка.

  2. Для создания новой группы воспользуйтесь методом CreateGroupAsync(CreateGroupVM, 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, в результате функция вернёт идентификатор созданной группы.

  3. Для добавления нового пользователя в группу воспользуйтесь методом AddUserToGroupAsync(string, string, CancellationToken).

    public async Task AddUser(HttpClient httpClient, string groupId, string userId)
    {
        IGroupUsersClient groupUsersClient = new GroupUsersClient(httpClient);
    
        await groupUsersClient.AddUserToGroupAsync(groupId, userId);
    }
    

    В этом примере функция добавляет пользователя с идентификатором userId в группу с идентификатором groupId.

  4. Для получения списка пользователей в группе воспользуйтесь методом GetUsersInGroupAsync(string, int?, int?, 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.

Что дальше?