From 92b757edc37d8ebc5aeaa4b64e98b1299618a920 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Sat, 21 Dec 2024 00:21:14 -0500 Subject: [PATCH] add convenience function for derived instances so we don't have to allocate an InstanceHandle --- mocha-dotnet/src/lib/Mocha.Core/Oms.cs | 18 ++++++++++++++++++ .../Mocha.Core.Tests/DerivedInstanceTests.cs | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/mocha-dotnet/src/lib/Mocha.Core/Oms.cs b/mocha-dotnet/src/lib/Mocha.Core/Oms.cs index da9156d..e1edfa4 100644 --- a/mocha-dotnet/src/lib/Mocha.Core/Oms.cs +++ b/mocha-dotnet/src/lib/Mocha.Core/Oms.cs @@ -654,6 +654,24 @@ public abstract class Oms return false; } + public T GetAttributeValue(InstanceKey source, InstanceHandle attribute, T defaultValue = default(T), DateTime? effectiveDate = null) + { + if (source.IsDerived) + { + source._oms = this; + Dictionary derivedData = source.GetDerivedData(); + if (derivedData.ContainsKey(attribute)) + { + return (T) derivedData[attribute]; + } + return defaultValue; + } + else + { + InstanceHandle hSource = GetInstance(source); + return GetAttributeValue(hSource, attribute, defaultValue, effectiveDate); + } + } public T GetAttributeValue(InstanceHandle source, InstanceHandle attribute, T defaultValue = default(T), DateTime? effectiveDate = null) { Dictionary? derivedData = GetDerivedData(source); diff --git a/mocha-dotnet/tests/Mocha.Core.Tests/DerivedInstanceTests.cs b/mocha-dotnet/tests/Mocha.Core.Tests/DerivedInstanceTests.cs index 0455344..d38b49f 100644 --- a/mocha-dotnet/tests/Mocha.Core.Tests/DerivedInstanceTests.cs +++ b/mocha-dotnet/tests/Mocha.Core.Tests/DerivedInstanceTests.cs @@ -47,7 +47,7 @@ public class DerivedInstanceTests : OmsTestsBase InstanceHandle ih = Oms.GetInstance(ik); - string attVName = Oms.GetAttributeValue(ih, Oms.GetInstance(KnownAttributeGuids.Text.Name)); + string attVName = Oms.GetAttributeValue(ik, Oms.GetInstance(KnownAttributeGuids.Text.Name)); Assert.That(attVName, Is.EqualTo(TEST_DERIVED_VALUE)); }