Download/Check out

Download and/or check out files is functionality that lets users obtain a copy of an entity in a vault. The copy can be downloaded to a local working folder, checked out of the vault but not downloaded, or both.

This functionality is accessible in silent mode, with a light GUI, and with a fully configurable GUI.

Modes of Operation
 
There are three modes of operation: silent, light GUI, and Full GUI.
  • Silent

    The business logic for download/check out happens with no GUI interaction. All progress, restrictions, and local file validations are handled through customizable call-backs.

  • Light GUI

    When a download starts, a progress dialog appears throughout the operation. Message boxes and restrictions dialogs might pop up to address problems as they occur.

  • Full GUI

    An interactive GUI appears that allows users to modify the options (gathering options, which files to check out, comments, download location, etc.). This GUI allows files to be viewed in a List View, Folder View, or Design View. All of the views support configurable columns which include support for thumbnails.

    The Download/Check out dialog has a collapsed and expanded display.

    Collapsed

    Expanded

Restrictions
 

The VDF detects if any of the following conditions exist prior to attempting the download.

  • File is checked out to someone else.
  • File is checked out to the current user on a different machine.
  • File is checked out to the current user in a different directory.
  • File is locked and cannot be edited.
  • File is checked out to another user in the same shared directory.

If the condition does exist, there is a choice as to whether or not the operation should be canceled or continued by skipping files with the problem(s).

The logic that decides how to handle the problem is extensible, and a custom resolution engine can be supplied.

Local Disk Synchronization
 

The VDF checks if the file on disk is out of sync with the version of the file in the vault. In this scenario, there is a choice as to whether the file should be overwritten or if the download should be skipped. The resolution logic is extensible and the default handling can be replaced with a custom solution.

    The following scenarios are detected:

  • If the file on disk is the same version and has the same checksum as the file being downloaded, the download is skipped.
  • If the file on disk is already checked out to the current user in the same location.
  • If the file on disk is newer than the file being downloaded.
  • If the vault file does not exist on the remote server that the user logged into and it needs to be replicated.
Parallel Processing
 

The parallel processing feature allows for multiple files to be downloaded at the same time.

Relationship Gathering
 
When downloading or checking out a file, you can specify whether any related files are also downloaded or checked out. The VDF supports relationships for including child relationships, parent relationships, or files brought in through links.
  • Include Child Relationships
  • Include Parent Relationships

  • Include Linked Entities

Multiple Entity Download
 

The VDF not only supports file and folder downloads, it also supports entities such as items, change orders, or custom objects. The VDF interrogates these entities and selects the primary files associated with them for download.

Progress Extensibility
 

The download/check out operations report progress via an interface. A custom progress provider can be supplied to redirect the progress to a console, log file, status bar, or other handler.

Options
 
Additional entity options exist for configuration.
  • The revision of the source file to download can be configured.
  • The release biased option can be configured.
  • The download location can be configured (i.e., working folders, no download, or custom location).
  • The check out command can be configured.
File Resolution
 

When a file is downloaded, it can optionally detect if references in the file (i.e., an assembly with references to parts) are out of date. The VDF has the ability to fix out-of-date references automatically during the download.

This feature uses the pluggable Extension Handler system and works for any VDF client (including the add-ins) running on a machine that has the Extension Handlers installed.