[mapguide-commits] r4834 - in trunk/Tools/Maestro:
Maestro/ResourceEditors/FeatureSourcePreview MaestroAPI
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Wed May 5 04:34:54 EDT 2010
Author: jng
Date: 2010-05-05 04:34:51 -0400 (Wed, 05 May 2010)
New Revision: 4834
Modified:
trunk/Tools/Maestro/Maestro/ResourceEditors/FeatureSourcePreview/ClassPreviewCtrl.cs
trunk/Tools/Maestro/MaestroAPI/FeatureSetReader.cs
Log:
#1349: Implement IEnumerable<IDataRecord> for FeatureSetReader, this means you can now foreach over a FeatureSetReader. The local feature source preview now uses this method as simple proof that it works.
Modified: trunk/Tools/Maestro/Maestro/ResourceEditors/FeatureSourcePreview/ClassPreviewCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro/ResourceEditors/FeatureSourcePreview/ClassPreviewCtrl.cs 2010-05-05 08:22:59 UTC (rev 4833)
+++ trunk/Tools/Maestro/Maestro/ResourceEditors/FeatureSourcePreview/ClassPreviewCtrl.cs 2010-05-05 08:34:51 UTC (rev 4834)
@@ -91,10 +91,11 @@
else
table.Columns.Add(col.Name, col.Type);
}
- while (reader.Read())
+ //while (reader.Read())
+ foreach(FeatureSetRow row in reader)
{
var drow = table.NewRow();
- var row = reader.Row;
+ //var row = reader.Row;
foreach (FeatureSetColumn col in reader.Columns)
{
if (!row.IsValueNull(col.Name))
Modified: trunk/Tools/Maestro/MaestroAPI/FeatureSetReader.cs
===================================================================
--- trunk/Tools/Maestro/MaestroAPI/FeatureSetReader.cs 2010-05-05 08:22:59 UTC (rev 4833)
+++ trunk/Tools/Maestro/MaestroAPI/FeatureSetReader.cs 2010-05-05 08:34:51 UTC (rev 4834)
@@ -29,7 +29,7 @@
/// <summary>
/// Represents a set of results from a query
/// </summary>
- public abstract class FeatureSetReader : IDisposable, IDataReader
+ public abstract class FeatureSetReader : IDisposable, IDataReader, IEnumerable<IDataRecord>
{
protected FeatureSetColumn[] m_columns;
protected FeatureSetRow m_row;
@@ -225,6 +225,48 @@
{
get { return m_row[GetName(i)]; }
}
+
+ internal class FeatureSetRowEnumerator : IEnumerator<IDataRecord>
+ {
+ private FeatureSetReader _parent;
+
+ public FeatureSetRowEnumerator(FeatureSetReader parent)
+ {
+ _parent = parent;
+ }
+
+ public IDataRecord Current
+ {
+ get { return _parent.Row; }
+ }
+
+ public void Dispose() { }
+
+ object System.Collections.IEnumerator.Current
+ {
+ get { return _parent.Row; }
+ }
+
+ public bool MoveNext()
+ {
+ return _parent.Read();
+ }
+
+ public void Reset()
+ {
+ throw new NotSupportedException();
+ }
+ }
+
+ public IEnumerator<IDataRecord> GetEnumerator()
+ {
+ return new FeatureSetRowEnumerator(this);
+ }
+
+ System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
+ {
+ return new FeatureSetRowEnumerator(this);
+ }
}
public abstract class FeatureSetColumn
More information about the mapguide-commits
mailing list