/// <summary> /// Saves the specified object /// </summary> /// <param name="Object">Object to save</param> /// <returns>True if it is saved, false otherwise</returns> public bool Save(Dynamo Object) { if (Object == null) { return(false); } var IDProperty = Properties.FirstOrDefault(x => x is IID); if (IDProperty == null) { return(false); } object IDValue = Object[IDProperty.Name]; ClassType Item = IDValue == null ? new ClassType() : AnyFunc(IDValue.ToString()).Check(new ClassType()); if (!CanSaveFunc(Item)) { return(false); } Dynamo SubSet = Object.SubSet(Properties.Where(x => x is IReference) .Select(x => x.Name) .ToArray()); if (SubSet != null) { SubSet.CopyTo(Item); } return(SaveFunc(Item)); }
private static Dynamo CopyOrAssign(Dynamo ReturnValue, Dynamo Value) { if (Value == null) { return(ReturnValue); } if (ReturnValue == null) { return(Value); } Value.CopyTo(ReturnValue); return(ReturnValue); }
public void TestCopyFromAndTo() { dynamic item = new Dynamo(); var obj = new TestClass { Prop1 = "P1", Prop2 = "P2", Prop3 = "P3", Prop4 = -1 }; item.CopyFrom(obj); Assert.AreEqual("P1", item.Prop1); Assert.AreEqual("P2", item.Prop2); Assert.AreEqual("P3", item.Prop3); Assert.AreEqual(-1, item.Prop4); obj = new TestClass(); Assert.AreEqual(null, obj.Prop1); Assert.AreEqual(null, obj.Prop2); Assert.AreEqual(null, obj.Prop3); Assert.AreEqual(0, obj.Prop4); item.CopyTo(obj); Assert.AreEqual("P1", obj.Prop1); Assert.AreEqual("P2", obj.Prop2); Assert.AreEqual("P3", obj.Prop3); Assert.AreEqual(-1, obj.Prop4); dynamic item2 = new Dynamo(); item.CopyTo(item2); Assert.AreEqual(4, item2.Count); Assert.AreEqual("P1", item2.Prop1); Assert.AreEqual("P2", item2.Prop2); Assert.AreEqual("P3", item2.Prop3); Assert.AreEqual(-1, item2.Prop4); dynamic item3 = new Dynamo(); item3.CopyFrom(item2); Assert.AreEqual(4, item3.Count); Assert.AreEqual("P1", item3.Prop1); Assert.AreEqual("P2", item3.Prop2); Assert.AreEqual("P3", item3.Prop3); Assert.AreEqual(-1, item3.Prop4); }
private static void CopyOrAdd(List <Dynamo> ReturnValue, IProperty IDProperty, Dynamo Item) { Contract.Requires <ArgumentNullException>(IDProperty != null); if (Item == null) { return; } if (ReturnValue == null) { ReturnValue = new List <Dynamo>(); } var IDValue = IDProperty.GetValue(Item); var Value = ReturnValue.FirstOrDefault(x => IDProperty.GetValue(x).Equals(IDValue)); if (Value == null) { ReturnValue.Add(Item); } else { Item.CopyTo(Value); } }