static void Main(string[] args) { VDF.Vault.Results.LogInResult lr = VDF.Vault.Library.ConnectionManager.LogIn ("localhost", "TestVault", "administrator", "", VDF.Vault.Currency.Connections.AuthenticationFlags.ReadOnly, null); if (lr.Success) { m_conn = lr.Connection; VDF.Vault.Forms.Settings.SelectEntitySettings settings = new VDF.Vault.Forms.Settings.SelectEntitySettings(); VDF.Vault.Forms.Settings.SelectEntitySettings.EntityRegularExpressionFilter[] filters = new VDF.Vault.Forms.Settings.SelectEntitySettings.EntityRegularExpressionFilter[] { new VDF.Vault.Forms.Settings.SelectEntitySettings.EntityRegularExpressionFilter("Assembly Files (*.iam)", ".+iam", VDF.Vault.Currency.Entities.EntityClassIds.Files), new VDF.Vault.Forms.Settings.SelectEntitySettings.EntityRegularExpressionFilter("Part Files (*.ipt)", ".+ipt", VDF.Vault.Currency.Entities.EntityClassIds.Files) }; VDF.Vault.Forms.Controls.VaultBrowserControl.Configuration initialConfig = new VDF.Vault.Forms.Controls.VaultBrowserControl.Configuration(m_conn, settings.PersistenceKey, null); initialConfig.AddInitialColumn(VDF.Vault.Currency.Properties.PropertyDefinitionIds.Server.EntityName); initialConfig.AddInitialColumn(VDF.Vault.Currency.Properties.PropertyDefinitionIds.Server.CheckInDate); initialConfig.AddInitialColumn(VDF.Vault.Currency.Properties.PropertyDefinitionIds.Server.Comment); initialConfig.AddInitialColumn(VDF.Vault.Currency.Properties.PropertyDefinitionIds.Server.ThumbnailSystem); initialConfig.AddInitialSortCriteria(VDF.Vault.Currency.Properties.PropertyDefinitionIds.Server.EntityName, true); settings.DialogCaption = "Select Part or Assembly file to Upload"; settings.ActionableEntityClassIds.Add("FILE"); settings.MultipleSelect = false; settings.ConfigureActionButtons("Upload", null, null, false); settings.ConfigureFilters("Applied filter", filters, null); settings.OptionsExtensibility.GetGridConfiguration = e => initialConfig; Console.WriteLine("Launching Vault Browser..."); VDF.Vault.Forms.Results.SelectEntityResults results = VDF.Vault.Forms.Library.SelectEntity(m_conn, settings); if (results != null) { VDF.Vault.Currency.Entities.FileIteration fileIter = results.SelectedEntities.FirstOrDefault() as VDF.Vault.Currency.Entities.FileIteration; string result = Util.DownloadFilestoFolder(fileIter, m_conn); if (result != "Directory not found") { Task t = Task.Run((Util.UploadAssembly)); t.Wait(); } } } }
/// <summary> /// Launches a Vault UI to select Ipt file /// </summary> /// <returns>Selected File</returns> private static Autodesk.Connectivity.WebServices.File SelectFilefromUI() { VDF.Vault.Currency.Entities.FileIteration fileIter = null; _connection = VDF.Vault.Forms.Library.Login(null); if (_connection.IsConnected) { VDF.Vault.Forms.Settings.SelectEntitySettings settings = new VDF.Vault.Forms.Settings.SelectEntitySettings(); VDF.Vault.Forms.Settings.SelectEntitySettings.EntityRegularExpressionFilter[] filters = new VDF.Vault.Forms.Settings.SelectEntitySettings.EntityRegularExpressionFilter[] { // new VDF.Vault.Forms.Settings.SelectEntitySettings.EntityRegularExpressionFilter("Assembly Files (*.iam)", ".+iam", VDF.Vault.Currency.Entities.EntityClassIds.Files), new VDF.Vault.Forms.Settings.SelectEntitySettings.EntityRegularExpressionFilter("Part Files (*.ipt)", ".+ipt", VDF.Vault.Currency.Entities.EntityClassIds.Files) }; VDF.Vault.Forms.Controls.VaultBrowserControl.Configuration initialConfig = new VDF.Vault.Forms.Controls.VaultBrowserControl.Configuration(_connection, settings.PersistenceKey, null); initialConfig.AddInitialColumn(VDF.Vault.Currency.Properties.PropertyDefinitionIds.Server.EntityName); initialConfig.AddInitialColumn(VDF.Vault.Currency.Properties.PropertyDefinitionIds.Server.CheckInDate); initialConfig.AddInitialColumn(VDF.Vault.Currency.Properties.PropertyDefinitionIds.Server.Comment); initialConfig.AddInitialColumn(VDF.Vault.Currency.Properties.PropertyDefinitionIds.Server.ThumbnailSystem); initialConfig.AddInitialSortCriteria(VDF.Vault.Currency.Properties.PropertyDefinitionIds.Server.EntityName, true); settings.DialogCaption = "Select Part or Assembly file to Upload"; settings.ActionableEntityClassIds.Add("FILE"); settings.MultipleSelect = false; settings.ConfigureActionButtons("Upload", null, null, false); settings.ConfigureFilters("Applied filter", filters, null); settings.OptionsExtensibility.GetGridConfiguration = e => initialConfig; Console.WriteLine("Launching Vault Browser..."); VDF.Vault.Forms.Results.SelectEntityResults results = VDF.Vault.Forms.Library.SelectEntity(_connection, settings); if (results != null) { fileIter = results.SelectedEntities.FirstOrDefault() as VDF.Vault.Currency.Entities.FileIteration; } } return(fileIter); }
private void LinkToFile() { if (m_selectedItem == null) { MessageBox.Show("You must select an Item first"); return; } try { VDF.Vault.Forms.Settings.SelectEntitySettings settings = new VDF.Vault.Forms.Settings.SelectEntitySettings(); settings.MultipleSelect = false; settings.ActionableEntityClassIds.Add(VDF.Vault.Currency.Entities.EntityClassIds.Files); settings.ConfigureActionButtons("Select", null, null, false); VDF.Vault.Forms.Results.SelectEntityResults results = VDF.Vault.Forms.Library.SelectEntity(m_connection, settings); if (results == null || results.SelectedEntities == null || !results.SelectedEntities.Any()) { return; } VDF.Vault.Currency.Entities.FileIteration file = results.SelectedEntities.First() as VDF.Vault.Currency.Entities.FileIteration; if (file == null) { MessageBox.Show("You must select a file"); return; } ItemService itemSvc = m_connection.WebServiceManager.ItemService; // first assign the file to a new item itemSvc.AddFilesToPromote(new long[] { file.EntityIterationId }, ItemAssignAll.Default, true); DateTime timestamp; GetPromoteOrderResults promoteOrderResults = itemSvc.GetPromoteComponentOrder(out timestamp); //long[] componentIds = promoteOrderResults. if (promoteOrderResults.PrimaryArray != null && promoteOrderResults.PrimaryArray.Any()) { itemSvc.PromoteComponents(timestamp, promoteOrderResults.PrimaryArray); } if (promoteOrderResults.NonPrimaryArray != null && promoteOrderResults.NonPrimaryArray.Any()) { itemSvc.PromoteComponentLinks(promoteOrderResults.NonPrimaryArray); } ItemsAndFiles promoteResult = itemSvc.GetPromoteComponentsResults(timestamp); // find out which item corresponds to the file long itemId = -1; foreach (ItemFileAssoc assoc in promoteResult.FileAssocArray) { if (assoc.CldFileId == file.EntityIterationId) { itemId = assoc.ParItemId; } } if (itemId < 0) { MessageBox.Show("Promote error"); } else { // next reassign the file from the new item to the existing item Item[] updatedItems = itemSvc.ReassignComponentsToDifferentItems( new long[] { itemId }, new long[] { m_selectedItem.Id }); // commit the changes itemSvc.UpdateAndCommitItems(updatedItems); } // clear out the items from the initial Promote long[] itemIds = new long[promoteResult.ItemRevArray.Length]; long[] itemMasterIds = new long[promoteResult.ItemRevArray.Length]; for (int i = 0; i < promoteResult.ItemRevArray.Length; i++) { itemIds[i] = promoteResult.ItemRevArray[i].Id; itemMasterIds[i] = promoteResult.ItemRevArray[i].MasterId; } itemSvc.DeleteUnusedItemNumbers(itemMasterIds); itemSvc.UndoEditItems(itemIds); } catch (Exception e) { ErrorHandler.HandleError(e); } RefreshItemList(); }