/// <summary>
 /// Set properties of the extension business object from controls.
 /// </summary>
 /// <param name="extensionBizObject"></param>
 public void SetObjectPropertiesFromControlValues(IExtensionBizObject extensionBizObject)
 {
     Dictionary<string, IFieldMetadata> fieldMetadataDictionary = fieldMetadataControlBuilders.Keys.ToDictionary(kvp => kvp.Name, kvp => kvp);
     foreach (string fieldName in fieldMetadataDictionary.Keys)
     {
         IFieldMetadata fieldMetadata = fieldMetadataDictionary[fieldName];
         IExtensionFieldControlBuilder fieldControlBuilder = this.fieldMetadataControlBuilders[fieldMetadata];
         extensionBizObject[fieldName] = fieldControlBuilder.Value;
     }
 }
 /// <summary>
 /// Set control value from extension business object.
 /// </summary>
 /// <param name="extensionBizObject"></param>
 public void SetControlValuesFromObjectProperties(IExtensionBizObject extensionBizObject)
 {
     Dictionary<string, IFieldMetadata> fieldMetadataDictionary = this.fieldMetadataControlBuilders.Keys.ToDictionary(kvp => kvp.Name, kvp => kvp);
     IEnumerator<KeyValuePair<string, object>> iterator = extensionBizObject.GetFieldEnumerator();
     while (iterator.MoveNext())
     {
         KeyValuePair<string, object> property = iterator.Current;
         if (!fieldMetadataDictionary.ContainsKey(property.Key)) continue;
         IFieldMetadata fieldMetadata = fieldMetadataDictionary[property.Key];
         IExtensionFieldControlBuilder fieldControlBuilder = this.fieldMetadataControlBuilders[fieldMetadata];
         fieldControlBuilder.Value = property.Value;
     }
 }