예제 #1
0
        /// <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;
                }
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }