public void GetCollectionNakedObjectFromId() { IList <Claim> claims = NakedObjectsFramework.GetService <ClaimRepository>().FindMyClaims(null, ""); INakedObjectAdapter no = NakedObjectsFramework.NakedObjectManager.CreateAdapter(claims, null, null); INakedObjectAdapter service = NakedObjectsFramework.ServicesManager.GetService("ClaimRepository"); IActionSpec action = service.Spec.GetActions().Single(a => a.Id == "FindMyClaims"); INakedObjectAdapter[] parms = new[] { null, "" }.Select(o => NakedObjectsFramework.NakedObjectManager.CreateAdapter(o, null, null)).ToArray(); var cm = CollectionMementoHelper.TestMemento(NakedObjectsFramework.LifecycleManager, NakedObjectsFramework.NakedObjectManager, NakedObjectsFramework.MetamodelManager, service, action, parms); no.SetATransientOid(cm); string id = NakedObjectsFramework.GetObjectId(no); INakedObjectAdapter no2 = NakedObjectsFramework.GetNakedObjectFromId(id); List <Claim> claims2 = no2.GetDomainObject <IEnumerable <Claim> >().ToList(); Assert.AreEqual(claims.Count(), claims2.Count()); int index = 0; Dictionary <Claim, Claim> dict = claims.ToDictionary(x => x, y => claims2.Skip(index++).First()); dict.ForEach(kvp => Assert.AreSame(kvp.Key, kvp.Value)); }
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); }