Unified · Split
| @@ -630,6 +630,45 @@ namespace GrafanaAdapters · 629 unmodified lines | |||
| 630 | }); | 630 | }); |
| 631 | } | 631 | } |
| 632 | 632 | ||
| 633 | /// <summary> | ||
| 634 | /// Search data source for a list of columns from a specific table. | ||
| 635 | /// </summary> | ||
| 636 | /// <param name="request">Table Name.</param> | ||
| 637 | public virtual Task<string[]> SearchFields(Target request) | ||
| 638 | { | ||
| 639 | return Task.Factory.StartNew(() => { | ||
| 640 | return Metadata.Tables[request.target].Columns.Cast<DataColumn>().Select(x => x.ColumnName).ToArray(); | ||
| 641 | }); | ||
| 642 | } | ||
| 643 | |||
| 644 | |||
| 645 | /// <summary> | ||
| 646 | /// Search data source for a list of tables. | ||
| 647 | /// </summary> | ||
| 648 | /// <param name="request">Request.</param> | ||
| 649 | public virtual Task<string[]> SearchFilters(Target request) | ||
| 650 | { | ||
| 651 | return Task.Factory.StartNew(() => { | ||
| 652 | return Metadata.Tables.Cast<DataTable>().Select(x => x.TableName).ToArray(); | ||
| 653 | }); | ||
| 654 | } | ||
| 655 | |||
| 656 | /// <summary> | ||
| 657 | /// Search data source for a list of columns from a specific table. | ||
| 658 | /// </summary> | ||
| 659 | /// <param name="request">Table Name.</param> | ||
| 660 | public virtual Task<string[]> SearchOrderBys(Target request) | ||
| 661 | { | ||
| 662 | return Task.Factory.StartNew(() => { | ||
| 663 | IEnumerable<string> ascStrings = Metadata.Tables[request.target].Columns.Cast<DataColumn>().Select(x => x.ColumnName + " ASC").ToArray(); | ||
| 664 | IEnumerable<string> descStrings = Metadata.Tables[request.target].Columns.Cast<DataColumn>().Select(x => x.ColumnName + " DESC").ToArray(); | ||
| 665 | return ascStrings.Union(descStrings).OrderBy(x => x).ToArray(); | ||
| 666 | }); | ||
| 667 | } | ||
| 668 | |||
| 669 | |||
| 670 | |||
| 671 | |||
| 633 | /// <summary> | 672 | /// <summary> |
| 634 | /// Queries data source for annotations in a time-range (e.g., Alarms). | 673 | /// Queries data source for annotations in a time-range (e.g., Alarms). |
| 635 | /// </summary> | 674 | /// </summary> |