예제 #1
0
 public Registry(IMapRegistry mapRegistry, IMapper mapper, ICacheRegistry cacheRegistry, IQueryFactory queryFactory, ICmsFetcher cmsFetcher)
 {
     _mapRegistry   = mapRegistry;
     _mapper        = mapper;
     _cacheRegistry = cacheRegistry;
     _queryFactory  = queryFactory;
     _cmsFetcher    = cmsFetcher;
 }
예제 #2
0
        public void Setup()
        {
            _rego = new MapRegistry();
            _mapper = new Mapper(_rego);

            _rego.Copy<CmsKey>()
                .Map(x => x.Key);
            _rego.Copy<Model>()
                .Map(x => x.Name, "nodeName");

            _rego.Register<TestItem>();
            _rego.Register<TestEntity>()
                .Map(x => x.Name, "contentName")
                .Map(x => x.Infos, "list", x => x.Split<string>(new [] {','}))
                .MatchMany(x => x.Items);
            _rego.Register<TestAction>()
                .MapAction<int>((x, v) =>
                {
                    x.Mix = x.ActionId + v;
                }, "value1")
                .MapAction<int>((x, v1) =>
                {
                    x.Sum = v1;
                }, "value1")
                .MapAction<int, int>((x, v1, v2) =>
                {
                    x.Sum2 = v1 + v2;
                }, "value1", "value2")
                .MapAction<int, int, short>((x, v1, v2, v3) =>
                {
                    x.Sum3 = v1 + v2 + v3;
                }, "value1", "value2", "value3")
                .MapAction<int, int, short, short>((x, v1, v2, v3, v4) =>
                {
                    x.Sum4 = v1 + v2 + v3 + v4;
                }, "value1", "value2", "value3", "value4")
                .MapAction<int, int, short, short, int>((x, v1, v2, v3, v4, v5) =>
                {
                    x.Sum5 = v1 + v2 + v3 + v4 + v5;
                }, "value1", "value2", "value3", "value4", "value5")
                .MapAction<int, int, short, short, int, string>((x, v1, v2, v3, v4, v5, v6) =>
                {
                    x.Sum6 = v1 + v2 + v3 + v4 + v5 + (string.IsNullOrWhiteSpace(v6) ? 0 : int.Parse(v6));
                }, "value1", "value2", "value3", "value4", "value5", "value6")
                .MapContent((c, x) =>
                {
                    x.Agregate = c.Get<string>("value1")
                                 + c.Get<string>("value2")
                                 + c.Get<string>("value3")
                                 + c.Get<string>("value4")
                                 + c.Get<string>("value5")
                                 + c.Get<string>("value6");
                })
                ;
        }
예제 #3
0
 public CollectionTypeMap(Type sourceType, Type targetType, IMapRegistry registry) : base(sourceType, targetType, registry)
 {
     if (!SourceType.IsCollection)
     {
         throw new InvalidOperationException(string.Format("{0} is not a collection.", SourceType.Type));
     }
     if (!TargetType.IsCollection)
     {
         throw new InvalidOperationException(string.Format("{0} is not a collection.", TargetType.Type));
     }
 }
예제 #4
0
 public SimpleTypeMap(Type sourceType, Type targetType, IMapRegistry registry) : base(sourceType, targetType, registry)
 {
     if (!SourceType.IsSimple)
     {
         throw new ArgumentException(string.Format("Source type must be a simple type"), "sourceType");
     }
     if (!TargetType.IsSimple)
     {
         throw new ArgumentException(string.Format("Target type must be a simple type"), "targetType");
     }
 }
예제 #5
0
 public Mapper(IMapRegistry registry)
 {
     _registry = registry;
 }
예제 #6
0
 public PropertyMap(Type parentType, PropertyMeta sourceProperty, PropertyMeta targetProperty, IMapRegistry registry) : base(parentType, targetProperty)
 {
     Guard.NotNull(() => sourceProperty, () => targetProperty);
     _sourceProperty = sourceProperty;
     _map            = registry.GetMap(sourceProperty.Type, targetProperty.Type);
 }
예제 #7
0
 public TypeMap(Type sourceType, Type targetType, IMapRegistry registry) : base(sourceType, targetType, registry)
 {
     Init();
 }
예제 #8
0
 protected TypeMapBase(Type sourceType, Type targetType, IMapRegistry registry)
 {
     SourceType = new TypeMeta(sourceType);
     TargetType = new TypeMeta(targetType);
     Registry   = registry;
 }