Ejemplo n.º 1
0
        protected Selector <TModel, TSelector> Select(params Expression <Func <TSelector, object> >[] expressions)
        {
            foreach (var expression in expressions)
            {
                var member = (expression.Body as MemberExpression)?.Member;

                if (member == null)
                {
                    var unary = (expression.Body as UnaryExpression)?.Operand;
                    member = (unary as MemberExpression)?.Member;
                }

                if (member == null)
                {
                    continue;
                }

                if (Selections.TryGetValue(member.Name, out var selection))
                {
                    selection.IsSelected = true;
                }

                if (!SelectedProperties.ContainsKey(member.Name))
                {
                    SelectedProperties.Add(member.Name, PropertyInfoMapping[member.Name]);
                }
            }

            return(this);
        }