private async Task GetContainersForSeriesId(ArchivesSpaceService activeService, int seriesId, List <EnumResponseItem> inputList) { var archivalObjectManager = new ArchivesSpaceArchivalObjectManager(activeService); var containerList = await archivalObjectManager.GetAllTopContainersForIdAsync(seriesId); await ProcessContainerList(activeService, containerList, inputList); }
public static async Task <List <Tuple <string, long> > > TestArchivalObjects(ArchivesSpaceService aspaceService, bool getAllObjects, int targetId = 0) { var randIntGen = new Random(); var sw = new Stopwatch(); sw.Start(); var returnList = new List <Tuple <string, long> >(); if (targetId == 0 && !getAllObjects) { throw new InvalidOperationException("you must get all objects in order to select a random one"); } var archivalObjectManager = new ArchivesSpaceArchivalObjectManager(aspaceService); if (getAllObjects) { sw.Restart(); Console.WriteLine("Getting all archival objects:"); var archivalObjectList = await archivalObjectManager.GetAllArchivalObjectIdsAsync(); returnList.Add(new Tuple <string, long>(String.Format("Retrieve all [ {0} ] archival objects", archivalObjectList.Count), sw.ElapsedMilliseconds)); Console.WriteLine(Serialize(archivalObjectList)); if (targetId == 0) { Console.WriteLine("Get a random archival object from the list:"); var randInt = randIntGen.Next(0, archivalObjectList.Count - 1); targetId = archivalObjectList[randInt]; } } /* * sw.Restart(); * var singleArchivalObject = await archivalObjectManager.GetArchivalObjectByIdAsync(targetId); * returnList.Add(new Tuple<string, long>(String.Format("Retrieve single archival object with ID [ {0} ]", targetId), sw.ElapsedMilliseconds)); * Console.WriteLine(Serialize(singleArchivalObject)); * * sw.Restart(); * Console.WriteLine("Get object's children:"); * var archivalObjectChildren = await archivalObjectManager.GetArchivalObjectChildrenAsync(targetId); * returnList.Add(new Tuple<string, long>(String.Format("Get immediate children of archival object [ {0} ]", targetId), sw.ElapsedMilliseconds)); * Console.WriteLine(Serialize(archivalObjectChildren)); * * sw.Restart(); * Console.WriteLine("And get all instances associated with that object:"); * var archivalObjectInstances = await archivalObjectManager.GetAllInstancesForIdAsync(targetId); * returnList.Add(new Tuple<string, long>(String.Format("Get all [ {0} ] instances assocaited with archival object [ {1} ]", archivalObjectInstances.Count, targetId), sw.ElapsedMilliseconds)); * Console.WriteLine(Serialize(archivalObjectInstances)); * * sw.Restart(); * Console.WriteLine("And get all containers associated with that object:"); * var archivalObjectContainers = await archivalObjectManager.GetAllContainersForIdAsync(targetId); * sw.Stop(); * int subContainerCount = 0; * foreach (var archivalObjectContainer in archivalObjectContainers) * { * subContainerCount = subContainerCount + archivalObjectContainer.SubContainers.Count; * } * returnList.Add(new Tuple<string, long>(String.Format("Get all [ {0} ] containers and [ {1} ] subcontainers associated with object [ {2} ]", archivalObjectContainers.Count, subContainerCount, targetId), sw.ElapsedMilliseconds)); * Console.WriteLine(Serialize(archivalObjectContainers)); */ sw.Restart(); Console.WriteLine("And get all top containers associated with that object:"); var archivalObjectTopContainers = await archivalObjectManager.GetAllTopContainersForIdAsync(targetId); returnList.Add(new Tuple <string, long>(String.Format("Get all [ {0} ] top containers associated with object [ {1} ]", archivalObjectTopContainers.Count, targetId), sw.ElapsedMilliseconds)); Console.WriteLine(Serialize(archivalObjectTopContainers)); return(returnList); }