public void GivenAConformanceBuilder_WhenSyncSearchParameters_ThenDocumentationIsAdded()
        {
            string description = "Logical id of this artifact";

            _searchParameterDefinitionManager.GetSearchParameters("Account")
            .Returns(new[] { new SearchParameterInfo("_id", "_id", SearchParamType.Token, description: description), });

            _builder.SyncSearchParameters();

            ITypedElement statement = _builder.Build();

            object idDocumentation = statement.Scalar($"{ResourceQuery("Account")}.searchParam.where(name = '_id').documentation");

            Assert.Equal(description, idDocumentation);
        }
        public async Task Handle(RebuildCapabilityStatement notification, CancellationToken cancellationToken)
        {
            await _metadataSemaphore.WaitAsync(cancellationToken);

            try
            {
                if (_builder != null)
                {
                    switch (notification.Part)
                    {
                    case RebuildPart.SearchParameter:
                        // Update search params;
                        _builder.SyncSearchParameters();
                        break;

                    case RebuildPart.Profiles:
                        // Update supported profiles;
                        _builder.SyncProfiles(true);
                        break;
                    }
                }

                _metadata = null;
            }
            finally
            {
                _metadataSemaphore.Release();
            }
        }