public static async Task <IDictionary <Uri, StacItem> > GetItemsAsync(this IStacObject stacObject, Uri baseUri, StacRouter stacRouter)
        {
            Dictionary <Uri, StacItem> items = new Dictionary <Uri, StacItem>();

            foreach (var itemLink in stacObject.Links.Where(l => !string.IsNullOrEmpty(l.RelationshipType) && l.RelationshipType == "item"))
            {
                Uri linkUri = itemLink.Uri;
                if (!linkUri.IsAbsoluteUri && baseUri.IsAbsoluteUri)
                {
                    linkUri = new Uri(baseUri, itemLink.Uri);
                }
                items.Add(linkUri, await itemLink.CreateStacObject(baseUri, stacRouter.Credentials) as StacItem);
            }
            return(items);
        }
        public static async Task <IDictionary <Uri, IStacCatalog> > GetChildrenAsync(this IStacObject stacObject, Uri baseUri, StacRouter stacRouter)
        {
            Dictionary <Uri, IStacCatalog> children = new Dictionary <Uri, IStacCatalog>();

            foreach (var childLink in stacObject.Links.Where(l => !string.IsNullOrEmpty(l.RelationshipType) && l.RelationshipType == "child"))
            {
                Uri linkUri = childLink.Uri;
                if (!linkUri.IsAbsoluteUri && baseUri.IsAbsoluteUri)
                {
                    linkUri = new Uri(baseUri, childLink.Uri);
                }
                children.Add(linkUri, await childLink.CreateStacObject(baseUri, stacRouter.Credentials) as IStacCatalog);
            }
            return(children);
        }
 public static IDictionary <Uri, StacItem> GetItems(this IStacObject stacObject, Uri baseUri, StacRouter stacRouter)
 {
     return(GetItemsAsync(stacObject, baseUri, stacRouter).GetAwaiter().GetResult());
 }
 public static IDictionary <Uri, IStacCatalog> GetChildren(this IStacObject stacObject, Uri baseUri, StacRouter stacRouter)
 {
     return(GetChildrenAsync(stacObject, baseUri, stacRouter).GetAwaiter().GetResult());
 }