diff --git a/Pepperdash Core/Pepperdash Core/JsonToSimpl/EventArgs and Constants.cs b/Pepperdash Core/Pepperdash Core/JsonToSimpl/EventArgs and Constants.cs
index e6e13a5..b8259b9 100644
--- a/Pepperdash Core/Pepperdash Core/JsonToSimpl/EventArgs and Constants.cs
+++ b/Pepperdash Core/Pepperdash Core/JsonToSimpl/EventArgs and Constants.cs
@@ -13,6 +13,7 @@ namespace PepperDash.Core.JsonToSimpl
public const ushort BoolValueChange = 1;
public const ushort UshortValueChange = 101;
public const ushort StringValueChange = 201;
+ public const ushort FullPathToArrayChange = 202;
}
//**************************************************************************************************//
diff --git a/Pepperdash Core/Pepperdash Core/JsonToSimpl/JsonToSimplArrayLookupChild.cs b/Pepperdash Core/Pepperdash Core/JsonToSimpl/JsonToSimplArrayLookupChild.cs
index 753dbc3..c3295f3 100644
--- a/Pepperdash Core/Pepperdash Core/JsonToSimpl/JsonToSimplArrayLookupChild.cs
+++ b/Pepperdash Core/Pepperdash Core/JsonToSimpl/JsonToSimplArrayLookupChild.cs
@@ -12,9 +12,19 @@ namespace PepperDash.Core.JsonToSimpl
{
public string SearchPropertyName { get; set; }
public string SearchPropertyValue { get; set; }
+ public string AppendToPathPrefix { get; set; }
int ArrayIndex;
+ ///
+ /// For <2.4.1 array lookups
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Initialize(string file, string key, string pathPrefix, string pathSuffix,
string searchPropertyName, string searchPropertyValue)
{
@@ -24,6 +34,27 @@ namespace PepperDash.Core.JsonToSimpl
}
+ ///
+ /// For newer >=2.4.1 array lookups.
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void Initialize(string file, string key, string pathPrefix, string pathAppend, string pathSuffix,
+ string searchPropertyName, string searchPropertyValue)
+ {
+ base.Initialize(file, key, pathPrefix, pathSuffix);
+ SearchPropertyName = searchPropertyName;
+ SearchPropertyValue = searchPropertyValue;
+ AppendToPathPrefix = pathAppend;
+ }
+
+
+
//PathPrefix+ArrayName+[x]+path+PathSuffix
///
///
@@ -32,9 +63,11 @@ namespace PepperDash.Core.JsonToSimpl
///
protected override string GetFullPath(string path)
{
- return string.Format("{0}[{1}].{2}{3}",
+ return string.Format("{0}[{1}]{2}.{3}{4}",
PathPrefix == null ? "" : PathPrefix,
- ArrayIndex, path,
+ ArrayIndex,
+ GetPathAppend(),
+ path,
PathSuffix == null ? "" : PathSuffix);
}
@@ -44,6 +77,31 @@ namespace PepperDash.Core.JsonToSimpl
base.ProcessAll();
}
+ ///
+ /// Provides the path append for GetFullPath
+ ///
+ ///
+ string GetPathAppend()
+ {
+ var a = AppendToPathPrefix;
+ if (string.IsNullOrEmpty(a))
+ {
+ return "";
+ }
+ if (a.StartsWith("."))
+ {
+ return a;
+ }
+ else
+ {
+ return "." + a;
+ }
+ }
+
+ ///
+ ///
+ ///
+ ///
bool FindInArray()
{
if (Master == null)
@@ -75,6 +133,7 @@ namespace PepperDash.Core.JsonToSimpl
this.LinkedToObject = true;
ArrayIndex = array.IndexOf(item);
+ OnStringChange(GetFullPath(""), 0, JsonToSimplConstants.FullPathToArrayChange);
Debug.Console(1, "JSON Child[{0}] Found array match at index {1}", Key, ArrayIndex);
return true;
}
diff --git a/Pepperdash Core/Pepperdash Core/JsonToSimpl/JsonToSimplMaster.cs b/Pepperdash Core/Pepperdash Core/JsonToSimpl/JsonToSimplMaster.cs
index 4818711..bd48fa9 100644
--- a/Pepperdash Core/Pepperdash Core/JsonToSimpl/JsonToSimplMaster.cs
+++ b/Pepperdash Core/Pepperdash Core/JsonToSimpl/JsonToSimplMaster.cs
@@ -106,10 +106,10 @@ namespace PepperDash.Core.JsonToSimpl
///
public void AddChild(JsonToSimplChildObjectBase child)
{
- if (Children.Contains(child)) {
- Children.Remove(child);
- }
- Children.Add(child);
+ if (!Children.Contains(child))
+ {
+ Children.Add(child);
+ }
}
///
diff --git a/Pepperdash Core/Pepperdash Core/Properties/AssemblyInfo.cs b/Pepperdash Core/Pepperdash Core/Properties/AssemblyInfo.cs
index f1b567a..63fe3d0 100644
--- a/Pepperdash Core/Pepperdash Core/Properties/AssemblyInfo.cs
+++ b/Pepperdash Core/Pepperdash Core/Properties/AssemblyInfo.cs
@@ -4,4 +4,4 @@
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Pepperdash_Core")]
[assembly: AssemblyCopyright("Copyright © PepperDash 2019")]
-[assembly: AssemblyVersion("1.0.20.*")]
+[assembly: AssemblyVersion("1.0.21.*")]