public IEnumerable <DocumentEntity> GetPdfDocuments(OrderType orderBy = OrderType.Name)
        {
            var documentClient        = _documentClientFactory.GetClient();
            var documentCollectionUri = UriFactory.CreateDocumentCollectionUri(
                CosmosDbConstants.DocumentsDatabaseId,
                CosmosDbConstants.PdfDocumentsCollectionId);

            var query = documentClient.CreateDocumentQuery <DocumentEntity>(
                documentCollectionUri,
                new FeedOptions {
                EnableCrossPartitionQuery = true
            });

            query = orderBy switch
            {
                OrderType.Name => query.OrderBy(documentEntity => documentEntity.Id),
                OrderType.Path => query.OrderBy(documentEntity => documentEntity.Path),
                OrderType.Size => query.OrderBy(documentEntity => documentEntity.FileSizeInKilobytes),
                _ => query
            };

            return(query.ToList());
        }
        public async Task InitializePdfDocumentCollectionIfNotExistsAsync()
        {
            var documentClient = _cosmosDocumentClientFactory.GetClient();
            var database       = new Database {
                Id = CosmosDbConstants.DocumentsDatabaseId
            };
            await documentClient.CreateDatabaseIfNotExistsAsync(database);

            var databasePath       = UriFactory.CreateDatabaseUri(CosmosDbConstants.DocumentsDatabaseId);
            var documentCollection = new DocumentCollection
            {
                Id           = CosmosDbConstants.PdfDocumentsCollectionId,
                PartitionKey = new PartitionKeyDefinition
                {
                    Paths = new Collection <string> {
                        "/contentType"
                    }
                }
            };

            await documentClient.CreateDocumentCollectionIfNotExistsAsync(databasePath, documentCollection);
        }