コード例 #1
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");
                })
                ;
        }
コード例 #2
0
        public IMapTask <T> Register <T>(string key = null)
            where T : class, new()
        {
            var type = typeof(T);

            if (_mapRegistry.Has(type))
            {
                return(_mapRegistry[type] as IMapTask <T>);
            }

            var mapTask = _mapRegistry.Register <T>();

            if (string.IsNullOrWhiteSpace(key))
            {
                key = type.FullName;
            }

            _cacheRegistry.Add(async x =>
            {
                var cache    = x;
                var cmsQuery = _queryFactory.Create(cache.Site, mapTask);
                var contents = _cmsFetcher.Fetch(cmsQuery);
                var models   = (await _mapper.ToAsync <T>(cache, contents).ConfigureAwait(false)).AsList();

                return(models);
            }, key);

            return(mapTask);
        }