public async Task <RelationshipExtendedInfo> GetRelationshipExtendedInfo(int artifactId, int userId, int?subArtifactId = null, bool isDeleted = false)
        {
            bool?addDrafts  = null;
            int? revisionId = null;

            if (!isDeleted)
            {
                addDrafts  = true;
                revisionId = int.MaxValue;
            }
            var itemId             = subArtifactId.HasValue ? subArtifactId.Value : artifactId;
            var pathInfoDictionary = (await GetPathInfoToRoute(artifactId, userId, addDrafts, revisionId)).ToDictionary(a => a.ItemId);

            if (pathInfoDictionary.Keys.Count == 0)
            {
                throw new ResourceNotFoundException($"Artifact in revision {revisionId} does not exist.", ErrorCodes.ResourceNotFound);
            }
            var pathToProject = GetPathToProject(artifactId, pathInfoDictionary);
            var description   = (await _itemInfoRepository.GetItemDescription(itemId, userId, addDrafts, revisionId));

            return(new RelationshipExtendedInfo {
                ArtifactId = artifactId, PathToProject = pathToProject, Description = description
            });
        }