public static void GetObject(AnyReference obj, MethodReturnEventArgs<Zetbox.API.IDataObject> e, Zetbox.API.IZetboxContext ctx) { if (obj.ObjClass == null) { e.Result = null; } else { var cls = _frozenCtx.FindPersistenceObject<ObjectClass>(obj.ObjClass.Value); var ifType = ctx.GetInterfaceType(cls.GetDataType()); if (obj.ObjGuid != null) { e.Result = (IDataObject)ctx.FindPersistenceObject(ifType, obj.ObjGuid.Value); } else { e.Result = ctx.Find(ifType, obj.ObjID.Value); } } }
public static void GetObject(AnyReference obj, MethodReturnEventArgs <Zetbox.API.IDataObject> e, Zetbox.API.IZetboxContext ctx) { if (obj.ObjClass == null) { e.Result = null; } else { var cls = _frozenCtx.FindPersistenceObject <ObjectClass>(obj.ObjClass.Value); var ifType = ctx.GetInterfaceType(cls.GetDataType()); if (obj.ObjGuid != null) { e.Result = (IDataObject)ctx.FindPersistenceObject(ifType, obj.ObjGuid.Value); } else { e.Result = ctx.Find(ifType, obj.ObjID.Value); } } }
public static void SetObject(AnyReference obj, Zetbox.API.IDataObject newObj) { if (newObj == null) { obj.ObjClass = null; obj.ObjGuid = null; obj.ObjID = null; } else { var cls = newObj.GetObjectClass(_frozenCtx); obj.ObjClass = cls.ExportGuid; if (cls.ImplementsIExportable()) { obj.ObjGuid = ((IExportable)newObj).ExportGuid; obj.ObjID = null; } else { obj.ObjGuid = null; obj.ObjID = newObj.ID; } } }
public static void HasObject(AnyReference obj, MethodReturnEventArgs<bool> e) { e.Result = obj.ObjClass != null; }