public ICapabilityStatementBuilder ApplyToResource(string resourceType, Action <ListedResourceComponent> action) { EnsureArg.IsNotNullOrEmpty(resourceType, nameof(resourceType)); EnsureArg.IsNotNull(action, nameof(action)); EnsureArg.IsTrue(_modelInfoProvider.IsKnownResource(resourceType), nameof(resourceType), x => GenerateTypeErrorMessage(x, resourceType)); ListedRestComponent listedRestComponent = _statement.Rest.Server(); ListedResourceComponent resourceComponent = listedRestComponent.Resource.SingleOrDefault(x => string.Equals(x.Type, resourceType, StringComparison.OrdinalIgnoreCase)); if (resourceComponent == null) { resourceComponent = new ListedResourceComponent { Type = resourceType, Profile = new ReferenceComponent { Reference = $"http://hl7.org/fhir/StructureDefinition/{resourceType}", }, }; listedRestComponent.Resource.Add(resourceComponent); } action(resourceComponent); return(this); }
private static ListedRestComponent GetListedRestComponent(this ListedCapabilityStatement statement) { var restComponent = statement .Rest .SingleOrDefault(); if (restComponent == null) { restComponent = new ListedRestComponent(); statement.Rest.Add(restComponent); } return(restComponent); }
public ICapabilityStatementBuilder UpdateRestResourceComponent(string resourceType, Action <ListedResourceComponent> action) { EnsureArg.IsNotNullOrEmpty(resourceType, nameof(resourceType)); EnsureArg.IsNotNull(action, nameof(action)); EnsureArg.IsTrue(_modelInfoProvider.IsKnownResource(resourceType), nameof(resourceType), x => GenerateTypeErrorMessage(x, resourceType)); ListedRestComponent listedRestComponent = _statement.Rest.Server(); ListedResourceComponent resourceComponent = listedRestComponent.Resource.SingleOrDefault(x => string.Equals(x.Type, resourceType, StringComparison.OrdinalIgnoreCase)); if (resourceComponent == null) { resourceComponent = new ListedResourceComponent { Type = resourceType, }; listedRestComponent.Resource.Add(resourceComponent); } action(resourceComponent); return(this); }