private static ix SimpleConversion() { var tableRow = new Dictionary<string, string> { { "a", "x" }, { "ax", "" }, { "b", "12.5" }, { "bx", "" }, { "c", "5" }, { "cx", "" }, { "d", "true" }, { "dx", "" }, }; return tableRow.AsImportObject<ix>().CreateObject(); }
private static ix ConfiguredConversion() { var tableRow = new Dictionary<string, string> { { "a", "x" }, { "au", "" }, { "av", "s" }, { "b", "12.5" }, { "bu", "" }, { "bv", "foo" }, { "c", "5" }, { "cu", "" }, { "cv", "bar" }, { "d", "true" }, { "du", "" }, { "dv", "maybe" }, { "e", "bar" }, { "eu", "n/a" }, { "ev", "foo" }, }; return tableRow.AsImportObject<ix>() .WithConfiguration() .WithObjectFactory(() => new ix()) .WithDefaultConverter(t => v => Convert(v, t)) .WithRequiredField("a", "b", "c", "d") .WithSkippedField("av", "bv", "cv", "dv") .WithPropertyAlias(x => x.ax, "au", "av") .WithPropertyAlias(x => x.bx, "bu", "bv") .WithPropertyAlias(x => x.cx, "cu", "cv") .WithPropertyAlias(x => x.dx, "du", "dv") .WithPropertyAlias(x => x.ex, "eu").WithPropertyAlias(x => x.ez, "ev") .WithValueConverter(str => new foo { a = str }) //matches: e, eu, ev .WithFieldValueConverter("eu", str => ((str == "n/a") ? null : new foo { a = str })) //matches: eu .WithPropertyValueConverter(x => x.ez, str => new foo { a = str.Replace("foo", "...") }) //matches: ev .WithDefaultValue(x => x.az, () => boo.y) .WithDefaultValue(x => x.bz, () => 52.725) .WithDefaultValue(x => x.cz, 24) .WithDefaultValue(x => x.dz, false) .WithDefaultValue(x => x.f, () => new foo { a = "err" }) .CreateObject() ; }