Exemple #1
0
 IMapMember IMapMember.SetDependencyMode(MemberDependencyMode mode)
 {
     return(this.SetDependencyMode(mode));
 }
        /// <summary>
        /// Returns a list containing the dependencies of the given entity whose mode match the
        /// one given.
        /// </summary>
        internal static List <object> GetDependencies(this MetaEntity meta, IUberMap map, MemberDependencyMode mode)
        {
            var list   = new List <object>();
            var entity = meta.Entity; if (entity != null && map != null && !map.IsDisposed)

            {
                foreach (var member in (IEnumerable <IUberMember>)map.Members)
                {
                    if (member.DependencyMode != mode)
                    {
                        continue;
                    }
                    if (!member.ElementInfo.CanRead)
                    {
                        continue;
                    }

                    var source = member.ElementInfo.GetValue(entity);
                    if (source == null)
                    {
                        continue;
                    }

                    var type = source.GetType(); if (!type.IsListAlike())
                    {
                        if (type.IsClass)
                        {
                            list.Add(source);
                        }
                    }
                    else
                    {
                        type = type.ListAlikeMemberType(); if (type.IsClass)
                        {
                            var iter = source as IEnumerable;
                            foreach (var item in iter)
                            {
                                if (item != null)
                                {
                                    list.Add(item);
                                }
                            }
                        }
                    }
                }
            }
            return(list);
        }
Exemple #3
0
 /// <summary>
 /// Sets the type of the dependency defined for this member, if any.
 /// </summary>
 /// <param name="mode">The dependency mode.</param>
 /// <returns>This instance to permit a fluent chaining syntax.</returns>
 public MapMember <T> SetDependencyMode(MemberDependencyMode mode)
 {
     DependencyMode = mode;
     return(this);
 }