diff --git a/e2e/Sandbox/MainWindow.xaml.cs b/e2e/Sandbox/MainWindow.xaml.cs index aad4895f..d7acff5b 100644 --- a/e2e/Sandbox/MainWindow.xaml.cs +++ b/e2e/Sandbox/MainWindow.xaml.cs @@ -147,11 +147,11 @@ private void RevealView_DataSourcesRequested(object sender, DataSourcesRequested sqlDS.Database = "Northwind"; //this is required ds.Add(sqlDS); - //var sqlDSI = new RVSqlServerDataSourceItem(sqlDS); - //sqlDSI.Title = "SQL Server Data Source Item"; - //sqlDSI.Subtitle = "SQL Server DSI Subtitle"; - //sqlDSI.Table = "Customers"; - //dsi.Add(sqlDSI); + var sqlDSI = new RVSqlServerDataSourceItem(sqlDS); + sqlDSI.Title = "SQL Server Data Source Item"; + sqlDSI.Subtitle = "SQL Server DSI Subtitle"; + sqlDSI.Table = "Customers"; + dsi.Add(sqlDSI); //var webDS = new RVWebResourceDataSource(); //webDS.UseAnonymousAuthentication = true; diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItem.cs index f2f62abc..950f4f7f 100644 --- a/src/Reveal.Sdk.Dom/Data/DataSourceItem.cs +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItem.cs @@ -9,7 +9,7 @@ namespace Reveal.Sdk.Dom.Data { public class DataSourceItem : SchemaType { - public DataSourceItem(string title, DataSource dataSource) : this() + public DataSourceItem(string title, DataSource dataSource) : this() { InitializeDataSource(dataSource, title); InitializeDataSourceItem(title); diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/AmazonAthenaDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/AmazonAthenaDataSourceItem.cs new file mode 100644 index 00000000..f12081ad --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/AmazonAthenaDataSourceItem.cs @@ -0,0 +1,10 @@ +namespace Reveal.Sdk.Dom.Data +{ + internal class AmazonAthenaDataSourceItem : TableDataSourceItem + { + public AmazonAthenaDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { + } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/AmazonRedshiftDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/AmazonRedshiftDataSourceItem.cs new file mode 100644 index 00000000..db30d53c --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/AmazonRedshiftDataSourceItem.cs @@ -0,0 +1,10 @@ +namespace Reveal.Sdk.Dom.Data +{ + internal class AmazonRedshiftDataSourceItem : FunctionDataSourceItem + { + public AmazonRedshiftDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { + } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/AmazonS3DataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/AmazonS3DataSourceItem.cs new file mode 100644 index 00000000..7b4a688a --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/AmazonS3DataSourceItem.cs @@ -0,0 +1,14 @@ +using Newtonsoft.Json; + +namespace Reveal.Sdk.Dom.Data +{ + internal class AmazonS3DataSourceItem : DataSourceItem + { + internal AmazonS3DataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public string Path { get; set; } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/BoxDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/BoxDataSourceItem.cs new file mode 100644 index 00000000..8efd3d1f --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/BoxDataSourceItem.cs @@ -0,0 +1,14 @@ +using Newtonsoft.Json; + +namespace Reveal.Sdk.Dom.Data +{ + internal class BoxDataSourceItem : DataSourceItem + { + internal BoxDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public string Identifier { get; set; } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/DropboxDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/DropboxDataSourceItem.cs new file mode 100644 index 00000000..29b41a47 --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/DropboxDataSourceItem.cs @@ -0,0 +1,14 @@ +using Newtonsoft.Json; + +namespace Reveal.Sdk.Dom.Data +{ + internal class DropboxDataSourceItem : DataSourceItem + { + internal DropboxDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public string Path { get; set; } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/GoogleAnalytics4DataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/GoogleAnalytics4DataSourceItem.cs new file mode 100644 index 00000000..9116a45d --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/GoogleAnalytics4DataSourceItem.cs @@ -0,0 +1,17 @@ +using Newtonsoft.Json; + +namespace Reveal.Sdk.Dom.Data +{ + internal class GoogleAnalytics4DataSourceItem : DataSourceItem + { + internal GoogleAnalytics4DataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public string AccountId { get; set; } + + [JsonIgnore] + public string PropertyId { get; set; } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/GoogleBigQueryDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/GoogleBigQueryDataSourceItem.cs new file mode 100644 index 00000000..3507cb7b --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/GoogleBigQueryDataSourceItem.cs @@ -0,0 +1,17 @@ +using Newtonsoft.Json; + +namespace Reveal.Sdk.Dom.Data +{ + internal class GoogleBigQueryDataSourceItem : TableDataSourceItem + { + internal GoogleBigQueryDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public string DataSetId { get; set; } + + [JsonIgnore] + public string ProjectId { get; set; } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/GoogleDriveDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/GoogleDriveDataSourceItem.cs new file mode 100644 index 00000000..db2a1ecc --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/GoogleDriveDataSourceItem.cs @@ -0,0 +1,14 @@ +using Newtonsoft.Json; + +namespace Reveal.Sdk.Dom.Data +{ + internal class GoogleDriveDataSourceItem : DataSourceItem + { + internal GoogleDriveDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public string Identitifer { get; set; } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/GoogleSheetsDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/GoogleSheetsDataSourceItem.cs new file mode 100644 index 00000000..a1ce15a4 --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/GoogleSheetsDataSourceItem.cs @@ -0,0 +1,27 @@ +using Newtonsoft.Json; + +namespace Reveal.Sdk.Dom.Data +{ + internal class GoogleSheetsDataSourceItem : DataSourceItem + { + internal GoogleSheetsDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public bool FirstRowContainsLabels { get; set; } + + [JsonIgnore] + public string NamedRange { get; set; } + + [JsonIgnore] + public string PivotTable { get; set; } + + //todo: this is a nested object + //[JsonIgnore] + //public object Range { get; set; } + + [JsonIgnore] + public string Sheet { get; set; } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftAnalysisServicesDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftAnalysisServicesDataSourceItem.cs new file mode 100644 index 00000000..45ee8a81 --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftAnalysisServicesDataSourceItem.cs @@ -0,0 +1,17 @@ +using Newtonsoft.Json; + +namespace Reveal.Sdk.Dom.Data +{ + internal class MicrosoftAnalysisServicesDataSourceItem : DataSourceItem + { + internal MicrosoftAnalysisServicesDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public string Catalog { get; set; } + + [JsonIgnore] + public string Cube { get; set; } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftAzureAnalysisServicesDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftAzureAnalysisServicesDataSourceItem.cs new file mode 100644 index 00000000..bd778fcc --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftAzureAnalysisServicesDataSourceItem.cs @@ -0,0 +1,9 @@ +namespace Reveal.Sdk.Dom.Data +{ + internal class MicrosoftAzureAnalysisServicesDataSourceItem : DataSourceItem + { + internal MicrosoftAzureAnalysisServicesDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftAzureSqlDatabaseDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftAzureSqlDatabaseDataSourceItem.cs new file mode 100644 index 00000000..c4e160ab --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftAzureSqlDatabaseDataSourceItem.cs @@ -0,0 +1,9 @@ +namespace Reveal.Sdk.Dom.Data +{ + internal class MicrosoftAzureSqlDatabaseDataSourceItem : MicrosoftSqlServerDataSourceItem + { + internal MicrosoftAzureSqlDatabaseDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftAzureSynapseAnalyticsDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftAzureSynapseAnalyticsDataSourceItem.cs new file mode 100644 index 00000000..5ff9846a --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftAzureSynapseAnalyticsDataSourceItem.cs @@ -0,0 +1,9 @@ +namespace Reveal.Sdk.Dom.Data +{ + internal class MicrosoftAzureSynapseAnalyticsDataSourceItem : MicrosoftSqlServerDataSourceItem + { + public MicrosoftAzureSynapseAnalyticsDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftOneDriveDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftOneDriveDataSourceItem.cs new file mode 100644 index 00000000..c3fe852b --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftOneDriveDataSourceItem.cs @@ -0,0 +1,14 @@ +using Newtonsoft.Json; + +namespace Reveal.Sdk.Dom.Data +{ + internal class MicrosoftOneDriveDataSourceItem : DataSourceItem + { + internal MicrosoftOneDriveDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public string Identifier { get; set; } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftSharePointDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftSharePointDataSourceItem.cs new file mode 100644 index 00000000..7af5a54e --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftSharePointDataSourceItem.cs @@ -0,0 +1,9 @@ +namespace Reveal.Sdk.Dom.Data +{ + internal class MicrosoftSharePointDataSourceItem : DataSourceItem + { + internal MicrosoftSharePointDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftSqlServerDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftSqlServerDataSourceItem.cs index bcb32ef1..a867c5b6 100644 --- a/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftSqlServerDataSourceItem.cs +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MicrosoftSqlServerDataSourceItem.cs @@ -1,9 +1,8 @@ -using Newtonsoft.Json; -using Reveal.Sdk.Dom.Core.Extensions; +using Reveal.Sdk.Dom.Core.Extensions; namespace Reveal.Sdk.Dom.Data { - public class MicrosoftSqlServerDataSourceItem : DataSourceItem + public class MicrosoftSqlServerDataSourceItem : ProcedureDataSourceItem { public MicrosoftSqlServerDataSourceItem(string title, MicrosoftSqlServerDataSource dataSource) : base(title, dataSource) @@ -11,7 +10,7 @@ public MicrosoftSqlServerDataSourceItem(string title, MicrosoftSqlServerDataSour public MicrosoftSqlServerDataSourceItem(string title, string table, MicrosoftSqlServerDataSource dataSource) : base(title, dataSource) - { + { Table = table; } @@ -19,13 +18,6 @@ internal MicrosoftSqlServerDataSourceItem(string title, DataSource dataSource) : base(title, dataSource) { } - [JsonIgnore] - public string Table - { - get => Properties.GetValue("Table"); - set => Properties.SetItem("Table", value); - } - protected override void InitializeDataSource(DataSource dataSource, string title) { //todo: make generic and place in base class diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/MongoDbDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MongoDbDataSourceItem.cs new file mode 100644 index 00000000..2def6583 --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MongoDbDataSourceItem.cs @@ -0,0 +1,17 @@ +using Newtonsoft.Json; + +namespace Reveal.Sdk.Dom.Data +{ + internal class MongoDbDataSourceItem : DataSourceItem + { + public MongoDbDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public string Collection { get; set; } + + [JsonIgnore] + public bool ProcessDataOnServer { get; set; } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/MySqlDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MySqlDataSourceItem.cs new file mode 100644 index 00000000..c67793eb --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/MySqlDataSourceItem.cs @@ -0,0 +1,14 @@ +using Newtonsoft.Json; + +namespace Reveal.Sdk.Dom.Data +{ + internal class MySqlDataSourceItem : ProcedureDataSourceItem + { + public MySqlDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public bool ProcessDataOnServer { get; set; } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/ODataDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/ODataDataSourceItem.cs new file mode 100644 index 00000000..8483af5f --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/ODataDataSourceItem.cs @@ -0,0 +1,20 @@ +using Newtonsoft.Json; + +namespace Reveal.Sdk.Dom.Data +{ + internal class ODataDataSourceItem : DataSourceItem + { + internal ODataDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public string EntityType { get; set; } + + [JsonIgnore] + public string FunctionQName { get; set; } + + [JsonIgnore] + public string Url { get; set; } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/OracleDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/OracleDataSourceItem.cs new file mode 100644 index 00000000..eca6a727 --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/OracleDataSourceItem.cs @@ -0,0 +1,9 @@ +namespace Reveal.Sdk.Dom.Data +{ + internal class OracleDataSourceItem : ProcedureDataSourceItem + { + public OracleDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/PostgreSqlDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/PostgreSqlDataSourceItem.cs new file mode 100644 index 00000000..7c3ee211 --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/PostgreSqlDataSourceItem.cs @@ -0,0 +1,14 @@ +using Newtonsoft.Json; + +namespace Reveal.Sdk.Dom.Data +{ + public class PostgreSqlDataSourceItem : FunctionDataSourceItem + { + public PostgreSqlDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public bool ProcessDataOnServer { get; set; } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/SnowflakeDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/SnowflakeDataSourceItem.cs new file mode 100644 index 00000000..4653f27a --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/SnowflakeDataSourceItem.cs @@ -0,0 +1,14 @@ +using Newtonsoft.Json; + +namespace Reveal.Sdk.Dom.Data +{ + internal class SnowflakeDataSourceItem : SchemaDataSourceItem + { + public SnowflakeDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public bool ProcessDataOnServer { get; set; } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DataSourceItems/WebServiceDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DataSourceItems/WebServiceDataSourceItem.cs new file mode 100644 index 00000000..3a60caf0 --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DataSourceItems/WebServiceDataSourceItem.cs @@ -0,0 +1,14 @@ +using Newtonsoft.Json; + +namespace Reveal.Sdk.Dom.Data +{ + internal class WebServiceDataSourceItem : DataSourceItem + { + internal WebServiceDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public string Url { get; set; } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/DatabaseDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/DatabaseDataSourceItem.cs new file mode 100644 index 00000000..c7442905 --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/DatabaseDataSourceItem.cs @@ -0,0 +1,19 @@ +using Newtonsoft.Json; +using Reveal.Sdk.Dom.Core.Extensions; + +namespace Reveal.Sdk.Dom.Data +{ + public abstract class DatabaseDataSourceItem : TableDataSourceItem + { + public DatabaseDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public string Database + { + get => Properties.GetValue("Database"); + set => Properties.SetItem("Database", value); + } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/FunctionDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/FunctionDataSourceItem.cs new file mode 100644 index 00000000..6224428b --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/FunctionDataSourceItem.cs @@ -0,0 +1,17 @@ +using Newtonsoft.Json; + +namespace Reveal.Sdk.Dom.Data +{ + public abstract class FunctionDataSourceItem : SchemaDataSourceItem + { + public FunctionDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public string FunctionName { get; set; } + + [JsonIgnore] + public string FunctionParameters { get; set; } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/ProcedureDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/ProcedureDataSourceItem.cs new file mode 100644 index 00000000..fc5c53e2 --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/ProcedureDataSourceItem.cs @@ -0,0 +1,17 @@ +using Newtonsoft.Json; + +namespace Reveal.Sdk.Dom.Data +{ + public abstract class ProcedureDataSourceItem : DatabaseDataSourceItem + { + public ProcedureDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public string Procedure { get; set; } + + [JsonIgnore] + public string ProcedureParameters { get; set; } + } +} diff --git a/src/Reveal.Sdk.Dom/Data/SchemaDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/SchemaDataSourceItem.cs new file mode 100644 index 00000000..be1de461 --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/SchemaDataSourceItem.cs @@ -0,0 +1,20 @@ +using Newtonsoft.Json; +using Reveal.Sdk.Dom.Core.Extensions; + +namespace Reveal.Sdk.Dom.Data +{ + public abstract class SchemaDataSourceItem : DatabaseDataSourceItem + { + public SchemaDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public string Schema + { + get => Properties.GetValue("Schema"); + set => Properties.SetItem("Schema", value); + } + + } +} diff --git a/src/Reveal.Sdk.Dom/Data/TableDataSourceItem.cs b/src/Reveal.Sdk.Dom/Data/TableDataSourceItem.cs new file mode 100644 index 00000000..c7f5ab61 --- /dev/null +++ b/src/Reveal.Sdk.Dom/Data/TableDataSourceItem.cs @@ -0,0 +1,19 @@ +using Newtonsoft.Json; +using Reveal.Sdk.Dom.Core.Extensions; + +namespace Reveal.Sdk.Dom.Data +{ + public abstract class TableDataSourceItem : DataSourceItem + { + public TableDataSourceItem(string title, DataSource dataSource) : + base(title, dataSource) + { } + + [JsonIgnore] + public string Table + { + get => Properties.GetValue("Table"); + set => Properties.SetItem("Table", value); + } + } +}