Esempio n. 1
0
        public bool TryGet <T>(out PEntityBuilder <T> value)
        {
            if (_Builders.TryGetValue(typeof(T), out var result) && result is PEntityBuilder <T> )
            {
                value = (PEntityBuilder <T>)result;
                return(true);
            }

            value = null;
            return(false);
        }
Esempio n. 2
0
        public PEntityBuilder <T> Entity <T>()
        {
            var type = typeof(T);

            if (!this.TryGet(out PEntityBuilder <T> builder))
            {
                builder = new PEntityBuilder <T>(type);
                _Builders.Add(type, builder);
            }

            return(builder);
        }
Esempio n. 3
0
        /// <summary>Marks all properties of an entity as filterable, referenced by its name.</summary>
        public static PEntityBuilder <T> AllPropertiesAreFilterableByName <T>(this PEntityBuilder <T> pEntityBuilder)
            where T : class
        {
            var generator = pEntityBuilder.GetOrCreateGenerator <IFilterParticle <T>, ByPropertyNameParticleGenerator <T> >();

            var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);

            foreach (var p in properties)
            {
                generator.Add(p);
            }

            return(pEntityBuilder);
        }