private static async Task <IList <IGenericRootItem> > GetChildren(IGenericRootItem genericRootItem) { var childType = genericRootItem.GetType(); // if first one fails, they all fail, so return rather than continue if (!ReflectionHelpers.HasInterface(childType, typeof(IHasChildren <>))) { return(null); } var castChild = genericRootItem.ConvertValue(typeof(IHasChildren <>)); var childItems = castChild.Children; if (childItems == null) { return(null); } var rootItemList = new List <IGenericRootItem>(); foreach (var childItem in childItems) { var child = childItem as IGenericRootItem; if (child != null) { rootItemList.Add(child); } } return(await Task.FromResult(rootItemList)); }
protected override void Postprocess(IGenericRootItem genericReferenceElement) { if (ProviderType == InterfaceType.HL7Standard) { return; } }
protected override void Preprocess(IGenericRootItem genericReferenceElement) { if (genericReferenceElement?.ParsingInfo == null) { return; } EncodingCharacters = genericReferenceElement.ParsingInfo.EncodingCharacters; FieldSeparator = genericReferenceElement.ParsingInfo.FieldSeparator; genericReferenceElement.ReferenceElement = this; }
private static void UpdateRepeatedItemList(IList list, Type subtype, IGenericRootItem genericRootItem) { var constructedType = ConversionMethods.GetConcreteClassFromInterface(subtype); var element = constructedType as IElement; if (element == null) { return; } UpdateReferences(element, genericRootItem); list.Add(element); }
internal static void UpdateReferences(IElement element, IGenericRootItem genericRootItem, bool forceUpdate = false) { if (element == null) { return; } if (element.GenericReferenceElement != null && !forceUpdate) { return; } element.GenericReferenceElement = genericRootItem; if (genericRootItem == null) { return; } genericRootItem.ReferenceElement = element; }
//protected BaseElement() { } //protected BaseElement(IGenericRootItem genericReferenceElement) //{ // SetElement(genericReferenceElement); //} protected void SetElement(IGenericRootItem genericReferenceElement) { GenericReferenceElement = genericReferenceElement; genericReferenceElement.ReferenceElement = this; }