ADN Open CIS
Сообщество программистов Autodesk в СНГ

19/12/2013

Перечисление доступных пользователю Autodesk Vault хранилищ расширением в Vault Explorer

Заказчик хочет узнать как получить доступные хранилища для пользовательской группы из расширения для Vault Explorer при помощи API. Как вы знаете, мы можем получить список из пользовательского интерфейса Vault Explorer, Сервис -> Параметры -> Глобальные настройки -> Группы... для открытия диалога управления группами, дважды щелкните одну группу и нажмитие кнопку «Хранилища» для того чтобы увидеть доступные хранилища.

Теперь давайте осуществим это при помощи API. Вот отрывок кода, который это делает:

Код - C#: [Выделить]
  1. using Autodesk.Connectivity.Explorer.Extensibility;
  2. using Autodesk.Connectivity.WebServices;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using VDF = Autodesk.DataManagement.Client.Framework;
  9.  
  10. namespace HelloWorldVaultExplorer
  11. {
  12.     public class ListUserGroupVaults : IExplorerExtension
  13.     {
  14.         public IEnumerable<CommandSite> CommandSites()
  15.         {
  16.             CommandItem listGrougVaultsCmdItem = new CommandItem("HelloWorldVaultExplorer.ListUserGroupVaultsCmd",
  17.                                                 "Перечислить хранилища групп - Daniel");
  18.  
  19.             listGrougVaultsCmdItem.Execute += listGrougVaultsItem_Execute;
  20.  
  21.             CommandSite toolsMenuSite = new CommandSite("ListUserGroupVaultsCmd.Toolbar",
  22.                                                     "Меню перечисления пользовательских групп - Daniel");
  23.             toolsMenuSite.Location = CommandSiteLocation.ToolsMenu;
  24.             toolsMenuSite.AddCommand(listGrougVaultsCmdItem);
  25.  
  26.             List<CommandSite> sites = new List<CommandSite>();
  27.             sites.Add(toolsMenuSite);
  28.  
  29.             return sites;
  30.         }
  31.  
  32.         void listGrougVaultsItem_Execute(object sender, CommandItemEventArgs e)
  33.         {
  34.             try
  35.             {
  36.                 //using VDF = Autodesk.DataManagement.Client.Framework
  37.                 VDF.Vault.Currency.Connections.Connection connection =
  38.                                 e.Context.Application.Connection;
  39.                 string msg = "";
  40.                 Group[] groups = connection.WebServiceManager.AdminService.GetAllGroups();
  41.                 foreach (var group in groups)
  42.                 {
  43.                     GroupInfo grpInfo = connection.WebServiceManager.AdminService
  44.                             .GetGroupInfoByGroupId(group.Id);
  45.                     msg += grpInfo.Group.Name + "\n";
  46.                     msg += "Доступные для группы хранилища: \n";
  47.                     if (grpInfo.Vaults == null)
  48.                     {
  49.                         msg += " у этой группы нет доступных хранилищ. \n";
  50.                         continue;
  51.                     }
  52.                     foreach (var vault in grpInfo.Vaults)
  53.                     {
  54.                         msg += vault.Id + ": " + vault.Name + "\n";
  55.                     }
  56.                 }
  57.                 MessageBox.Show(msg);
  58.             }
  59.             catch (Exception ex)
  60.             {
  61.                 // Если что-то пойдет не так, мы не хотим чтобы выскакивало сообщение об исключении в Vault Explorer.
  62.                 MessageBox.Show(«Ошибка: " + ex.Message);
  63.             }
  64.         }
  65.     }
  66. }

А вот результат:

Источник: http://adndevblog.typepad.com/manufacturing/2013/10/list-users-accessible-vaults-in-autodesk-vault-explorer-extension.html

 

Обсуждение: http://adn-cis.org/forum/index.php?topic=405

Опубликовано 19.12.2013
Отредактировано 19.12.2013 в 18:21:04