예제 #1
0
 public Result TryResolve(IResolutionContext context, IDescribeMappableProperty destinationProperty)
 {
     if (inner == null)
     {
         inner = getResolver();
     }
     return(inner.TryResolve(context, destinationProperty));
 }
 public Result TryResolve(IResolutionContext context, IDescribeMappableProperty destinationProperty)
 {
     if(inner==null)
     {
         inner = getResolver();
     }
     return inner.TryResolve(context, destinationProperty);
 }
예제 #3
0
        public void TryCache(Type sourceType,IVisitCacheable visitor,IResolveValue resolver)
        {
            var propertyNameResolver = resolver as PropertyNameResolver;
            if(propertyNameResolver==null)
                return;

            var sourced = propertyNameResolver.SourcedBy(sourceType);
            visitor.Visit(sourced);
        }
예제 #4
0
        public bool TrySetResolver(IDescribeMappableProperty destinationProperty, IResolveValue resolver)
        {
            IResolveValue current;

            if (destinationProperty2Resolver.TryGetValue(destinationProperty, out current) == false || current is IOverrideable)
            {
                destinationProperty2Resolver[destinationProperty] = resolver;
                return(true);
            }
            return(false);
        }
예제 #5
0
        public ISourcedDestinationConfiguration <TDest> Resolving <TSource>(IResolveValue resolver,
                                                                            params Expression <Func <TDest, object> >[]
                                                                            destinationProperties)
        {
            AssertPropertiesProvided(destinationProperties);
            foreach (var expression in destinationProperties)
            {
                inner.SetPropertyResolver(PropertyNameCriterion.From(expression), typeof(TSource), resolver);
            }

            return(this);
        }
예제 #6
0
        public ISourcedDestinationConfiguration <TDest> ApplyingConvention(IResolveValue resolver,
                                                                           params Expression <Func <TDest, object> >[]
                                                                           destinationProperties)
        {
            AssertPropertiesProvided(destinationProperties);
            foreach (var expression in destinationProperties)
            {
                inner.ApplyingConvention(PropertyNameCriterion.From(expression), resolver);
            }

            return(this);
        }
예제 #7
0
        public void TryCache(Type sourceType, IVisitCacheable visitor, IResolveValue resolver)
        {
            var propertyNameResolver = resolver as PropertyNameResolver;

            if (propertyNameResolver == null)
            {
                return;
            }

            var sourced = propertyNameResolver.SourcedBy(sourceType);

            visitor.Visit(sourced);
        }
        private IResolveValue TryGetCandidate(IDescribeMappableProperty mappableProperty)
        {
            IResolveValue candidate = null;

            foreach (var container in containers)
            {
                if (container.WillResolve(mappableProperty) == false)
                {
                    continue;
                }
                IContainResolvers copy = container;
                candidate = copy.GetResolver(mappableProperty);
                if (typeof(IOverrideable).IsInstanceOfType(candidate) == false)
                {
                    return(candidate);
                }
                /*default resolver...keep trying but remember it in case none else be found*/
            }
            return(candidate);
        }
예제 #9
0
 public SourcedConvention(Type sourceType,Convention inner,IResolveValue resolver)
 {
     this.sourceType = sourceType;
     this.inner = inner;
     this.resolver = resolver;
 }
예제 #10
0
 public void AddResolver(IPropertyCriterion propertyCriterion, IResolveValue resolver)
 {
     resolvers.Add(new GlobalResolvers(propertyCriterion,resolver));
 }
예제 #11
0
 public void Apply(IPropertyCriterion propertyCriterion, IResolveValue resolver)
 {
     inner.ApplyingConvention(propertyCriterion, resolver);
 }
예제 #12
0
 public bool TrySetResolver(IDescribeMappableProperty destinationProperty,IResolveValue resolver)
 {
     IResolveValue current;
     if (destinationProperty2Resolver.TryGetValue(destinationProperty, out current) ==false || current is IOverrideable)
     {
         destinationProperty2Resolver[destinationProperty] = resolver;
         return true;
     }
     return false;
 }
예제 #13
0
 public GlobalResolvers(IPropertyCriterion criterion, IResolveValue resolver)
 {
     Criterion = criterion;
     Resolver = resolver;
 }
예제 #14
0
 public void SetResolver(IDescribeMappableProperty destinationProperty, IResolveValue resolver)
 {
     AssertOverrideable(destinationProperty);
     destinationProperty2Resolver[destinationProperty] = resolver;
 }
예제 #15
0
 public void SetResolver(IDescribeMappableProperty destinationProperty, IResolveValue resolver)
 {
     inner.SetResolver(destinationProperty, resolver);
 }
예제 #16
0
 public void SetResolver(IDescribeMappableProperty destinationProperty, IResolveValue resolver)
 {
     inner.SetResolver(destinationProperty, resolver);
 }
예제 #17
0
 public bool TrySetResolver(IDescribeMappableProperty destinationProperty, IResolveValue resolver)
 {
     return inner.TrySetResolver(destinationProperty, resolver);
 }
예제 #18
0
 public Convention(IDescribeMappableProperty[] destinationProperties, IResolveValue resolver)
 {
     this.destinationProperties = destinationProperties;
     this.resolver = resolver;
 }
예제 #19
0
 public ImmutableDestinationResolver(IResolveValue inner)
 {
     this.inner = inner;
 }
예제 #20
0
 public GlobalResolvers(IPropertyCriterion criterion, IResolveValue resolver)
 {
     Criterion = criterion;
     Resolver  = resolver;
 }
예제 #21
0
 public void AddResolver(IPropertyCriterion propertyCriterion, IResolveValue resolver)
 {
     resolvers.Add(new GlobalResolvers(propertyCriterion, resolver));
 }
예제 #22
0
 public SourcedConvention(Type sourceType, Convention inner, IResolveValue resolver)
 {
     this.sourceType = sourceType;
     this.inner      = inner;
     this.resolver   = resolver;
 }
예제 #23
0
 public Convention(IDescribeMappableProperty[] destinationProperties, IResolveValue resolver)
 {
     this.destinationProperties = destinationProperties;
     this.resolver = resolver;
 }
예제 #24
0
 static NullResolver()
 {
     instance = new NullResolver();
 }
예제 #25
0
 public ImmutableDestinationResolver(IResolveValue inner)
 {
     this.inner = inner;
 }
예제 #26
0
 public void SetResolver(IDescribeMappableProperty destinationProperty, IResolveValue resolver)
 {
     AssertOverrideable(destinationProperty);
     destinationProperty2Resolver[destinationProperty] = resolver;
 }
예제 #27
0
 static NullResolver()
 {
     instance = new NullResolver();
 }
예제 #28
0
 public bool TrySetResolver(IDescribeMappableProperty destinationProperty, IResolveValue resolver)
 {
     return(inner.TrySetResolver(destinationProperty, resolver));
 }