public object Map(ValueConverterArgs e) { var values = e.Input.Split(','); var converters = e.OtherConverters.ToArray(); var targetType = e.Target.IsGenericType ? e.Target.GetGenericArguments()[0] : e.Target.GetElementType(); var converter = converters .First(c => c.CanMap(targetType)); var convertedValues = values .Select(val => converter.Map(new ValueConverterArgs(e.Logger, converters, targetType, val))); if (IsIEnumerable(e.Target)) { return(CastArray(targetType, convertedValues.ToArray())); } if (e.Target.IsArray) { return(CastArray(targetType, convertedValues.ToArray())); } if (IsList(e.Target)) { return(GenerateList(targetType, convertedValues)); } throw new NotSupportedException($"Unable to cast to '{e.Target.Name}', as only arrays, IEnumerable<T> an IList<T> are supported at the moment"); }
public object Map(ValueConverterArgs e) { try { var value = Enum.Parse(e.Target, e.Input, ignoreCase: true); return(Enum.IsDefined(e.Target, value) ? value : null); } catch (ArgumentException) { return(null); } }
public object Map(ValueConverterArgs e) { if (string.IsNullOrEmpty(e.Input)) { return(null); } var wrappedType = e.Target.GetGenericArguments().Single(); var otherConverters = e.OtherConverters.ToArray(); var converter = otherConverters.First(c => c.CanMap(wrappedType)); var value = converter.Map(new ValueConverterArgs(e.Logger, otherConverters, wrappedType, e.Input)); return(value); }
public object Map(ValueConverterArgs e) { return(_convert(e.Input)); }
public object Map(ValueConverterArgs e) { return(Convert.ChangeType(e.Input, e.Target)); }