diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-08-12 02:12:46 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-08-12 02:12:46 +0300 |
| commit | bd72c7efe687dfaca6d4fd3c0fc2b5a39d57df55 (patch) | |
| tree | 0d238b22049d445b40a25ca95f5fef2a1c725bbd /Software/Visual_Studio/PPC | |
| parent | 3cfc4ee06b801e581107f24e691451cd291b6a70 (diff) | |
| download | Tango-bd72c7efe687dfaca6d4fd3c0fc2b5a39d57df55.tar.gz Tango-bd72c7efe687dfaca6d4fd3c0fc2b5a39d57df55.zip | |
More work on proc_doc.
Fixed app crash on code editor selection.
Diffstat (limited to 'Software/Visual_Studio/PPC')
5 files changed, 153 insertions, 0 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlColumn.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlColumn.cs index 328dbb492..54431bdbe 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlColumn.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlColumn.cs @@ -6,19 +6,47 @@ using System.Threading.Tasks; namespace Tango.PPC.Shared.SQL { + /// <summary> + /// Represents a <see cref="RemoteSqlDataSet"/> column. + /// </summary> public class RemoteSqlColumn { + /// <summary> + /// Gets or sets the column name. + /// </summary> public String Name { get; set; } + + /// <summary> + /// Gets or sets the column index. + /// </summary> public int Index { get; set; } + /// <summary> + /// Initializes a new instance of the <see cref="RemoteSqlColumn"/> class. + /// </summary> public RemoteSqlColumn() { } + /// <summary> + /// Initializes a new instance of the <see cref="RemoteSqlColumn"/> class. + /// </summary> + /// <param name="name">The column name.</param> public RemoteSqlColumn(String name) { Name = name; } + + /// <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 Name; + } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlColumnCollection.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlColumnCollection.cs index 5358e047b..dfda6c3b7 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlColumnCollection.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlColumnCollection.cs @@ -7,15 +7,27 @@ using System.Threading.Tasks; namespace Tango.PPC.Shared.SQL { + /// <summary> + /// Represents a <see cref="RemoteSqlDataSet"/> columns collection. + /// </summary> + /// <seealso cref="System.Collections.ObjectModel.Collection{Tango.PPC.Shared.SQL.RemoteSqlColumn}" /> public class RemoteSqlColumnCollection : Collection<RemoteSqlColumn> { private Dictionary<String, RemoteSqlColumn> _dictionary; + /// <summary> + /// Initializes a new instance of the <see cref="RemoteSqlColumnCollection"/> class. + /// </summary> public RemoteSqlColumnCollection() { _dictionary = new Dictionary<string, RemoteSqlColumn>(); } + /// <summary> + /// Inserts an element into the <see cref="T:System.Collections.ObjectModel.Collection`1" /> at the specified index. + /// </summary> + /// <param name="index">The zero-based index at which <paramref name="item" /> should be inserted.</param> + /// <param name="item">The object to insert. The value can be null for reference types.</param> protected override void InsertItem(int index, RemoteSqlColumn item) { item.Index = Count; @@ -23,22 +35,41 @@ namespace Tango.PPC.Shared.SQL base.InsertItem(index, item); } + /// <summary> + /// Removes the element at the specified index of the <see cref="T:System.Collections.ObjectModel.Collection`1" />. + /// </summary> + /// <param name="index">The zero-based index of the element to remove.</param> + /// <exception cref="NotSupportedException"></exception> protected override void RemoveItem(int index) { throw new NotSupportedException(); } + /// <summary> + /// Removes all elements from the <see cref="T:System.Collections.ObjectModel.Collection`1" />. + /// </summary> protected override void ClearItems() { _dictionary.Clear(); base.ClearItems(); } + /// <summary> + /// Replaces the element at the specified index. + /// </summary> + /// <param name="index">The zero-based index of the element to replace.</param> + /// <param name="item">The new value for the element at the specified index. The value can be null for reference types.</param> + /// <exception cref="NotSupportedException"></exception> protected override void SetItem(int index, RemoteSqlColumn item) { throw new NotSupportedException(); } + /// <summary> + /// Gets the column index by column name. + /// </summary> + /// <param name="columnName">Column name.</param> + /// <returns></returns> public int GetIndexOf(String columnName) { return _dictionary[columnName].Index; diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlDataSet.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlDataSet.cs index 089908e5a..72b8d2eb2 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlDataSet.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/SQL/RemoteSqlDataSet.cs @@ -9,17 +9,37 @@ using System.Threading.Tasks; namespace Tango.PPC.Shared.SQL { + /// <summary> + /// Represents remote database query result composed of rows and columns. + /// </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 RemoteSqlDataSet { + /// <summary> + /// Gets or sets the dataset columns. + /// </summary> public RemoteSqlColumnCollection Columns { get; set; } private ObservableCollection<RemoteSqlRow> _rows; + /// <summary> + /// Gets or sets the dataset rows. + /// </summary> public ObservableCollection<RemoteSqlRow> Rows { get { return _rows; } set { _rows = value; OnRowsChanged(); } } + /// <summary> + /// Initializes a new instance of the <see cref="RemoteSqlDataSet"/> class. + /// </summary> public RemoteSqlDataSet() { Columns = new RemoteSqlColumnCollection(); @@ -61,6 +81,11 @@ namespace Tango.PPC.Shared.SQL } } + /// <summary> + /// Creates a new <see cref="RemoteSqlDataSet"/> using the specified <see cref="SqlDataReader"/>. + /// </summary> + /// <param name="reader">The reader.</param> + /// <returns></returns> public static Task<RemoteSqlDataSet> Load(SqlDataReader reader) { return Task.Factory.StartNew<RemoteSqlDataSet>(() => @@ -100,11 +125,21 @@ namespace Tango.PPC.Shared.SQL }); } + /// <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(", ", Columns.Select(x => x.Name)) + "\n" + String.Join(Environment.NewLine, Rows.Select(x => x.ToString())); } + /// <summary> + /// Formats this dataset as a string with columns and rows. + /// </summary> + /// <returns></returns> public String ToTableString() { Dictionary<int, int> columnsMaxLength = new Dictionary<int, int>(); 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>()) diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Tango.PPC.Shared.csproj b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Tango.PPC.Shared.csproj index 10993399c..a0cc9b153 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Tango.PPC.Shared.csproj +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Tango.PPC.Shared.csproj @@ -22,6 +22,8 @@ <DefineConstants>DEBUG;TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> + <DocumentationFile>..\..\Build\PPC\Debug\Tango.PPC.Shared.xml</DocumentationFile> + <NoWarn>1591</NoWarn> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>pdbonly</DebugType> @@ -30,6 +32,8 @@ <DefineConstants>TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> + <DocumentationFile>..\..\Build\PPC\Release\Tango.PPC.Shared.xml</DocumentationFile> + <NoWarn>1591</NoWarn> </PropertyGroup> <ItemGroup> <Reference Include="System" /> |
