コード例 #1
0
        public static string Serialize(PersistentId id)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("{");
            sb.AppendFormat("\"Id\": {0}", Serialize(id.Id));
            sb.Append("}");

            return(sb.ToString());
        }
コード例 #2
0
        public object GetPropertyValue(string property)
        {
            object res = properties[property];

            if (res is PersistentId)
            {
                PersistentId id = res as PersistentId;
                res = Context.Get(id.Id);
            }

            return(res);
        }
コード例 #3
0
 private object ConvertFromId(object item)
 {
     if (item is PersistentId)
     {
         PersistentId id  = item as PersistentId;
         object       res = owner.Context.Get(id.Id);
         return(res);
     }
     else
     {
         return(item);
     }
 }
コード例 #4
0
 private object ConvertToId(object item)
 {
     if (item is IPersistentObject)
     {
         string       id     = ((IPersistentObject)item).Id;
         PersistentId persId = new PersistentId();
         persId.Id = id;
         return(persId);
     }
     else
     {
         return(item);
     }
 }
コード例 #5
0
        public void SetReference(string property, object value)
        {
            if (Mute)
            {
                return;
            }

            //drop old references
            object currentValue = null;

            properties.TryGetValue(property, out currentValue);

            if (currentValue is PersistentId)
            {
                PersistentId id = (PersistentId)currentValue;
                if (Context.IsLoaded(id.Id))
                {
                    IPersistentObject oldRef    = Context.Get(id.Id);
                    ObjectReference   reference = new ObjectReference();
                    reference.Property = property;
                    reference.ObjectId = target.Id;
                    ((IPersistentObject)oldRef).RemoveReference(reference);
                }
            }

            //create new reference
            if (value is IPersistentObject)
            {
                ObjectReference reference = new ObjectReference();
                reference.Property = property;
                reference.ObjectId = target.Id;
                ((IPersistentObject)value).AddReference(reference);

                PersistentId id = new PersistentId();
                id.Id = ((IPersistentObject)value).Id;
                value = id;
            }

            properties[property] = value;
        }
コード例 #6
0
        public static string Serialize(PersistentId id)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("{");
            sb.AppendFormat("\"Id\": {0}",Serialize (id.Id));
            sb.Append("}");

            return sb.ToString();
        }
コード例 #7
0
        public void SetReference(string property, object value)
        {
            if (Mute)
                return;

            //drop old references
            object currentValue = null;
            properties.TryGetValue(property, out currentValue);

            if (currentValue is PersistentId)
            {
                PersistentId id = (PersistentId)currentValue;
                if (Context.IsLoaded(id.Id))
                {
                    IPersistentObject oldRef = Context.Get(id.Id);
                    ObjectReference reference = new ObjectReference();
                    reference.Property = property;
                    reference.ObjectId = target.Id;
                    ((IPersistentObject)oldRef).RemoveReference(reference);
                }
            }

            //create new reference
            if (value is IPersistentObject)
            {
                ObjectReference reference = new ObjectReference();
                reference.Property = property;
                reference.ObjectId = target.Id;
                ((IPersistentObject)value).AddReference(reference);

                PersistentId id = new PersistentId();
                id.Id = ((IPersistentObject)value).Id;
                value = id;
            }

            properties[property] = value;
        }