private void AddInstancesToBag(ArchivalObject archivalObject, ConcurrentBag <Instance> instanceBag, bool includeDigitalObjects = false) { if (archivalObject.Instances == null || archivalObject.Instances.Count <= 0) { return; } foreach (var instance in archivalObject.Instances) { if (instance.InstanceType != "digital_object") { instanceBag.Add(instance); } else if (includeDigitalObjects) { instanceBag.Add(instance); } } }
private async Task <ICollection <TopContainer> > GetTopContainersForArchivalObjectAsync(ArchivalObject ao) { var topContainerManager = new ArchivesSpaceTopContainerManager(ArchivesSpaceService); var instances = await GetAllInstancesForIdActionAsync(ao.Id); var topContinerIdList = instances.Where(x => x.SubContainer.TopContainer.Ref != null) .Select(x => x.SubContainer.TopContainer.RefStrippedId).ToList(); var topContainerList = await topContainerManager.GetTopContainersByIdsAsync(topContinerIdList); return(topContainerList); }
private async Task <ICollection <TopContainer> > GetTopContainersFromSeriesWithIdentifierAsync(ArchivalObject seriesArchivalObject) { var resultList = new List <TopContainer>(); var topContainerManager = new ArchivesSpaceTopContainerManager(ArchivesSpaceService); var initialSearchResult = await topContainerManager.GetTopContainerSeriesSearchAsync(seriesArchivalObject.Uri, true); foreach (var searchResult in initialSearchResult.Results) { resultList.Add(searchResult.ParsedJson); } return(resultList); }