private IEnumerable <string> GetTestIgnoredProperties(TestRuntimeIgnoreContext ctx) { if (ctx.IgnoreStartTime) { yield return("StartTime"); } if (ctx.IgnoreEndTime) { yield return("EndTime"); } }
public void TestRuntimeIgnore() { LinqMapper.LinqMapper.CreateMap <Room, RoomProjection>(); LinqMapper.LinqMapper.CreateMap <Booking, BookingProjection>() .IgnoreRuntimeMembers <TestRuntimeIgnoreContext>(GetTestIgnoredProperties); var ignoreContext = new TestRuntimeIgnoreContext(); var ctx = LinqMapper.LinqMapper.CreateContext(); ctx.SetContext <TestRuntimeIgnoreContext>(ignoreContext); var map = LinqMapper.LinqMapper.GetMap <Booking, BookingProjection>(ctx); Assert.Equal("src => new BookingProjection() {Id = src.Id, StartTime = src.StartTime, EndTime = src.EndTime, Room = new RoomProjection() {Name = src.Room.Name}}", map.ToString()); ignoreContext.IgnoreStartTime = true; map = LinqMapper.LinqMapper.GetMap <Booking, BookingProjection>(ctx); Assert.Equal("src => new BookingProjection() {Id = src.Id, EndTime = src.EndTime, Room = new RoomProjection() {Name = src.Room.Name}}", map.ToString()); ignoreContext.IgnoreEndTime = true; map = LinqMapper.LinqMapper.GetMap <Booking, BookingProjection>(ctx); Assert.Equal("src => new BookingProjection() {Id = src.Id, Room = new RoomProjection() {Name = src.Room.Name}}", map.ToString()); }