Ejemplo n.º 1
0
        public IList <IObjRef> ExtractObjRefList(Object objValue,
                                                 IObjRefProvider oriProvider, IList <IObjRef> targetOriList, EntityCallback entityCallback)
        {
            if (objValue == null)
            {
                if (targetOriList == null)
                {
                    targetOriList = EmptyList.Empty <IObjRef>();
                }
                return(targetOriList);
            }
            if (objValue is IList)
            {
                IList list = (IList)objValue;
                if (targetOriList == null)
                {
                    targetOriList = new List <IObjRef>(list.Count);
                }

                for (int a = 0, size = list.Count; a < size; a++)
                {
                    Object objItem = list[a];
                    targetOriList.Add(GetCreateObjRef(objItem, oriProvider));
                    if (entityCallback != null)
                    {
                        entityCallback(objItem);
                    }
                }
            }
            else if (objValue is IEnumerable)
            {
                IEnumerator objEnumerator = ((IEnumerable)objValue).GetEnumerator();
                if (targetOriList == null)
                {
                    targetOriList = new List <IObjRef>();
                }
                while (objEnumerator.MoveNext())
                {
                    Object objItem = objEnumerator.Current;
                    targetOriList.Add(GetCreateObjRef(objItem, oriProvider));
                    if (entityCallback != null)
                    {
                        entityCallback(objItem);
                    }
                }
            }
            else
            {
                if (targetOriList == null)
                {
                    targetOriList = new List <IObjRef>(1);
                }
                targetOriList.Add(GetCreateObjRef(objValue, oriProvider));
                if (entityCallback != null)
                {
                    entityCallback(objValue);
                }
            }
            return(targetOriList);
        }
Ejemplo n.º 2
0
        public IObjRef GetCreateObjRef(Object obj, IObjRefProvider oriProvider)
        {
            if (obj == null)
            {
                return(null);
            }
            if (obj is IObjRef)
            {
                return((IObjRef)obj);
            }
            IEntityMetaData metaData = ((IEntityMetaDataHolder)obj).Get__EntityMetaData();

            return(oriProvider.GetORI(obj, metaData));
        }