Ejemplo n.º 1
0
        public SearchCriteria MapProperties <F, T>()
        {
            _parameters.ForEach(p => { p.Name = PropertyMapper.GetPropertyName <F, T>(p.Name); });
            _sortedFields.ForEach(s => { s.FieldName = PropertyMapper.GetPropertyName <F, T>(s.FieldName); });
            _aggregateFields.ForEach(p => { p.Field = PropertyMapper.GetPropertyName <F, T>(p.Field); });

            //IEnumerable<string> sumFields = this._summaryFields.Select((field) => PropertyMapper.GetPropertyName<F, T>(field)).ToList();
            //_summaryFields.Clear();
            //_summaryFields.AddRange(sumFields);

            // Validate that mapped properties are valid
            var validProperties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance).Select(p => p.Name).ToList();

            validProperties.AddRange(PropertyMapper.GetReferenceOnlyProperties <F, T>());
            ValidateSearchCriteria(validProperties, validProperties);

            return(this);
        }