public object Get(IModelFieldType fieldType) { var values = _elements .Select(e => FieldFactory.Create(new[] {e}).Get(new ModelFieldType(fieldType.BaseType, fieldType.Format))) .Where(e => e != null); if (fieldType.HasMultipleValues) return fieldType.Cast(values); return values.FirstOrDefault() ?? fieldType.DefaultValue; }
public object Get(IModelFieldType fieldType) { var values = _elements .Select(e => FieldFactory.Create(new[] { e }).Get(new ModelFieldType(fieldType.BaseType, fieldType.Format))) .Where(e => e != null); if (fieldType.HasMultipleValues) { return(fieldType.Cast(values)); } return(values.FirstOrDefault() ?? fieldType.DefaultValue); }
public object Get(IModelFieldType fieldType) { var values = _elements .Select(e => FieldFactory.Create(new[] { e }).Get(new ModelFieldType(fieldType.BaseType, fieldType.Format))) .Where(e => e != null) .ToArray(); if (fieldType.IsFlagsEnum) { if (values.Length == 1) { return(values.First()); } return(fieldType.GetValueFromStrings(values.Select(v => v.ToString()))); } if (fieldType.IsEnumerable) { return(fieldType.Cast(values)); } return(values.FirstOrDefault() ?? fieldType.DefaultValue); }