Beispiel #1
0
        private void ProcessPropertyValue(IHypermediaResolver resolver, List <CuriesLink> curies, IEnumerable <IResource> resources)
        {
            var resourceList = resources.ToList();

            var relationName = resources is IResourceList list ? list.RelationName : resourceList.FirstOrDefault()?.Rel ?? string.Empty;

            var embeddedResource = new EmbeddedResource {
                IsSourceAnArray = true, RelationName = relationName
            };

            foreach (var resourceItem in resourceList)
            {
                embeddedResource.Resources.Add(resourceItem);

                if (!(resourceItem is Representation representation))
                {
                    continue;
                }

                representation.RepopulateRecursively(resolver, curies); // traverse ...
                var link = representation.ToLink(resolver);

                if (link != null)
                {
                    Links.Add(link); // add a link to embedded to the container ...
                }
            }

            Embedded.Add(embeddedResource);
        }
Beispiel #2
0
        void ProcessPropertyValue(IHypermediaResolver resolver, List <CuriesLink> curies, IResource resource)
        {
            var embeddedResource = new EmbeddedResource {
                IsSourceAnArray = false
            };

            embeddedResource.Resources.Add(resource);

            Embedded.Add(embeddedResource);

            var representation = resource as Representation;

            if (representation == null)
            {
                return;
            }

            representation.RepopulateRecursively(resolver, curies);         // traverse ...
            var link = representation.ToLink(resolver);

            if (link != null)
            {
                Links.Add(link);             // add a link to embedded to the container ...
            }
        }
Beispiel #3
0
        void ProcessPropertyValue(IHypermediaResolver resolver, List <CuriesLink> curies, IEnumerable <IResource> resources)
        {
            var resourceList = resources.ToList();

            if (!resourceList.Any())
            {
                return;
            }

            var embeddedResource = new EmbeddedResource {
                IsSourceAnArray = true
            };

            foreach (var resourceItem in resourceList)
            {
                embeddedResource.Resources.Add(resourceItem);

                var representation = resourceItem as Representation;

                if (representation == null)
                {
                    continue;
                }

                representation.RepopulateRecursively(resolver, curies);         // traverse ...
                var link = representation.ToLink(resolver);

                if (link != null)
                {
                    Links.Add(link);             // add a link to embedded to the container ...
                }
            }

            Embedded.Add(embeddedResource);
        }
 public void AddEmbedded(string page)
 {
     Embedded ??= new();
     Embedded.Add(page);
 }