Esempio n. 1
0
        public IList <TOut> GetObjectList <T, TOut>(IEnumerable <Filter> filters = null, bool loadChild = false, bool getDeleted = false) where T : BaseEntity, new() where TOut : BaseEntityObject, new()
        {
            if (!typeof(T).IsSubclassOf(typeof(BaseEntity)))
            {
                throw new ArgumentException("T", "не является наследником " + typeof(BaseEntity).Name);
            }

            if (!typeof(TOut).IsSubclassOf(typeof(BaseEntityObject)))
            {
                throw new ArgumentException("TOut", "не является наследником " + typeof(BaseEntityObject).Name);
            }

            var res  = new List <TOut>();
            var dtos = _provider.GetObjectList <T>(filters, loadChild, getDeleted);

            if (dtos == null)
            {
                return(res);
            }

            var methodName = GetConverterMethodName(typeof(TOut));
            var method     = GetMethod(typeof(T), methodName);

            res.AddRange(dtos.Select(i => InvokeConverter <T, TOut>(i, method)));

            return(res);
        }