diff options
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlRow.cs')
| -rw-r--r-- | Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlRow.cs | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlRow.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlRow.cs index bf6b0ba0c..dfabacfea 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlRow.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlRow.cs @@ -10,28 +10,61 @@ using Tango.BL.Entities; namespace Tango.PPC.Shared.SQL { + /// <summary> + /// Represents a <see cref="RemoteSqlDataSet"/> row. + /// </summary> + /// <example> + /// <para> + /// <i> + /// The following example demonstrates how to set the connected machine's demo state and query for the connected machine's jobs. + /// </i> + /// </para> + /// <code lang="C#" source="../Tango.FSE.Procedures/Examples/Sql/Program.cs" title="Remote SQL" region="Example" /> + /// </example> public class RemoteSqlRow { private Func<String, Object> _getFuncKey; private Func<int, Object> _getFuncIndex; + /// <summary> + /// Gets or sets the row values. + /// </summary> public List<Object> Values { get; set; } + /// <summary> + /// Initializes a new instance of the <see cref="RemoteSqlRow"/> class. + /// </summary> public RemoteSqlRow() { Values = new List<object>(); } + /// <summary> + /// Gets a row value by its column name. + /// </summary> + /// <param name="columnName">Name of the column.</param> + /// <returns>The column value.</returns> public Object Get(String columnName) { return _getFuncKey.Invoke(columnName); } + /// <summary> + /// Gets a row value by its column index. + /// </summary> + /// <param name="columnIndex">Index of the column.</param> + /// <returns>The column value.</returns> public Object Get(int columnIndex) { return _getFuncIndex.Invoke(columnIndex); } + /// <summary> + /// Gets a row value as type T by its column name. + /// </summary> + /// <typeparam name="T">Expected column type.</typeparam> + /// <param name="columnName">Name of the column.</param> + /// <returns>The column value.</returns> public T Get<T>(String columnName) { var value = _getFuncKey.Invoke(columnName); @@ -46,6 +79,12 @@ namespace Tango.PPC.Shared.SQL } } + /// <summary> + /// Gets a row value by its column index. + /// </summary> + /// <typeparam name="T">Expected column type</typeparam> + /// <param name="columnIndex">Index of the column.</param> + /// <returns>The column value.</returns> public T Get<T>(int columnIndex) { var value = _getFuncIndex.Invoke(columnIndex); @@ -66,11 +105,22 @@ namespace Tango.PPC.Shared.SQL _getFuncIndex = getFuncIndex; } + /// <summary> + /// Returns a <see cref="System.String" /> that represents this instance. + /// </summary> + /// <returns> + /// A <see cref="System.String" /> that represents this instance. + /// </returns> public override string ToString() { return String.Join(", ", Values); } + /// <summary> + /// Creates an object of type T and maps this row to it based on its properties decorated with <see cref="ColumnAttribute"/>. + /// </summary> + /// <typeparam name="T"></typeparam> + /// <returns></returns> public T Map<T>() where T : class, new() { var obj = Activator.CreateInstance<T>(); @@ -78,6 +128,11 @@ namespace Tango.PPC.Shared.SQL return obj; } + /// <summary> + /// Maps this row to the specified object based on its properties decorated with <see cref="ColumnAttribute"/>. + /// </summary> + /// <typeparam name="T">Model type</typeparam> + /// <param name="obj">The object.</param> public void Map<T>(T obj) where T : class { foreach (var prop in typeof(T).GetPropertiesWithAttribute<ColumnAttribute>()) |
