19/12/2013
Перечисление доступных пользователю Autodesk Vault хранилищ расширением в Vault Explorer
Заказчик хочет узнать как получить доступные хранилища для пользовательской группы из расширения для Vault Explorer при помощи API. Как вы знаете, мы можем получить список из пользовательского интерфейса Vault Explorer, Сервис -> Параметры -> Глобальные настройки -> Группы... для открытия диалога управления группами, дважды щелкните одну группу и нажмитие кнопку «Хранилища» для того чтобы увидеть доступные хранилища.
Теперь давайте осуществим это при помощи API. Вот отрывок кода, который это делает:
Код - C#: [Выделить]
- using Autodesk.Connectivity.Explorer.Extensibility;
- using Autodesk.Connectivity.WebServices;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using VDF = Autodesk.DataManagement.Client.Framework;
- namespace HelloWorldVaultExplorer
- {
- public class ListUserGroupVaults : IExplorerExtension
- {
- public IEnumerable<CommandSite> CommandSites()
- {
- CommandItem listGrougVaultsCmdItem = new CommandItem("HelloWorldVaultExplorer.ListUserGroupVaultsCmd",
- "Перечислить хранилища групп - Daniel");
- listGrougVaultsCmdItem.Execute += listGrougVaultsItem_Execute;
- CommandSite toolsMenuSite = new CommandSite("ListUserGroupVaultsCmd.Toolbar",
- "Меню перечисления пользовательских групп - Daniel");
- toolsMenuSite.Location = CommandSiteLocation.ToolsMenu;
- toolsMenuSite.AddCommand(listGrougVaultsCmdItem);
- List<CommandSite> sites = new List<CommandSite>();
- sites.Add(toolsMenuSite);
- return sites;
- }
- void listGrougVaultsItem_Execute(object sender, CommandItemEventArgs e)
- {
- try
- {
- //using VDF = Autodesk.DataManagement.Client.Framework
- VDF.Vault.Currency.Connections.Connection connection =
- e.Context.Application.Connection;
- string msg = "";
- Group[] groups = connection.WebServiceManager.AdminService.GetAllGroups();
- foreach (var group in groups)
- {
- GroupInfo grpInfo = connection.WebServiceManager.AdminService
- .GetGroupInfoByGroupId(group.Id);
- msg += grpInfo.Group.Name + "\n";
- msg += "Доступные для группы хранилища: \n";
- if (grpInfo.Vaults == null)
- {
- msg += " у этой группы нет доступных хранилищ. \n";
- continue;
- }
- foreach (var vault in grpInfo.Vaults)
- {
- msg += vault.Id + ": " + vault.Name + "\n";
- }
- }
- MessageBox.Show(msg);
- }
- catch (Exception ex)
- {
- // Если что-то пойдет не так, мы не хотим чтобы выскакивало сообщение об исключении в Vault Explorer.
- MessageBox.Show(«Ошибка: " + ex.Message);
- }
- }
- }
- }
А вот результат:
Обсуждение: http://adn-cis.org/forum/index.php?topic=405
Опубликовано 19.12.2013Отредактировано 19.12.2013 в 18:21:04