예제 #1
0
        /// <summary>
        /// Get the DataObject <em>id</em> from the FacadeClass as a dictionary of native values,
        /// filtering out nulls, hidden, or unreadable fields.
        /// </summary>
        /// <param name="facade">The FacadeClass</param>
        /// <param name="id">The prefix for the DataObject to return</param>
        /// <returns>Dictionary of field names and values from the DataObject</returns>
        public static Dictionary <string, object> GetDataObjectDictionary(this FacadeClass facade, string id)
        {
            var result = new Dictionary <string, object>();

            var data = facade.GetDataObject(id);

            if (data == null)
            {
                return(null);
            }

            foreach (DictionaryEntry pair in data.GetFields())
            {
                Field field = (Field)pair.Value;

                if (field == null || field.ValueNative == null)
                {
                    continue;
                }

                // Skip hidden fields
                if (!field.CanSelect || field.Properties.Hidden)
                {
                    continue;
                }

                result.Add((string)pair.Key, field.ValueNative);
            }

            return(result);
        }