public virtual void Populate(FieldMap fieldMap, Entity entity) { var fieldsWithNoValueOnEntity = new List<string>(); var @class = new Class(GetType()); @class.EachField(delegate(FieldInfo fieldInfo) { var uiItem = fieldInfo.GetValue(this) as UIItem; if (uiItem == null || !ControlDictionary.Instance.IsEditable(uiItem)) return; string fieldName = fieldMap.GetFieldNameFor(fieldInfo.Name, fieldInfo.FieldType); if (string.IsNullOrEmpty(fieldName)) return; try { EntityField entityField = entity.Field(fieldName); if (entityField == null) fieldsWithNoValueOnEntity.Add(fieldName); else entityField.SetValueOn(uiItem); } catch (TargetInvocationException e) { throw new AppScreenException( string.Format("Error assigning {0}.{1} to {2}.{3} ", entity.GetType(), fieldName, GetType(), fieldInfo.Name), e.InnerException); } }); if (fieldsWithNoValueOnEntity.Count == 0) return; string message = string.Join(",", fieldsWithNoValueOnEntity.ToArray()); WhiteLogger.Instance.WarnFormat("Mapping to screen: {0} with {1}, No value specified for fields {2}", this, entity.GetType(), message); }
public virtual void Populate(FieldMap fieldMap, Entity entity) { var fieldsWithNoValueOnEntity = new List <string>(); var @class = new Class(GetType()); @class.EachField(delegate(FieldInfo fieldInfo) { var uiItem = fieldInfo.GetValue(this) as UIItem; if (uiItem == null || !ControlDictionary.Instance.IsEditable(uiItem)) { return; } string fieldName = fieldMap.GetFieldNameFor(fieldInfo.Name, fieldInfo.FieldType); if (string.IsNullOrEmpty(fieldName)) { return; } try { EntityField entityField = entity.Field(fieldName); if (entityField == null) { fieldsWithNoValueOnEntity.Add(fieldName); } else { entityField.SetValueOn(uiItem); } } catch (TargetInvocationException e) { throw new AppScreenException( string.Format("Error assigning {0}.{1} to {2}.{3} ", entity.GetType(), fieldName, GetType(), fieldInfo.Name), e.InnerException); } }); if (fieldsWithNoValueOnEntity.Count == 0) { return; } string message = string.Join(",", fieldsWithNoValueOnEntity.ToArray()); WhiteLogger.Instance.WarnFormat("Mapping to screen: {0} with {1}, No value specified for fields {2}", this, entity.GetType(), message); }