private List<SyndicationItem> CreateItemCollection(RecordSet results, GeoRSSExportProperties feedProperties) { List<SyndicationItem> items = new List<SyndicationItem>(); ICursor cursor; SimpleGeometryFactory simpleFactory = new SimpleGeometryFactory(); GMLGeometryFactory gmlFactory = new GMLGeometryFactory(); try { //create a feed item for each record cursor = results.get_Cursor(false); Exporter.logger.LogMessage(ESRI.ArcGIS.SOESupport.ServerLogger.msgType.infoStandard, "CreateItemCollection", 999999, "Cursor Set"); IRow row = cursor.NextRow(); int rowCount = 0; if (row != null) { while (row != null) { //on the first row log out the field name and field alias if (rowCount == 0) { for (int r = 0; r < row.Fields.FieldCount; r++) { IField field = row.Fields.get_Field(r); Exporter.logger.LogMessage(ESRI.ArcGIS.SOESupport.ServerLogger.msgType.infoDetailed, "CreateItemCollection", 999999, "field Name: " + field.Name + " field alias: " + field.AliasName ); } } SyndicationItem item = new SyndicationItem(); //set the item properties foreach (KeyValuePair<string, GeoRSSExportItem> itemConfig in feedProperties.Items) { GeoRSSExportItem itemExportProperty = itemConfig.Value; if (itemExportProperty != null) { SetItemValues(row, ref item, itemConfig, itemExportProperty); } } //process the geometry int fieldIndex = row.Fields.FindField(feedProperties.GeometryField); if (fieldIndex == -1) throw new Exception("Could not locate geometry field:" + feedProperties.GeometryField); if (row.get_Value(fieldIndex) != null) { IGeometry geom = row.get_Value(fieldIndex) as IGeometry; GeoRSSGeometry geometry = null; switch (feedProperties.GetGeoRSSGeomtryType()) { case GeoRSSGeometryFormat.Simple: geometry = simpleFactory.GetGeometry(geom); break; case GeoRSSGeometryFormat.GML: geometry = gmlFactory.GetGeometry(geom); break; default: break; } if (geom != null) item.ElementExtensions.Add(geometry.GeometryAsXML); } items.Add(item); row = cursor.NextRow(); rowCount++; } } return items; } catch (Exception ex) { throw ex; } finally { cursor = null; } }