Exemple #1
0
        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));
        }
Exemple #2
0
 protected override void Postprocess(IGenericRootItem genericReferenceElement)
 {
     if (ProviderType == InterfaceType.HL7Standard)
     {
         return;
     }
 }
Exemple #3
0
 protected override void Preprocess(IGenericRootItem genericReferenceElement)
 {
     if (genericReferenceElement?.ParsingInfo == null)
     {
         return;
     }
     EncodingCharacters = genericReferenceElement.ParsingInfo.EncodingCharacters;
     FieldSeparator     = genericReferenceElement.ParsingInfo.FieldSeparator;
     genericReferenceElement.ReferenceElement = this;
 }
Exemple #4
0
        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);
        }
Exemple #5
0
 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;
 }
Exemple #6
0
        //protected BaseElement() { }

        //protected BaseElement(IGenericRootItem genericReferenceElement)
        //{
        //    SetElement(genericReferenceElement);
        //}

        protected void SetElement(IGenericRootItem genericReferenceElement)
        {
            GenericReferenceElement = genericReferenceElement;
            genericReferenceElement.ReferenceElement = this;
        }