private static bool PopulateBOFromReader(IBusinessObject bo, IDataRecord dr, ISelectQuery selectQuery) { var i = 0; var objectUpdatedInLoading = false; foreach (var field in selectQuery.Fields.Values) { try { IBOProp boProp = bo.Props[field.PropertyName]; objectUpdatedInLoading = objectUpdatedInLoading | boProp.InitialiseProp(dr[i]); // set objectUpdatedInLoading to true if any initialiseprop returns true } catch (InvalidPropertyNameException) { // do nothing - this was to increase performance as catching this exception is quicker than always doing a bo.Props.Contains(field.PropertyName) call. } i += 1; } return(objectUpdatedInLoading); }
public void TestDirtyXml() { mProp = mBOPropCol["Prop2"]; mProp.InitialiseProp("Prop2-Orig"); mProp.Value = "Prop2-New"; Assert.IsTrue(mProp.IsDirty); mProp = mBOPropCol["PropName"]; mProp.InitialiseProp("Propn-Orig"); mProp.Value = "PropName-new"; Assert.IsTrue(mProp.IsDirty); mPropDef = new PropDef("Prop3", typeof(string), PropReadWriteRule.ReadOnly, null); mPropDef.AddPropRule(new PropRuleString(mPropDef.PropertyName, "Test", 1, 40, null)); mBOPropCol.Add(mPropDef.CreateBOProp(false)); mProp = mBOPropCol["Prop3"]; mProp.InitialiseProp("Prop3-new"); Assert.IsFalse(mProp.IsDirty); const string dirtyXml = "<Properties><Prop2><PreviousValue>Prop2-Orig</PreviousValue><NewValue>Prop2-New</NewValue></Prop2><PropName><PreviousValue>Propn-Orig</PreviousValue><NewValue>PropName-new</NewValue></PropName></Properties>"; Assert.AreEqual(dirtyXml, mBOPropCol.DirtyXml); }
public void TestDirtyXml() { mProp = mBOPropCol["Prop2"]; mProp.InitialiseProp("Prop2-Orig"); mProp.Value = "Prop2-New"; Assert.IsTrue(mProp.IsDirty); mProp = mBOPropCol["PropName"]; mProp.InitialiseProp("Propn-Orig"); mProp.Value = "PropName-new"; Assert.IsTrue(mProp.IsDirty); mPropDef = new PropDef("Prop3", typeof(string), PropReadWriteRule.ReadOnly, null); mPropDef.AddPropRule( new PropRuleString(mPropDef.PropertyName, "Test", 1, 40, null)); mBOPropCol.Add(mPropDef.CreateBOProp(false)); mProp = mBOPropCol["Prop3"]; mProp.InitialiseProp("Prop3-new"); Assert.IsFalse(mProp.IsDirty); const string dirtyXml = "<Properties><Prop2><PreviousValue>Prop2-Orig</PreviousValue><NewValue>Prop2-New</NewValue></Prop2><PropName><PreviousValue>Propn-Orig</PreviousValue><NewValue>PropName-new</NewValue></PropName></Properties>"; Assert.AreEqual(dirtyXml, mBOPropCol.DirtyXml); }