Пример #1
0
 public void AssignCustomValueResolver(IValueResolver valueResolver)
 {
     _ignored        = false;
     _customResolver = valueResolver;
     ResetSourceMemberChain();
     _hasCustomValueResolver = true;
 }
        public object ResolveItemFieldValue(object rawValue)
        {
            if (rawValue == null)
            {
                return(String.Empty);
            }

            var list = (IList)rawValue;

            if (list.Count == 0)
            {
                return(String.Empty);
            }

            Type argumentType = ResolverHelper.GetArgumentType(rawValue.GetType());

            IValueResolver resolver = GetInnerResolver(argumentType);

            var sb = new StringBuilder();

            foreach (object listItem in list)
            {
                sb.Append(resolver.ResolveItemFieldValue(listItem) + "|");
            }

            return(sb.ToString().Substring(0, sb.Length - 1));
        }
Пример #3
0
 public RuleInvoker(IRule <R> rule, IValueResolver <T, R> valueToValidate, EquatableExpression originatingExpression, ICulpritResolver culpritResolver)
 {
     _rule = rule;
     _originatingExpression = originatingExpression;
     _valueToValidate       = valueToValidate;
     _culpritResolver       = culpritResolver;
 }
Пример #4
0
        public static V Evaluate <V>(this ISymbolicExpression var, IValueResolver Resolver, IValueAggregator <V> aggregator)
        {
            var expansion   = rolist(var.Expand());
            var resolutions = array(expansion.Select(x => Resolver.ResolveValue <V>(x)));
            var aggregate   = aggregator.Aggregate(resolutions);

            return(aggregate);
        }
Пример #5
0
            public void ResolveUsing <TSource, TSourceMember>(IValueResolver <TSource, TSourceMember> resolver, string memberName)
            {
                var config = new ValueResolverConfiguration(resolver)
                {
                    SourceMemberName = memberName
                };

                PropertyMapActions.Add(pm => pm.ValueResolverConfig = config);
            }
Пример #6
0
        public void ResolveUsing <TSourceMember>(IValueResolver <TSourceMember, TMember> valueResolver, Expression <Func <TSource, TSourceMember> > sourceMember)
        {
            var config = new ValueResolverConfiguration(valueResolver)
            {
                SourceMember = sourceMember
            };

            PropertyMapActions.Add(pm => pm.ValueResolverConfig = config);
        }
Пример #7
0
        public void MapFrom(IValueResolver <TSource, TDestination, TMember> valueResolver)
        {
            var config = new ValueResolverConfiguration(
                valueResolver,
                typeof(IValueResolver <TSource, TDestination, TMember>)
                );

            PropertyMapActions.Add(pm => pm.ValueResolverConfig = config);
        }
        protected IValueResolver GetInnerResolver(Type typeToResolve)
        {
            IValueResolver resolver = m_resolvers.FirstOrDefault(res =>
                                                                 !(res is DefaultValueResolver || res is ValuesListResolver) && res.CanResolve(typeToResolve));

            if (resolver == null)
            {
                throw new InvalidOperationException(String.Format("Cannon find resolver for {0} and cannot process the list", typeToResolve));
            }

            return(resolver);
        }
        protected override void Initialize()
        {
            if (ValueResolver == null)
            {
                ValueResolver = ValueResolverUtility.GetResolver <double>()
                                .TryMemberReference()
                                .TryExpression();
            }

            var context = ValueResolverUtility.CreateContext(this);

            this.maxValueGetter = ValueResolver.Resolve(context, this.Attribute.Expression, this.Attribute.MaxValue);
        }
Пример #10
0
        public override void Initialize(MemberInfo member, Type memberValueType)
        {
            if (ValueResolver == null)
            {
                ValueResolver = ValueResolverUtility.GetResolver <double>()
                                .TryMemberReference()
                                .TryExpression();
            }

            var context = ValueResolverUtility.CreateContext(this, member);

            context.AddExpressionParameter <T>("value", () => this.valueExpressionArgument);

            this.maxValueGetter = ValueResolver.Resolve(context, this.Attribute.Expression, context.Validator.Attribute.MaxValue);
        }
Пример #11
0
        public FieldScope(
            ITypeTranslator typeTranslator,
            IValueResolver valueResolver,
            IFieldCollector fieldCollector,
            GraphQLObjectType type,
            object parent)
        {
            this.type      = type;
            this.parent    = parent;
            this.arguments = new List <GraphQLArgument>();

            this.fieldCollector = fieldCollector;
            this.typeTranslator = typeTranslator;
            this.valueResolver  = valueResolver;
        }
        public ExpressionResolutionResult GetExpressionResolutionResult(ExpressionResolutionResult expressionResolutionResult, PropertyMap propertyMap, IValueResolver valueResolver)
        {
            Expression currentChild = expressionResolutionResult.ResolutionExpression;
            Type currentChildType;
            var getter = (IMemberGetter)valueResolver;
            var memberInfo = getter.MemberInfo;

            var propertyInfo = memberInfo as PropertyInfo;
            if (propertyInfo != null)
            {
                currentChild = Expression.Property(currentChild, propertyInfo);
                currentChildType = propertyInfo.PropertyType;
            }
            else
                currentChildType = currentChild.Type;

            return new ExpressionResolutionResult(currentChild, currentChildType);
        }
Пример #13
0
        public override void Initialize(MemberInfo member, Type memberValueType)
        {
            if (ValueResolver == null)
            {
                ValueResolver = ValueResolverUtility.GetResolver <double>()
                                .TryMemberReference()
                                .TryExpression();

                RangeResolver = ValueResolverUtility.GetValidatorResolver <MinMaxSliderValidator <T>, Vector2>()
                                .TryMemberReference()
                                .TryExpression()
                                .Func(c => new Vector2((float)c.Validator.minValueGetter.GetValue(), (float)c.Validator.maxValueGetter.GetValue()));
            }

            var context = ValueResolverUtility.CreateContext(this, member);

            context.AddExpressionParameter <T>("value", () => this.valueExpressionArgument);

            this.minValueGetter = ValueResolver.Resolve(context, this.Attribute.MinMember, context.Validator.Attribute.MinValue);
            this.maxValueGetter = ValueResolver.Resolve(context, this.Attribute.MaxMember, context.Validator.Attribute.MaxValue);
            this.rangeGetter    = RangeResolver.Resolve(context, this.Attribute.MinMaxMember);
        }
        private static ExpressionResolutionResult ExpressionResolutionResult(
            ExpressionResolutionResult expressionResolutionResult, IValueResolver valueResolver)
        {
            Expression currentChild = expressionResolutionResult.ResolutionExpression;
            Type       currentChildType;
            var        getter     = (IMemberGetter)valueResolver;
            var        memberInfo = getter.MemberInfo;

            var propertyInfo = memberInfo as PropertyInfo;

            if (propertyInfo != null)
            {
                currentChild     = Expression.Property(currentChild, propertyInfo);
                currentChildType = propertyInfo.PropertyType;
            }
            else
            {
                currentChildType = currentChild.Type;
            }

            return(new ExpressionResolutionResult(currentChild, currentChildType));
        }
        public object ResolveEntityPropertyValue(string rawValue, Type propertyType)
        {
            IList list = CreateList(propertyType);

            if (string.IsNullOrEmpty(rawValue))
            {
                return(list);
            }

            var delimiter = new [] { SitecoreDataAccess.Settings.ValueDelimiter };

            string[] items = rawValue.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);

            Type           listArgumentType = ResolverHelper.GetArgumentType(propertyType);
            IValueResolver resolver         = GetInnerResolver(listArgumentType);

            foreach (string item in items)
            {
                list.Add(resolver.ResolveEntityPropertyValue(item, listArgumentType));
            }

            return(list);
        }
Пример #16
0
 public ConstructorParameterMap(ParameterInfo parameter, IValueResolver[] sourceResolvers, bool canResolve)
 {
     Parameter = parameter;
     SourceResolvers = sourceResolvers;
     CanResolve = canResolve;
 }
Пример #17
0
 public UseValueResolverAttribute(Type valueResolver)
 {
     ValueResolver = valueResolver.GetConstructors()[0].Invoke(new object[] { }) as IValueResolver <object, object, object>;
 }
 public bool CanGetExpressionResolutionResult(ExpressionResolutionResult expressionResolutionResult, IValueResolver valueResolver)
 {
     return valueResolver is IMemberGetter;
 }
 public bool CanGetExpressionResolutionResult(ExpressionResolutionResult expressionResolutionResult, IValueResolver valueResolver)
 {
     return(valueResolver is NullReplacementMethod && expressionResolutionResult.Type.IsNullableType());
 }
        public ExpressionResolutionResult GetExpressionResolutionResult(ExpressionResolutionResult expressionResolutionResult, PropertyMap propertyMap, IValueResolver valueResolver)
        {
            Expression currentChild     = expressionResolutionResult.ResolutionExpression;
            Type       currentChildType = expressionResolutionResult.Type;
            var        nullSubstitute   = propertyMap.NullSubstitute;

            var newParameter = expressionResolutionResult.ResolutionExpression;
            var converter    = new NullSubstitutionConversionVisitor(newParameter, nullSubstitute);

            currentChild     = converter.Visit(currentChild);
            currentChildType = currentChildType.GetTypeOfNullable();

            return(new ExpressionResolutionResult(currentChild, currentChildType));
        }
 public bool CanGetExpressionResolutionResult(ExpressionResolutionResult expressionResolutionResult, IValueResolver valueResolver)
 {
     return valueResolver is NullReplacementMethod && expressionResolutionResult.Type.IsNullableType();
 }
 public static void ConfigureAutomapper(IValueResolver tagResolver)
 {
     Mapper.CreateMap<Post, PostViewModel>();
     Mapper.CreateMap<PostViewModel, Post>().ForMember(p => p.Tags, opt => opt.ResolveUsing(tagResolver));
 }
Пример #23
0
        public ExpressionResolutionResult GetExpressionResolutionResult(
            ExpressionResolutionResult expressionResolutionResult, PropertyMap propertyMap, IValueResolver valueResolver)
        {
            var oldParameter = propertyMap.CustomExpression.Parameters.Single();
            var newParameter = expressionResolutionResult.ResolutionExpression;
            var converter    = new ParameterConversionVisitor(newParameter, oldParameter);

            Expression currentChild     = converter.Visit(propertyMap.CustomExpression.Body);
            Type       currentChildType = currentChild.Type;

            return(new ExpressionResolutionResult(currentChild, currentChildType));
        }
 public ExpressionResolutionResult GetExpressionResolutionResult(ExpressionResolutionResult expressionResolutionResult,
     ConstructorParameterMap propertyMap, IValueResolver valueResolver)
 {
     throw new NotImplementedException();
 }
 public ExpressionResolutionResult GetExpressionResolutionResult(
     ExpressionResolutionResult expressionResolutionResult, PropertyMap propertyMap, IValueResolver valueResolver)
 {
     return(ExpressionResolutionResult(expressionResolutionResult, propertyMap.CustomExpression));
 }
Пример #26
0
 public bool CanGetExpressionResolutionResult(ExpressionResolutionResult expressionResolutionResult,
                                              IValueResolver valueResolver)
 {
     return(valueResolver is IMemberResolver);
 }
 public ExpressionResolutionResult GetExpressionResolutionResult(ExpressionResolutionResult expressionResolutionResult,
                                                                 ConstructorParameterMap propertyMap, IValueResolver valueResolver)
 {
     return(ExpressionResolutionResult(expressionResolutionResult, null));
 }
 public static void AddValueResolver(IValueResolver valueResolver)
 {
     m_resolvers.Insert(0, valueResolver);
 }
Пример #29
0
 public FieldCollector(Dictionary <string, GraphQLFragmentDefinition> fragments, IValueResolver valueResolver)
 {
     this.fragments     = fragments;
     this.valueResolver = valueResolver;
 }
Пример #30
0
        public void ResolveUsing(IValueResolver <TSource, TDestination, TMember> valueResolver)
        {
            var config = new ValueResolverConfiguration(valueResolver);

            PropertyMapActions.Add(pm => pm.ValueResolverConfig = config);
        }
Пример #31
0
        public IResolutionExpression ResolveUsing(IValueResolver valueResolver)
        {
            _propertyMap.AssignCustomValueResolver(valueResolver);

            return(new ResolutionExpression(_typeMap.SourceType, _propertyMap));
        }
 public ExpressionResolutionResult GetExpressionResolutionResult(
     ExpressionResolutionResult expressionResolutionResult, PropertyMap propertyMap, IValueResolver valueResolver)
 {
     return ExpressionResolutionResult(expressionResolutionResult, propertyMap.CustomExpression);
 }
Пример #33
0
		public IResolutionExpression<TSource> ResolveUsing(IValueResolver valueResolver)
		{
			_propertyMap.AssignCustomValueResolver(valueResolver);

			return new ResolutionExpression<TSource>(_propertyMap);
		}
Пример #34
0
 public void ChainConstructorForResolver(IValueResolver valueResolver)
 {
     _customResolver = valueResolver;
 }
 public ExpressionResolutionResult GetExpressionResolutionResult(ExpressionResolutionResult expressionResolutionResult,
     ConstructorParameterMap propertyMap, IValueResolver valueResolver)
 {
     return ExpressionResolutionResult(expressionResolutionResult, null);
 }
Пример #36
0
 public void ChainTypeMemberForResolver(IValueResolver valueResolver)
 {
     ResetSourceMemberChain();
     _customMemberResolver = valueResolver;
 }
Пример #37
0
 public void ChainResolver(IValueResolver IValueResolver)
 {
     _sourceValueResolvers.AddLast(IValueResolver);
 }
Пример #38
0
 public MappingAction(ICondition executionClause, IValueResolver valueResolver)
 {
     ExecutionClause = executionClause;
     ValueResolver   = valueResolver;
 }
        public ExpressionResolutionResult GetExpressionResolutionResult(ExpressionResolutionResult expressionResolutionResult, PropertyMap propertyMap, IValueResolver valueResolver)
        {
            var oldParameter = propertyMap.CustomExpression.Parameters.Single();
            var newParameter = expressionResolutionResult.ResolutionExpression;
            var converter = new ParameterConversionVisitor(newParameter, oldParameter);

            Expression currentChild = converter.Visit(propertyMap.CustomExpression.Body);
            Type currentChildType = currentChild.Type;

            return new ExpressionResolutionResult(currentChild, currentChildType);
        }
        public ExpressionResolutionResult GetExpressionResolutionResult(ExpressionResolutionResult expressionResolutionResult, PropertyMap propertyMap, IValueResolver valueResolver)
        {
            Expression currentChild = expressionResolutionResult.ResolutionExpression;
            Type currentChildType = expressionResolutionResult.Type;
            var nullSubstitute = propertyMap.NullSubstitute;

            var newParameter = expressionResolutionResult.ResolutionExpression;
            var converter = new NullSubstitutionConversionVisitor(newParameter, nullSubstitute);

            currentChild = converter.Visit(currentChild);
            currentChildType = currentChildType.GetTypeOfNullable();

            return new ExpressionResolutionResult(currentChild, currentChildType);
        }