public async Task <DocumentDto> GetDocumentAsync(string projectId, string branchName, string fileUri)
        {
            DocumentDto documentDto = null;

            if (branchName == null || branchName == "undefined")
            {
                branchName = await GetDefaultBranch(projectId);
            }

            if (fileUri == null || fileUri == "undefined")
            {
                fileUri = await GetDefaultFileUri(projectId, branchName);
            }

            if (!_cacheService.TryGetDocument(projectId, branchName, fileUri, out documentDto))
            {
                documentDto = await _documentsClient.Get(projectId, branchName, fileUri);

                _cacheService.AddDocument(projectId, branchName, fileUri, documentDto);
            }

            return(documentDto);
        }