public VisualElementGeneric SearchVisualElementOnMainDataObject(object dataObject, bool alsoDereferenceObjects = false, SupplementaryReferenceInformation sri = null) { // call internal var ve = InternalSearchVisualElementOnMainDataObject(dataObject, alsoDereferenceObjects); // refine ve? if (sri != null) { // plugin? if (sri.SearchPluginTag != null && ve is VisualElementSubmodelRef veSm && veSm.Members != null) { foreach (var vem in veSm.Members) { if (vem is VisualElementPluginExtension vepe) { if (vepe.theExt?.Tag?.Trim().ToLower() == sri.SearchPluginTag.Trim().ToLower()) { ve = vepe; break; } } } } } // return return(ve); }
public SupplementaryReferenceInformation StripSupplementaryReferenceInformation(AdminShell.Reference rf) { // in any case, provide record var sri = new SupplementaryReferenceInformation(); sri.CleanReference = new AdminShell.Reference(rf); // plug-in? var srl = sri.CleanReference.Last; if (srl?.type == AdminShell.Key.FragmentReference && srl?.idType == AdminShell.Key.Custom && srl?.value?.StartsWith("Plugin:") == true) { sri.SearchPluginTag = srl.value.Substring("Plugin:".Length); sri.CleanReference.Keys.Remove(srl); } // ok return(sri); }