aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlRow.cs
diff options
context:
space:
mode:
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.cs55
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>())