/// <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); }