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 }); }