From 0ad4df639119dfa1b3aa08890d2c7a08c9abc7a8 Mon Sep 17 00:00:00 2001 From: HLWeil Date: Wed, 29 Jan 2025 10:10:13 +0100 Subject: [PATCH] fix LDObject from DynamicObj function --- src/ROCrate/LDObject.fs | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/ROCrate/LDObject.fs b/src/ROCrate/LDObject.fs index bf6dcee3..fd2a48e2 100644 --- a/src/ROCrate/LDObject.fs +++ b/src/ROCrate/LDObject.fs @@ -75,10 +75,29 @@ type LDObject(id: string, schemaType: ResizeArray, ?additionalType: Resi //| _ -> () // copy dynamic properties! - dynObj.DeepCopyPropertiesTo(roc) - roc.TryGetDynamicPropertyHelper("@id").Value.RemoveValue() - roc.TryGetDynamicPropertyHelper("@type").Value.RemoveValue() - if at.IsSome then roc.TryGetDynamicPropertyHelper("additionalType").Value.RemoveValue() + dynObj.DeepCopyPropertiesTo(roc, includeInstanceProperties = false) + + + // ----- Commented out as implementation has not been finalized ----- + //printfn "dynobj" + //dynObj.GetPropertyHelpers(true) + //|> Seq.iter (fun p -> printfn "isDynamic:%b, Name: %s" p.IsDynamic p.Name) + //printfn "roc" + //roc.GetPropertyHelpers(true) + //|> Seq.iter (fun p -> printfn "isDynamic:%b, Name: %s" p.IsDynamic p.Name) + //roc.TryGetDynamicPropertyHelper("@id").Value.RemoveValue() + //roc.TryGetDynamicPropertyHelper("@type").Value.RemoveValue() + //if at.IsSome then roc.TryGetDynamicPropertyHelper("additionalType").Value.RemoveValue() + + roc.GetPropertyHelpers(true) + |> Seq.iter (fun ph -> + if ph.IsDynamic && (ph.Name = "@id" || ph.Name = "@type" || ph.Name = "additionalType"(* || ph.Name = "id"*)) then + ph.RemoveValue(roc) + ) + + + + Some roc | _ -> None