public static void ConvertPropertyValueToField <T, C>(object instance, IFindFirstWithFilter list, string fieldName, string propertyName) where T : BusinessBindingListBase <T, C> where C : BusinessBase <C> { Debug.Assert(instance != null, "instance is null"); Debug.Assert(list != null, "list is null"); Debug.Assert(fieldName != null, "fieldName is null"); Attribute attribute = PropertyReflectionHelper.GetAttributeFromProperty(instance, propertyName, typeof(PropertyDescriptionAttribute)); if (attribute != null && attribute is PropertyDescriptionAttribute) { var fieldTypeAttribute = (PropertyDescriptionAttribute)attribute; string fieldType = fieldTypeAttribute.Description; var filter = new Dictionary <string, object>(); filter.Add(fieldName, fieldType); C fieldObj = list.FindFirstWithFilter <T, C>(filter); if (fieldObj != null && fieldObj is IStringValueProperty) { var fieldValue = fieldObj as IStringValueProperty; object valObj = GetPropertyValue(instance, propertyName); if (valObj != null) { if (valObj is Money) { var money = (Money)valObj; fieldValue.Value = money.Amount.ToString(); } else { fieldValue.Value = valObj.ToString(); } } else { fieldValue.Value = null; } } } }
public static void ConvertFieldValueToProperty <T, C>(object instance, IFindFirstWithFilter list, string fieldName, string propertyName) where T : BusinessBindingListBase <T, C> where C : BusinessBase <C> { Attribute attribute = PropertyReflectionHelper.GetAttributeFromProperty(instance, propertyName, typeof(PropertyDescriptionAttribute)); if (attribute != null && attribute is PropertyDescriptionAttribute) { var fieldTypeAttribute = (PropertyDescriptionAttribute)attribute; string fieldType = fieldTypeAttribute.Description; var filter = new Dictionary <string, object>(); filter.Add(fieldName, fieldType); C fieldObj = list.FindFirstWithFilter <T, C>(filter); if (fieldObj != null && fieldObj is IStringValueProperty) { var fieldValue = fieldObj as IStringValueProperty; SetPropertyValue(instance, fieldValue.Value, propertyName); } } }