/// <summary> /// Copy the values from <em>update</em> to the named fields on the <em>facade</em>, /// skipping hidden, readyonly, and otherwise noneditable fields /// </summary> /// <param name="facade">The FacadeClass to copy the values onto.</param> /// <param name="update">The JSON object to read values from.</param> public static void Merge(this FacadeClass facade, JObject update) { foreach (var pair in update) { var token = pair.Value; var field = facade.GetField(pair.Key); // Make sure the field exists if (field == null) { continue; } // Skip read-only fields if (!field.CanUpdate || field.Properties.ReadOnly || field.Properties.ReadOnlyEdit || field.Properties.NotEditable) { continue; } // Make sure its a scalar type if (token is JValue jvalue) { field.ValueNative = jvalue.Value; } } }
private JObject GetFields(FacadeClass individual) { var fields = new JObject(); foreach (var column in new string[] { "cst_key", "ind_first_name", "ind_last_name", "ind_badge_name", "eml_address", "cxa_mailing_label" }) { var field = individual.GetField(column); if (field != null) { fields[column] = field.ValueNative; } } return(fields); }
private JObject GetFields(FacadeClass membership) { var fields = new JObject(); foreach (var column in new string[] { "mbr_key", "mbr_asn_code", "mbt_key", "mbt_code", "mbr_cst_key", "mbr_auto_pay", "mbr_cpi_key" }) { var field = membership.GetField(column); if (field != null) { fields[column] = field.ValueNative; } } return(fields); }