/// <summary> /// Event called once drupal returns a list of paths for /// images. We get raw string output from the server here /// so its up to us to parse the xml ourselves here on /// an application specific basis. /// /// Our objective here is to extract a list of absolute images paths /// </summary> /// <param name="sender"></param> /// <param name="args"></param> void handleNewViewData(object sender, drupalEventArgs args) { // args._responseType will be comma delimited for views System.Diagnostics.Debug.WriteLine("ExhibitDrupalDataManager - handleNewViewData: "); // Create an XmlReader using (XmlReader reader = XmlReader.Create(new StringReader(args._theMessage))) { try { if (args._responseType == DrupalBridge.METHOD_NODE_RETRIEVE) { /** * Here is what the response in xml will be like * <result><vid>1921</vid><uid>1</uid><title>Green Screen App Config</title><log></log> * <status>1</status><comment>0</comment><promote>0</promote> * <sticky>0</sticky><ds_switch></ds_switch> * <nid>1921</nid><type>green_screen_configuration_type</type> * <language>und</language><created>1369013915</created> * <changed>1373471644</changed><tnid>0</tnid><translate>0</translate> * <revision_timestamp>1373471644</revision_timestamp> * <revision_uid>1</revision_uid><field_usr_view_name> * <und is_array="true"><item><value>submitted_green_screen_images</value><format/> * <safe_value>submitted_green_screen_images</safe_value></item></und></field_usr_view_name> * <field_cursor_ms_activation><und is_array="true"><item><value>500</value></item> * </und></field_cursor_ms_activation> * <field_ms_timeout><und is_array="true"><item><value>2000</value></item></und></field_ms_timeout> * <field_sub_img_ct_name><und is_array="true"><item><value>green_screen_image</value><format/><safe_value>green_screen_image</safe_value></item></und></field_sub_img_ct_name> * <field_kinect_depth_threshold_flt><und is_array="true"><item><value>2</value></item></und></field_kinect_depth_threshold_flt> * <field_kinect_gs_threshold_flt><und is_array="true"><item><value>2</value></item></und></field_kinect_gs_threshold_flt> * <rdf_mapping><rdftype is_array="true"><item>sioc:Item</item><item>foaf:Document</item></rdftype><title><predicates is_array="true"> * <item>dc:title</item></predicates></title><created><predicates is_array="true"><item>dc:date</item> * <item>dc:created</item></predicates><datatype>xsd:dateTime</datatype><callback>date_iso8601</callback></created> * <changed><predicates is_array="true"><item>dc:modified</item></predicates><datatype>xsd:dateTime</datatype><callback>date_iso8601</callback></changed> * <body><predicates is_array="true"><item>content:encoded</item></predicates></body><uid><predicates is_array="true"><item>sioc:has_creator</item></predicates> * <type>rel</type></uid><name><predicates is_array="true"><item>foaf:name</item></predicates></name><comment_count> * <predicates is_array="true"><item>sioc:num_replies</item></predicates><datatype>xsd:integer</datatype></comment_count> * <last_activity><predicates is_array="true"><item>sioc:last_activity_date</item></predicates><datatype>xsd:dateTime</datatype> * <callback>date_iso8601</callback></last_activity></rdf_mapping><name>mfDetroitFun</name><picture>0</picture> * <data>a:2:{s:7:"contact";i:0;s:7:"overlay";i:1;}</data><path>http://192.168.0.21/drupal-7.8/node/1921</path></result> */ reader.ReadToFollowing("title"); GlobalConfiguration.title = reader.ReadElementContentAsString(); reader.ReadToFollowing("field_usr_view_name"); reader.ReadToFollowing("value"); GlobalConfiguration.drupalUserSubmittedImageViewName = reader.ReadElementContentAsString(); reader.ReadToFollowing("field_cursor_ms_activation"); reader.ReadToFollowing("value"); GlobalConfiguration.cursorGeneralActivationMS = reader.ReadElementContentAsInt(); reader.ReadToFollowing("field_ms_timeout"); reader.ReadToFollowing("value"); GlobalConfiguration.exhibitTimeout = reader.ReadElementContentAsInt(); reader.ReadToFollowing("field_sub_img_ct_name"); reader.ReadToFollowing("value"); GlobalConfiguration.drupalImageSubmissionContentType = reader.ReadElementContentAsString(); reader.ReadToFollowing("field_kinect_depth_threshold_flt"); reader.ReadToFollowing("value"); GlobalConfiguration.kinectDepthThresholdMeters = reader.ReadElementContentAsFloat(); reader.ReadToFollowing("field_kinect_gs_threshold_flt"); reader.ReadToFollowing("value"); GlobalConfiguration.kinectGreenScreenThresholdMeters = reader.ReadElementContentAsFloat(); } else if ((args._responseType == DrupalBridge.METHOD_VIEW_RETRIEVE + "," + GlobalConfiguration.drupalUserSubmittedImageViewName)) { /** * <result is_array="true"> * <item> * <vid>3</vid> * <uid>1</uid> * <title>Second submitted image</title> * <log/> * <status>1</status><comment>0</comment><promote>0</promote><sticky>0</sticky> * <ds_switch/><nid>3</nid><type>maker_faire_image</type><language>und</language> * <created>1335456209</created> * <changed>1335457127</changed><tnid>0</tnid><translate>0</translate> * <revision_timestamp>1335457127</revision_timestamp><revision_uid>1</revision_uid> * <body><und is_array="true"><item><value>Here is the next submitted image.</value><summary/><format>filtered_html</format> * <safe_value><p>Here is the next submitted image.</p></safe_value> * <safe_summary/> * </item></und></body> * <field_submitted_image> * <und is_array="true"> * <item><fid>90</fid> * <alt>Here is the next submitted image</alt> * <title/> * <width>1280</width> * <height>853</height> * <uid>1</uid> * <filename>IMG_2584.JPG</filename> * <uri>public://makerFaireImages/IMG_2584.JPG</uri> * <filemime>image/jpeg</filemime> * <filesize>233785</filesize><status>1</status> * <timestamp>1335456209</timestamp> * <rdf_mapping/> * </item></und> * </field_submitted_image> * <rdf_mapping> * <rdftype is_array="true"> * <item>sioc:Item</item> * <item>foaf:Document</item> * </rdftype> * <title><predicates is_array="true"><item>dc:title</item></predicates></title> * <created><predicates is_array="true"><item>dc:date</item> * <item>dc:created</item></predicates><datatype>xsd:dateTime</datatype> * <callback>date_iso8601</callback></created> * <changed><predicates is_array="true"><item>dc:modified</item></predicates> * <datatype>xsd:dateTime</datatype><callback>date_iso8601</callback></changed> * <body><predicates is_array="true"><item>content:encoded</item></predicates></body> * <uid><predicates is_array="true"><item>sioc:has_creator</item></predicates><type>rel</type></uid> * <name><predicates is_array="true"><item>foaf:name</item></predicates></name> * <comment_count><predicates is_array="true"><item>sioc:num_replies</item></predicates><datatype>xsd:integer</datatype></comment_count> * <last_activity><predicates is_array="true"><item>sioc:last_activity_date</item></predicates><datatype>xsd:dateTime</datatype><callback>date_iso8601</callback></last_activity> * </rdf_mapping> * <name>tranDAdmin</name><picture>0</picture><data>b:0;</data> * </item> * <item> * <vid>2</vid><uid>1</uid><title>Manually Submitted Test Image</title> * <log/> * <status>1</status><comment>0</comment><promote>0</promote><sticky>0</sticky><ds_switch/> * <nid>2</nid><type>maker_faire_image</type><language>und</language> * <created>1335408113</created><changed>1335457366</changed> * <tnid>0</tnid><translate>0</translate><revision_timestamp>1335457366</revision_timestamp> * <revision_uid>1</revision_uid><body><und is_array="true"> * <item><value>This is a lovely manual image.</value> * <summary/> * <format>filtered_html</format> * <safe_value><p>This is a lovely manual image.</p></safe_value><safe_summary/> * </item></und></body> * <field_submitted_image> * <und is_array="true"> * <item> * <fid>89</fid><alt>A manually submitted user image</alt><title/> * <width>1280</width> * <height>853</height> * <uid>1</uid> * <filename>IMG_2663.JPG</filename> * <uri>public://makerFaireImages/IMG_2663.JPG</uri> * <filemime>image/jpeg</filemime> * <filesize>276556</filesize> * <status>1</status> * <timestamp>1335408113</timestamp> * <rdf_mapping/> * </item></und> * </field_submitted_image> * <rdf_mapping> * <rdftype is_array="true"> * <item>sioc:Item</item> * <item>foaf:Document</item> * </rdftype> * <title><predicates is_array="true"><item>dc:title</item></predicates></title> * <created><predicates is_array="true"><item>dc:date</item> * <item>dc:created</item> * </predicates><datatype>xsd:dateTime</datatype><callback>date_iso8601</callback> * </created><changed><predicates is_array="true"> * <item>dc:modified</item></predicates> * <datatype>xsd:dateTime</datatype><callback>date_iso8601</callback> * </changed><body><predicates is_array="true"> * <item>content:encoded</item></predicates></body> * <uid><predicates is_array="true"> * <item>sioc:has_creator</item></predicates> * <type>rel</type></uid><name><predicates is_array="true"> * <item>foaf:name</item></predicates></name> * <comment_count><predicates is_array="true"> * <item>sioc:num_replies</item></predicates> * <datatype>xsd:integer</datatype></comment_count> * <last_activity><predicates is_array="true"><item>sioc:last_activity_date</item></predicates> * <datatype>xsd:dateTime</datatype><callback>date_iso8601</callback></last_activity></rdf_mapping> * <name>tranDAdmin</name><picture>0</picture><data>b:0;</data> * </item> * </result> */ _ImageData = new List <photoDataObject>(); photoDataObject newGuy; // Save a reference of the base server uri string baseServerURI = ""; if (_db != null) { baseServerURI = _db.getServerBaseURI(); } // Unfortunateley we need to run through everything for this one while (reader.Read()) { //System.Diagnostics.Debug.WriteLine("Name: " + reader.Name + " Value: " + reader.Value.ToString() + " depth: " + reader.Depth); if (reader.Name == "title" && reader.Depth == 2 && reader.NodeType == XmlNodeType.Element) { // Create a new ImageObject and throw it on the hash set newGuy = new photoDataObject("", ""); _ImageData.Add(newGuy); // Next read will be the value, so advance it inside here reader.Read(); newGuy.title = reader.Value.ToString(); System.Diagnostics.Debug.WriteLine("Title at depth: {0} value: {1}", reader.Depth, reader.Value.ToString()); } if (reader.Name == "nid" && reader.Depth == 2 && reader.NodeType == XmlNodeType.Element) { // Next read will be the value, so advance it inside here reader.Read(); _ImageData[_ImageData.Count - 1].drupalNodeID = Convert.ToInt32(reader.Value.ToString()); System.Diagnostics.Debug.WriteLine("node id at depth: {0} value: {1}", reader.Depth, reader.Value.ToString()); } if (reader.Name == "alt" && reader.Depth == 5 && reader.NodeType == XmlNodeType.Element) { // Next read will be the value, so advance it inside here reader.Read(); _ImageData[_ImageData.Count - 1].body = reader.Value.ToString(); System.Diagnostics.Debug.WriteLine("alt at depth: {0} value: {1}", reader.Depth, reader.Value.ToString()); } if (reader.Name == "width" && reader.Depth == 5 && reader.NodeType == XmlNodeType.Element) { // Next read will be the value, so advance it inside here reader.Read(); _ImageData[_ImageData.Count - 1].width = Convert.ToInt32(reader.Value.ToString()); System.Diagnostics.Debug.WriteLine("width at depth: {0} value: {1}", reader.Depth, reader.Value.ToString()); } if (reader.Name == "height" && reader.Depth == 5 && reader.NodeType == XmlNodeType.Element) { // Next read will be the value, so advance it inside here reader.Read(); _ImageData[_ImageData.Count - 1].height = Convert.ToInt32(reader.Value.ToString()); System.Diagnostics.Debug.WriteLine("height at depth: {0} value: {1}", reader.Depth, reader.Value.ToString()); } if (reader.Name == "uri" && reader.Depth == 5 && reader.NodeType == XmlNodeType.Element) { // Next read will be the value, so advance it inside here reader.Read(); _ImageData[_ImageData.Count - 1].thumbnailPath = reader.Value.ToString(); _ImageData[_ImageData.Count - 1].thumbnailPath = _ImageData[_ImageData.Count - 1].thumbnailPath.Replace("public://", baseServerURI + "sites/default/files/"); _ImageData[_ImageData.Count - 1].toLoadPath = _ImageData[_ImageData.Count - 1].thumbnailPath; // Absolute path will be something like this: public://makerFaireImages/IMG_2663.JPG // we need to make it a REAL uri not some dumb drupal uri System.Diagnostics.Debug.WriteLine("uri at depth: {0} value: {1} nodeType: {2}", reader.Depth, _ImageData[_ImageData.Count - 1].thumbnailPath, reader.NodeType); } if (reader.Name == "filemime" && reader.Depth == 5 && reader.NodeType == XmlNodeType.Element) { // Next read will be the value, so advance it inside here reader.Read(); _ImageData[_ImageData.Count - 1].mimeType = reader.Value.ToString(); System.Diagnostics.Debug.WriteLine("filemime at depth: {0} value: {1}", reader.Depth, reader.Value.ToString()); } if (reader.Name == "filename" && reader.Depth == 5 && reader.NodeType == XmlNodeType.Element) { // Next read will be the value, so advance it inside here reader.Read(); _ImageData[_ImageData.Count - 1].fileName = reader.Value.ToString(); System.Diagnostics.Debug.WriteLine("filename at depth: {0} value: {1}", reader.Depth, reader.Value.ToString()); } if (reader.Name == "filesize" && reader.Depth == 5 && reader.NodeType == XmlNodeType.Element) { // Next read will be the value, so advance it inside here reader.Read(); _ImageData[_ImageData.Count - 1].sizeInBytes = Convert.ToInt32(reader.Value.ToString()); System.Diagnostics.Debug.WriteLine("filesize at depth: {0} value: {1}", reader.Depth, reader.Value.ToString()); } } } } catch (XmlException e) { System.Diagnostics.Debug.WriteLine("Exception parsing drupal result xml: {0}", e.ToString()); } } }
private void parseDrupalXMLResponse(string _response, string _responseType) { if (_response != "") { // For Views, we also append the name of the view comma delimited // so we need to check for it string[] splitResponse = _responseType.Split(','); // Create an XmlReader using (XmlReader reader = XmlReader.Create(new StringReader(_response))) { try { switch (splitResponse[0]) { case METHOD_USER_LOGOUT: reader.ReadToFollowing("result"); string tempLogoutValue = reader.ReadElementContentAsString(); System.Diagnostics.Debug.WriteLine("Logout xml parse result: " + tempLogoutValue); if (tempLogoutValue == "1") { this._loggedInUserId = "-1"; } break; case METHOD_USER_LOGIN: reader.ReadToFollowing("uid"); this._loggedInUserId = reader.ReadElementContentAsString(); System.Diagnostics.Debug.WriteLine("Login xml parse userID: " + this._loggedInUserId); break; case METHOD_FILE_CREATE: reader.ReadToFollowing("fid"); this._latestFID = reader.ReadElementContentAsString(); // ReadToFollowing auto hops to the next element if (reader.Name != "uri") { reader.ReadToFollowing("uri"); } this._latestNewURI = reader.ReadElementContentAsString(); break; case METHOD_NODE_CREATE: reader.ReadToFollowing("nid"); this._latestNID = reader.ReadElementContentAsString(); // ReadToFollowing auto hops to the next element if (reader.Name != "uri") { reader.ReadToFollowing("uri"); } this._latestnidURI = reader.ReadElementContentAsString(); break; case METHOD_NODE_RETRIEVE: // Data here will be really unique to the content type of the node may want to consider // passing this off to a specific class. // DISPATCH IF ANY SUBSCRIBERS if (NewDrupalViewData != null) { drupalEventArgs thisEventData = new drupalEventArgs(METHOD_NODE_RETRIEVE, _response); NewDrupalViewData(this, thisEventData); } break; case METHOD_VIEW_RETRIEVE: // Data here will be really unique to the content types contained in the view may want to consider // passing this off to a specific class. // DISPATCH // --------------> _response will be comma delimited // DISPATCH IF ANY SUBSCRIBERS if (NewDrupalViewData != null) { drupalEventArgs nextEventData = new drupalEventArgs(_responseType, _response); NewDrupalViewData(this, nextEventData); } break; } } catch (XmlException e) { System.Diagnostics.Debug.WriteLine("Exception parsing drupal result xml: {0}", e.ToString()); } } } }
/// <summary> /// Event called once drupal returns a list of paths for /// images. We get raw string output from the server here /// so its up to us to parse the xml ourselves here on /// an application specific basis. /// /// Our objective here is to extract a list of absolute images paths /// </summary> /// <param name="sender"></param> /// <param name="args"></param> void handleNewViewData(object sender, drupalEventArgs args) { // args._responseType will be comma delimited for views System.Diagnostics.Debug.WriteLine("ExhibitDrupalDataManager - handleNewViewData: "); // Create an XmlReader using (XmlReader reader = XmlReader.Create(new StringReader(args._theMessage))) { try { if (args._responseType == DrupalBridge.METHOD_NODE_RETRIEVE) { /** * Here is what the response in xml will be like * <result><vid>1921</vid><uid>1</uid><title>Green Screen App Config</title><log></log> * <status>1</status><comment>0</comment><promote>0</promote> * <sticky>0</sticky><ds_switch></ds_switch> * <nid>1921</nid><type>green_screen_configuration_type</type> * <language>und</language><created>1369013915</created> * <changed>1373471644</changed><tnid>0</tnid><translate>0</translate> * <revision_timestamp>1373471644</revision_timestamp> * <revision_uid>1</revision_uid><field_usr_view_name> * <und is_array="true"><item><value>submitted_green_screen_images</value><format/> * <safe_value>submitted_green_screen_images</safe_value></item></und></field_usr_view_name> * <field_cursor_ms_activation><und is_array="true"><item><value>500</value></item> * </und></field_cursor_ms_activation> * <field_ms_timeout><und is_array="true"><item><value>2000</value></item></und></field_ms_timeout> * <field_sub_img_ct_name><und is_array="true"><item><value>green_screen_image</value><format/><safe_value>green_screen_image</safe_value></item></und></field_sub_img_ct_name> * <field_kinect_depth_threshold_flt><und is_array="true"><item><value>2</value></item></und></field_kinect_depth_threshold_flt> * <field_kinect_gs_threshold_flt><und is_array="true"><item><value>2</value></item></und></field_kinect_gs_threshold_flt> * <rdf_mapping><rdftype is_array="true"><item>sioc:Item</item><item>foaf:Document</item></rdftype><title><predicates is_array="true"> * <item>dc:title</item></predicates></title><created><predicates is_array="true"><item>dc:date</item> * <item>dc:created</item></predicates><datatype>xsd:dateTime</datatype><callback>date_iso8601</callback></created> * <changed><predicates is_array="true"><item>dc:modified</item></predicates><datatype>xsd:dateTime</datatype><callback>date_iso8601</callback></changed> * <body><predicates is_array="true"><item>content:encoded</item></predicates></body><uid><predicates is_array="true"><item>sioc:has_creator</item></predicates> * <type>rel</type></uid><name><predicates is_array="true"><item>foaf:name</item></predicates></name><comment_count> * <predicates is_array="true"><item>sioc:num_replies</item></predicates><datatype>xsd:integer</datatype></comment_count> * <last_activity><predicates is_array="true"><item>sioc:last_activity_date</item></predicates><datatype>xsd:dateTime</datatype> * <callback>date_iso8601</callback></last_activity></rdf_mapping><name>mfDetroitFun</name><picture>0</picture> * <data>a:2:{s:7:"contact";i:0;s:7:"overlay";i:1;}</data><path>http://192.168.0.21/drupal-7.8/node/1921</path></result> */ reader.ReadToFollowing("title"); GlobalConfiguration.title = reader.ReadElementContentAsString(); reader.ReadToFollowing("field_usr_view_name"); reader.ReadToFollowing("value"); GlobalConfiguration.drupalUserSubmittedImageViewName = reader.ReadElementContentAsString(); reader.ReadToFollowing("field_cursor_ms_activation"); reader.ReadToFollowing("value"); GlobalConfiguration.cursorGeneralActivationMS = reader.ReadElementContentAsInt(); reader.ReadToFollowing("field_ms_timeout"); reader.ReadToFollowing("value"); GlobalConfiguration.exhibitTimeout = reader.ReadElementContentAsInt(); reader.ReadToFollowing("field_sub_img_ct_name"); reader.ReadToFollowing("value"); GlobalConfiguration.drupalImageSubmissionContentType = reader.ReadElementContentAsString(); reader.ReadToFollowing("field_kinect_depth_threshold_flt"); reader.ReadToFollowing("value"); GlobalConfiguration.kinectDepthThresholdMeters = reader.ReadElementContentAsFloat(); reader.ReadToFollowing("field_kinect_gs_threshold_flt"); reader.ReadToFollowing("value"); GlobalConfiguration.kinectGreenScreenThresholdMeters = reader.ReadElementContentAsFloat(); } else if ((args._responseType == DrupalBridge.METHOD_VIEW_RETRIEVE + "," + GlobalConfiguration.drupalUserSubmittedImageViewName)) { /** * <result is_array="true"> * <item> * <vid>3</vid> * <uid>1</uid> * <title>Second submitted image</title> * <log/> * <status>1</status><comment>0</comment><promote>0</promote><sticky>0</sticky> * <ds_switch/><nid>3</nid><type>maker_faire_image</type><language>und</language> * <created>1335456209</created> * <changed>1335457127</changed><tnid>0</tnid><translate>0</translate> * <revision_timestamp>1335457127</revision_timestamp><revision_uid>1</revision_uid> * <body><und is_array="true"><item><value>Here is the next submitted image.</value><summary/><format>filtered_html</format> * <safe_value><p>Here is the next submitted image.</p></safe_value> * <safe_summary/> * </item></und></body> * <field_submitted_image> * <und is_array="true"> * <item><fid>90</fid> * <alt>Here is the next submitted image</alt> * <title/> * <width>1280</width> * <height>853</height> * <uid>1</uid> * <filename>IMG_2584.JPG</filename> * <uri>public://makerFaireImages/IMG_2584.JPG</uri> * <filemime>image/jpeg</filemime> * <filesize>233785</filesize><status>1</status> * <timestamp>1335456209</timestamp> * <rdf_mapping/> * </item></und> * </field_submitted_image> * <rdf_mapping> * <rdftype is_array="true"> * <item>sioc:Item</item> * <item>foaf:Document</item> * </rdftype> * <title><predicates is_array="true"><item>dc:title</item></predicates></title> * <created><predicates is_array="true"><item>dc:date</item> * <item>dc:created</item></predicates><datatype>xsd:dateTime</datatype> * <callback>date_iso8601</callback></created> * <changed><predicates is_array="true"><item>dc:modified</item></predicates> * <datatype>xsd:dateTime</datatype><callback>date_iso8601</callback></changed> * <body><predicates is_array="true"><item>content:encoded</item></predicates></body> * <uid><predicates is_array="true"><item>sioc:has_creator</item></predicates><type>rel</type></uid> * <name><predicates is_array="true"><item>foaf:name</item></predicates></name> * <comment_count><predicates is_array="true"><item>sioc:num_replies</item></predicates><datatype>xsd:integer</datatype></comment_count> * <last_activity><predicates is_array="true"><item>sioc:last_activity_date</item></predicates><datatype>xsd:dateTime</datatype><callback>date_iso8601</callback></last_activity> * </rdf_mapping> * <name>tranDAdmin</name><picture>0</picture><data>b:0;</data> * </item> * <item> * <vid>2</vid><uid>1</uid><title>Manually Submitted Test Image</title> * <log/> * <status>1</status><comment>0</comment><promote>0</promote><sticky>0</sticky><ds_switch/> * <nid>2</nid><type>maker_faire_image</type><language>und</language> * <created>1335408113</created><changed>1335457366</changed> * <tnid>0</tnid><translate>0</translate><revision_timestamp>1335457366</revision_timestamp> * <revision_uid>1</revision_uid><body><und is_array="true"> * <item><value>This is a lovely manual image.</value> * <summary/> * <format>filtered_html</format> * <safe_value><p>This is a lovely manual image.</p></safe_value><safe_summary/> * </item></und></body> * <field_submitted_image> * <und is_array="true"> * <item> * <fid>89</fid><alt>A manually submitted user image</alt><title/> * <width>1280</width> * <height>853</height> * <uid>1</uid> * <filename>IMG_2663.JPG</filename> * <uri>public://makerFaireImages/IMG_2663.JPG</uri> * <filemime>image/jpeg</filemime> * <filesize>276556</filesize> * <status>1</status> * <timestamp>1335408113</timestamp> * <rdf_mapping/> * </item></und> * </field_submitted_image> * <rdf_mapping> * <rdftype is_array="true"> * <item>sioc:Item</item> * <item>foaf:Document</item> * </rdftype> * <title><predicates is_array="true"><item>dc:title</item></predicates></title> * <created><predicates is_array="true"><item>dc:date</item> * <item>dc:created</item> * </predicates><datatype>xsd:dateTime</datatype><callback>date_iso8601</callback> * </created><changed><predicates is_array="true"> * <item>dc:modified</item></predicates> * <datatype>xsd:dateTime</datatype><callback>date_iso8601</callback> * </changed><body><predicates is_array="true"> * <item>content:encoded</item></predicates></body> * <uid><predicates is_array="true"> * <item>sioc:has_creator</item></predicates> * <type>rel</type></uid><name><predicates is_array="true"> * <item>foaf:name</item></predicates></name> * <comment_count><predicates is_array="true"> * <item>sioc:num_replies</item></predicates> * <datatype>xsd:integer</datatype></comment_count> * <last_activity><predicates is_array="true"><item>sioc:last_activity_date</item></predicates> * <datatype>xsd:dateTime</datatype><callback>date_iso8601</callback></last_activity></rdf_mapping> * <name>tranDAdmin</name><picture>0</picture><data>b:0;</data> * </item> * </result> */ _ImageData = new List<photoDataObject>(); photoDataObject newGuy; // Save a reference of the base server uri string baseServerURI = ""; if (_db != null) { baseServerURI = _db.getServerBaseURI(); } // Unfortunateley we need to run through everything for this one while (reader.Read()) { //System.Diagnostics.Debug.WriteLine("Name: " + reader.Name + " Value: " + reader.Value.ToString() + " depth: " + reader.Depth); if (reader.Name == "title" && reader.Depth == 2 && reader.NodeType == XmlNodeType.Element) { // Create a new ImageObject and throw it on the hash set newGuy = new photoDataObject("", ""); _ImageData.Add(newGuy); // Next read will be the value, so advance it inside here reader.Read(); newGuy.title = reader.Value.ToString(); System.Diagnostics.Debug.WriteLine("Title at depth: {0} value: {1}", reader.Depth, reader.Value.ToString()); } if (reader.Name == "nid" && reader.Depth == 2 && reader.NodeType == XmlNodeType.Element) { // Next read will be the value, so advance it inside here reader.Read(); _ImageData[_ImageData.Count - 1].drupalNodeID = Convert.ToInt32(reader.Value.ToString()); System.Diagnostics.Debug.WriteLine("node id at depth: {0} value: {1}", reader.Depth, reader.Value.ToString()); } if (reader.Name == "alt" && reader.Depth == 5 && reader.NodeType == XmlNodeType.Element) { // Next read will be the value, so advance it inside here reader.Read(); _ImageData[_ImageData.Count - 1].body = reader.Value.ToString(); System.Diagnostics.Debug.WriteLine("alt at depth: {0} value: {1}", reader.Depth, reader.Value.ToString()); } if (reader.Name == "width" && reader.Depth == 5 && reader.NodeType == XmlNodeType.Element) { // Next read will be the value, so advance it inside here reader.Read(); _ImageData[_ImageData.Count - 1].width = Convert.ToInt32(reader.Value.ToString()); System.Diagnostics.Debug.WriteLine("width at depth: {0} value: {1}", reader.Depth, reader.Value.ToString()); } if (reader.Name == "height" && reader.Depth == 5 && reader.NodeType == XmlNodeType.Element) { // Next read will be the value, so advance it inside here reader.Read(); _ImageData[_ImageData.Count - 1].height = Convert.ToInt32(reader.Value.ToString()); System.Diagnostics.Debug.WriteLine("height at depth: {0} value: {1}", reader.Depth, reader.Value.ToString()); } if (reader.Name == "uri" && reader.Depth == 5 && reader.NodeType == XmlNodeType.Element) { // Next read will be the value, so advance it inside here reader.Read(); _ImageData[_ImageData.Count - 1].thumbnailPath = reader.Value.ToString(); _ImageData[_ImageData.Count - 1].thumbnailPath = _ImageData[_ImageData.Count - 1].thumbnailPath.Replace("public://", baseServerURI + "sites/default/files/"); _ImageData[_ImageData.Count - 1].toLoadPath = _ImageData[_ImageData.Count - 1].thumbnailPath; // Absolute path will be something like this: public://makerFaireImages/IMG_2663.JPG // we need to make it a REAL uri not some dumb drupal uri System.Diagnostics.Debug.WriteLine("uri at depth: {0} value: {1} nodeType: {2}", reader.Depth, _ImageData[_ImageData.Count - 1].thumbnailPath, reader.NodeType); } if (reader.Name == "filemime" && reader.Depth == 5 && reader.NodeType == XmlNodeType.Element) { // Next read will be the value, so advance it inside here reader.Read(); _ImageData[_ImageData.Count - 1].mimeType = reader.Value.ToString(); System.Diagnostics.Debug.WriteLine("filemime at depth: {0} value: {1}", reader.Depth, reader.Value.ToString()); } if (reader.Name == "filename" && reader.Depth == 5 && reader.NodeType == XmlNodeType.Element) { // Next read will be the value, so advance it inside here reader.Read(); _ImageData[_ImageData.Count - 1].fileName = reader.Value.ToString(); System.Diagnostics.Debug.WriteLine("filename at depth: {0} value: {1}", reader.Depth, reader.Value.ToString()); } if (reader.Name == "filesize" && reader.Depth == 5 && reader.NodeType == XmlNodeType.Element) { // Next read will be the value, so advance it inside here reader.Read(); _ImageData[_ImageData.Count - 1].sizeInBytes = Convert.ToInt32(reader.Value.ToString()); System.Diagnostics.Debug.WriteLine("filesize at depth: {0} value: {1}", reader.Depth, reader.Value.ToString()); } } } } catch (XmlException e) { System.Diagnostics.Debug.WriteLine("Exception parsing drupal result xml: {0}", e.ToString()); } } }