Exemplo n.º 1
0
        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();
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        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();
        }