Ejemplo n.º 1
0
        public IDataObject CopyDataObject(IDataObject dataObject)
        {
            if (_managedProxies.ContainsKey(dataObject.Identity))
            {
                // Already tracked
                return(_managedProxies[dataObject.Identity]);
            }
            IDataObject ret = GetDataObject(dataObject.Identity);

            // Do a full refresh of the data object propertyies
            foreach (var propertyType in dataObject.GetPropertyTypes())
            {
                _deletePatterns.Add(new Triple
                {
                    Subject   = dataObject.Identity,
                    Predicate = propertyType.Identity,
                    Object    = Constants.WildcardUri,
                    Graph     = _updateGraphUri
                });
                foreach (var propertyValue in dataObject.GetPropertyValues(propertyType))
                {
                    ret.AddProperty(propertyType, propertyValue);
                }
            }
            return(ret);
        }
Ejemplo n.º 2
0
 private bool TrySetMember(string propertyName, object value)
 {
     if (value is BrightstarDynamicObject)
     {
         var val = value as BrightstarDynamicObject;
         _dataObject.SetProperty(GetPredicateUri(propertyName), val.DataObject);
     }
     else if (value is IEnumerable <object> )
     {
         var predicate = GetPredicateUri(propertyName);
         _dataObject.RemovePropertiesOfType(predicate);
         var val = value as IEnumerable <object>;
         foreach (var o in val)
         {
             if (o is BrightstarDynamicObject)
             {
                 var brightstarDynamicObject = o as BrightstarDynamicObject;
                 _dataObject.AddProperty(predicate, brightstarDynamicObject.DataObject);
             }
             else
             {
                 // assume it is a literal
                 _dataObject.AddProperty(predicate, o);
             }
         }
     }
     else
     {
         var predicate = GetPredicateUri(propertyName);
         if (value is BrightstarDynamicObject)
         {
             _dataObject.SetProperty(predicate, (value as BrightstarDynamicObject).DataObject);
         }
         else
         {
             _dataObject.SetProperty(predicate, value);
         }
     }
     return(true);
 }