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"); }) ; }
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); }