Show / Hide Table of Contents

# User assignments

## Single user assignments

The operations and entity classes involved are the following:

- Assigning users to a translation document of a server project;
  - IServerProjectService.SetProjectTranslationDocumentUserAssignments
  - ServerProjectTranslationDocumentUserAssignments
  - TranslationDocumentUserRoleAssignment

The key concepts are the following:

- The SetProjectTranslationDocumentUserAssignments operation is to be used to set the assignments.
- To see the actual assignments there are different options:
- If you use ListProjectTranslationDocuments operation to list the documents, the assignments are also included in the returned ServerProjectTranslationDocInfo objects. Please note that this approach cannot return information about group sourcing, first accept and subvendor assignments.
- Other approaches are described later in the chapter describing the advanced approach.

## Advanced user assignment

The IServerProjectService operations for advanced user management and related entity classes are discussed in this chapter. This chapter contains information about the advanced assignment modes (first accept, group sourcing and subvendor assignments) as well. Important: the advanced approach described here can also be used to set basic (single user) assignment: the difference is that using this approach you also will be able to set/list detailed information about advanced assignment scenarios as well (group sourcing, first accept and subvendor assignments). So even if you are not using these more exotic assignment types at this point, but plan to introduce them in the future, we recommend using this “advanced approach” from the beginning.

The key concepts are the following:

- The SetTranslationDocumentAssignments operation is to be used to set the assignments. Different subclasses of TranslationDocumentAssignmentInfo are to be used to set different kind of assignments (e.g. TranslationDocumentSingleUserAssignmentInfo for single user assignment, TranslationDocumentFirstAcceptAssignmentInfo for first accept, etc.). The TranslationDocumentNoUserAssignmentInfo is to be used to remove a specific assignment.
- To see the actual assignments there are different options:
  - If you use the ListProjectTranslationDocuments2 or the ListProjectTranslationDocumentSlices operations to list the documents or slices, and the FillInAssignmentInformation is set to true in its option parameter, the assignment information is included in the returned ServerProjectTranslationDocInfo2 or ServerProjectTranslationDocSliceInfo objects (do this only when you really need the assignment info as well, as filling the assignment information has some performance penalty). The UserAssignments field of the returned objects is a TranslationDocumentDetailedAssignmentInfo derived class, the type depends on the type of the assignment (e.g. TranslationDocumentDetailedSingleUserAssignmentInfo in case of a single user assignment).
  - The ListTranslationDocumentAssignments operation can be used to return assignment information for specified documents or slices. It returns an array of TranslationDocumentDetailedAssignments objects, each of which holds the assignment information about a specific document. The Assignments member is an array of TranslationDocumentDetailedAssignmentInfo derived objects, the type depends on the type of the assignment (e.g. TranslationDocumentDetailedSingleUserAssignmentInfo in case of a single user assignment).

UML diagram of the entity classes involved: