internal MifObjectsContainer GetContainer(List <string> multiAtlases, List <List <string> > unprocessedText) { List <IMifAtlas> atlases = new List <IMifAtlas>(); List <MultiAtlas> multiAtlas = new List <MultiAtlas>(); var atlasFactory = new AtlasFactory(); var container = new MifObjectsContainer(); multiAtlases.ForEach(a => multiAtlas.Add((MultiAtlas)atlasFactory.Create(a, new List <IMifAtlas>()))); multiAtlas.ForEach(m => m.MifAtlas.AddRange( _objects.Where(o => o is SpintronicsObject). Where(o => o.Multiatlas == m.Name). Select(s => ((SpintronicsObject)s).MifObject))); atlases.AddRange(multiAtlas); atlases.AddRange(_objects.Where(o => o is SpintronicsObject). Where(o => o.Multiatlas == null || o.Multiatlas == ""). Select(s => ((SpintronicsObject)s).MifObject)); container.MifAtlases.AddRange(atlases); container.MifEnergies.AddRange(_energies.Where(e => e is SpintronicsEnergy) .Select(e => ((SpintronicsEnergy)e).Energy)); container.MifScripts.AddRange(_scripts.Where(s => s is MifScript) .Select(s => ((MifScript)s).GetScriptObject())); container.UnprocessedText.Text = unprocessedText; return(container); }