示例#1
0
        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);
        }
示例#3
0
        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);
        }