private INakedObjectAdapter Select(INakedObjectAdapter objectRepresentingCollection, object[] selected, bool forceEnumerable) { IList result = CollectionUtils.CloneCollectionAndPopulate(objectRepresentingCollection.Object, selected); INakedObjectAdapter adapter = framework.NakedObjectManager.CreateAdapter(objectRepresentingCollection.Spec.IsQueryable && !forceEnumerable ? (IEnumerable)result.AsQueryable() : result, null, null); var currentMemento = (ICollectionMemento)objectRepresentingCollection.Oid; var newMemento = currentMemento.NewSelectionMemento(selected, false); adapter.SetATransientOid(newMemento); return(adapter); }
public INakedObjectAdapter RecoverCollection() { INakedObjectAdapter nakedObjectAdapter = Action.Execute(Target, Parameters); if (selectedObjects != null) { IEnumerable <object> selected = nakedObjectAdapter.GetDomainObject <IEnumerable>().Cast <object>().Where(x => selectedObjects.Contains(x)); IList newResult = CollectionUtils.CloneCollectionAndPopulate(nakedObjectAdapter.Object, selected); nakedObjectAdapter = nakedObjectManager.CreateAdapter(newResult, null, null); } nakedObjectAdapter.SetATransientOid(this); return(nakedObjectAdapter); }
public override void Init(INakedObjectAdapter collection, INakedObjectAdapter[] initData) { IList newCollection = CollectionUtils.CloneCollectionAndPopulate(collection.Object, initData.Select(no => no.Object)); collection.ReplacePoco(newCollection); }