private static IOid GetOid(XElement node, string typeName) { string[] values = node.Attribute("id").Value.Split(':'); if (values.Count() <= 0 || values.Count() > 2) { return(null); } long id = Convert.ToInt64(values[0], 16); IOid oid = SerialOid.CreatePersistent(id, typeName); if (values.Count() == 2) { oid = new AggregateOid(oid, values[1], typeName); } return(oid); }
public INakedObjectAdapter CreateAggregatedAdapter(INakedObjectAdapter parent, string fieldId, object obj) { GetAdapterFor(obj); IOid oid = new AggregateOid(metamodel, parent.Oid, fieldId, obj.GetType().FullName); INakedObjectAdapter adapterFor = GetAdapterFor(oid); if (adapterFor == null || adapterFor.Object != obj) { if (adapterFor != null) { RemoveAdapter(adapterFor); } adapterFor = CreateAdapter(obj, oid, null); adapterFor.OptimisticLock = new NullVersion(); } Assert.AssertNotNull(adapterFor); return(adapterFor); }
private static INakedObject RestoreInline(this INakedObjectsFramework framework, AggregateOid aggregateOid) { IOid parentOid = aggregateOid.ParentOid; INakedObject parent = framework.RestoreObject(parentOid); IAssociationSpec assoc = ((IObjectSpec)parent.Spec).Properties.Where((p => p.Id == aggregateOid.FieldName)).Single(); return(assoc.GetNakedObject(parent)); }
private static INakedObject CreateAggregatedAdapter(INakedObject parent, string fieldId, object obj) { NakedObjectsContext.ObjectPersistor.GetAdapterFor(obj); IOid oid = new AggregateOid(parent.Oid, fieldId, obj.GetType().FullName); INakedObject adapterFor = NakedObjectsContext.ObjectPersistor.GetAdapterFor(oid); if (adapterFor == null || adapterFor.Object != obj) { if (adapterFor != null) { NakedObjectsContext.ObjectPersistor.RemoveAdapter(adapterFor); } adapterFor = CreateAdapter(oid, obj); adapterFor.OptimisticLock = new NullVersion(); } Assert.AssertNotNull(adapterFor); return adapterFor; }
private static IOid GetOid(XElement node, string typeName) { string[] values = node.Attribute("id").Value.Split(':'); if (values.Count() <= 0 || values.Count() > 2) { return null; } long id = Convert.ToInt64(values[0], 16); IOid oid = SerialOid.CreatePersistent(id, typeName); if (values.Count() == 2) { oid = new AggregateOid(oid, values[1], typeName); } return oid; }