Skip to content

Commit 6f82d64

Browse files
committed
add WPF version of SQLite provider. Add grouping support to SQLite provider.
1 parent 0e3ff85 commit 6f82d64

8 files changed

Lines changed: 658 additions & 175 deletions

File tree

DataSource.DataProviders.OData/DataSource.DataProviders.OData/Properties/AssemblyInfo.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
[assembly: AssemblyTitle("DataSource.DataProviders.OData")]
99
[assembly: AssemblyDescription("")]
1010
[assembly: AssemblyConfiguration("")]
11-
[assembly: AssemblyCompany("")]
11+
[assembly: AssemblyCompany("Infragistics, Inc.")]
1212
[assembly: AssemblyProduct("DataSource.DataProviders.OData")]
13-
[assembly: AssemblyCopyright("Copyright © 2016")]
13+
[assembly: AssemblyCopyright("Copyright © Infragistics, Inc. 2016 - 2017")]
1414
[assembly: AssemblyTrademark("")]
1515
[assembly: AssemblyCulture("")]
1616

@@ -33,4 +33,4 @@
3333
// by using the '*' as shown below:
3434
// [assembly: AssemblyVersion("1.0.*")]
3535
[assembly: AssemblyVersion("1.0.0.0")]
36-
[assembly: AssemblyFileVersion("1.0.0.0")]
36+
[assembly: AssemblyFileVersion("1.0.0.0")]

DataSource.DataProviders.SQLite/DataSource.DataProviders.SQLite.sln

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,11 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SQLiteDataProvider", "SQLit
77
EndProject
88
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataSource.DataProviders.SQLite.Core", "DataSource.DataProviders.SQLite.Core\DataSource.DataProviders.SQLite.Core.csproj", "{E812EADD-A2C6-4575-9BD7-984F5ED5CB08}"
99
EndProject
10+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataSource.DataProviders.SQLite", "DataSource.DataProviders.SQLite\DataSource.DataProviders.SQLite.csproj", "{6C2837D2-340D-47A9-A7E7-CB384A0EF92F}"
11+
EndProject
1012
Global
1113
GlobalSection(SharedMSBuildProjectFiles) = preSolution
14+
SQLiteDataProvider\SQLiteDataProvider.projitems*{6c2837d2-340d-47a9-a7e7-cb384a0ef92f}*SharedItemsImports = 4
1215
SQLiteDataProvider\SQLiteDataProvider.projitems*{86e04275-b6dc-4cbb-8827-3a0f6d61ac4d}*SharedItemsImports = 13
1316
SQLiteDataProvider\SQLiteDataProvider.projitems*{e812eadd-a2c6-4575-9bd7-984f5ed5cb08}*SharedItemsImports = 4
1417
EndGlobalSection
@@ -21,6 +24,10 @@ Global
2124
{E812EADD-A2C6-4575-9BD7-984F5ED5CB08}.Debug|Any CPU.Build.0 = Debug|Any CPU
2225
{E812EADD-A2C6-4575-9BD7-984F5ED5CB08}.Release|Any CPU.ActiveCfg = Release|Any CPU
2326
{E812EADD-A2C6-4575-9BD7-984F5ED5CB08}.Release|Any CPU.Build.0 = Release|Any CPU
27+
{6C2837D2-340D-47A9-A7E7-CB384A0EF92F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
28+
{6C2837D2-340D-47A9-A7E7-CB384A0EF92F}.Debug|Any CPU.Build.0 = Debug|Any CPU
29+
{6C2837D2-340D-47A9-A7E7-CB384A0EF92F}.Release|Any CPU.ActiveCfg = Release|Any CPU
30+
{6C2837D2-340D-47A9-A7E7-CB384A0EF92F}.Release|Any CPU.Build.0 = Release|Any CPU
2431
EndGlobalSection
2532
GlobalSection(SolutionProperties) = preSolution
2633
HideSolutionNode = FALSE
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
4+
<PropertyGroup>
5+
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
6+
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
7+
<ProjectGuid>{6C2837D2-340D-47A9-A7E7-CB384A0EF92F}</ProjectGuid>
8+
<OutputType>Library</OutputType>
9+
<AppDesignerFolder>Properties</AppDesignerFolder>
10+
<RootNamespace>DataSource.DataProviders.SQLite</RootNamespace>
11+
<AssemblyName>DataSource.DataProviders.SQLite</AssemblyName>
12+
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
13+
<FileAlignment>512</FileAlignment>
14+
<NuGetPackageImportStamp>
15+
</NuGetPackageImportStamp>
16+
</PropertyGroup>
17+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
18+
<DebugSymbols>true</DebugSymbols>
19+
<DebugType>full</DebugType>
20+
<Optimize>false</Optimize>
21+
<OutputPath>bin\Debug\</OutputPath>
22+
<DefineConstants>DEBUG;TRACE</DefineConstants>
23+
<ErrorReport>prompt</ErrorReport>
24+
<WarningLevel>4</WarningLevel>
25+
</PropertyGroup>
26+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
27+
<DebugType>pdbonly</DebugType>
28+
<Optimize>true</Optimize>
29+
<OutputPath>bin\Release\</OutputPath>
30+
<DefineConstants>TRACE</DefineConstants>
31+
<ErrorReport>prompt</ErrorReport>
32+
<WarningLevel>4</WarningLevel>
33+
</PropertyGroup>
34+
<ItemGroup>
35+
<Reference Include="InfragisticsWPF4.DataVisualization.v17.2, Version=17.2.0.9000, Culture=neutral, PublicKeyToken=1102135f7483647e, processorArchitecture=MSIL">
36+
<SpecificVersion>False</SpecificVersion>
37+
<HintPath>..\..\..\..\..\..\..\work\NetAdvantage\DEV\XAML\2017.2\Source\Build\InfragisticsWPF4.DataVisualization.v17.2.dll</HintPath>
38+
</Reference>
39+
<Reference Include="InfragisticsWPF4.v17.2, Version=17.2.0.9000, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL">
40+
<SpecificVersion>False</SpecificVersion>
41+
<HintPath>..\..\..\..\..\..\..\work\NetAdvantage\DEV\XAML\2017.2\Source\Build\InfragisticsWPF4.v17.2.dll</HintPath>
42+
</Reference>
43+
<Reference Include="PresentationCore" />
44+
<Reference Include="PresentationFramework" />
45+
<Reference Include="SQLite-net, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
46+
<HintPath>..\packages\sqlite-net-pcl.1.3.1\lib\netstandard1.1\SQLite-net.dll</HintPath>
47+
<Private>True</Private>
48+
</Reference>
49+
<Reference Include="SQLitePCLRaw.batteries_green, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a84b7dcfb1391f7f, processorArchitecture=MSIL">
50+
<HintPath>..\packages\SQLitePCLRaw.bundle_green.1.1.2\lib\net45\SQLitePCLRaw.batteries_green.dll</HintPath>
51+
<Private>True</Private>
52+
</Reference>
53+
<Reference Include="SQLitePCLRaw.batteries_v2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8226ea5df37bcae9, processorArchitecture=MSIL">
54+
<HintPath>..\packages\SQLitePCLRaw.bundle_green.1.1.2\lib\net45\SQLitePCLRaw.batteries_v2.dll</HintPath>
55+
<Private>True</Private>
56+
</Reference>
57+
<Reference Include="SQLitePCLRaw.core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1488e028ca7ab535, processorArchitecture=MSIL">
58+
<HintPath>..\packages\SQLitePCLRaw.core.1.1.2\lib\net45\SQLitePCLRaw.core.dll</HintPath>
59+
<Private>True</Private>
60+
</Reference>
61+
<Reference Include="SQLitePCLRaw.provider.e_sqlite3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9c301db686d0bd12, processorArchitecture=MSIL">
62+
<HintPath>..\packages\SQLitePCLRaw.provider.e_sqlite3.net45.1.1.2\lib\net45\SQLitePCLRaw.provider.e_sqlite3.dll</HintPath>
63+
<Private>True</Private>
64+
</Reference>
65+
<Reference Include="System" />
66+
<Reference Include="System.ComponentModel.Composition" />
67+
<Reference Include="System.Core" />
68+
<Reference Include="System.IO.Compression" />
69+
<Reference Include="System.Numerics" />
70+
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
71+
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.0.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
72+
<Private>True</Private>
73+
</Reference>
74+
<Reference Include="System.Xml.Linq" />
75+
<Reference Include="System.Data.DataSetExtensions" />
76+
<Reference Include="Microsoft.CSharp" />
77+
<Reference Include="System.Data" />
78+
<Reference Include="System.Net.Http" />
79+
<Reference Include="System.Xml" />
80+
<Reference Include="WindowsBase" />
81+
</ItemGroup>
82+
<ItemGroup>
83+
<Compile Include="Properties\AssemblyInfo.cs" />
84+
</ItemGroup>
85+
<ItemGroup>
86+
<None Include="packages.config" />
87+
</ItemGroup>
88+
<Import Project="..\SQLiteDataProvider\SQLiteDataProvider.projitems" Label="Shared" />
89+
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
90+
<Import Project="..\packages\SQLitePCLRaw.lib.e_sqlite3.linux.1.1.2\build\SQLitePCLRaw.lib.e_sqlite3.linux.targets" Condition="Exists('..\packages\SQLitePCLRaw.lib.e_sqlite3.linux.1.1.2\build\SQLitePCLRaw.lib.e_sqlite3.linux.targets')" />
91+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
92+
<PropertyGroup>
93+
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
94+
</PropertyGroup>
95+
<Error Condition="!Exists('..\packages\SQLitePCLRaw.lib.e_sqlite3.linux.1.1.2\build\SQLitePCLRaw.lib.e_sqlite3.linux.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\SQLitePCLRaw.lib.e_sqlite3.linux.1.1.2\build\SQLitePCLRaw.lib.e_sqlite3.linux.targets'))" />
96+
<Error Condition="!Exists('..\packages\SQLitePCLRaw.lib.e_sqlite3.osx.1.1.2\build\SQLitePCLRaw.lib.e_sqlite3.osx.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\SQLitePCLRaw.lib.e_sqlite3.osx.1.1.2\build\SQLitePCLRaw.lib.e_sqlite3.osx.targets'))" />
97+
<Error Condition="!Exists('..\packages\SQLitePCLRaw.lib.e_sqlite3.v110_xp.1.1.2\build\SQLitePCLRaw.lib.e_sqlite3.v110_xp.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\SQLitePCLRaw.lib.e_sqlite3.v110_xp.1.1.2\build\SQLitePCLRaw.lib.e_sqlite3.v110_xp.targets'))" />
98+
</Target>
99+
<Import Project="..\packages\SQLitePCLRaw.lib.e_sqlite3.osx.1.1.2\build\SQLitePCLRaw.lib.e_sqlite3.osx.targets" Condition="Exists('..\packages\SQLitePCLRaw.lib.e_sqlite3.osx.1.1.2\build\SQLitePCLRaw.lib.e_sqlite3.osx.targets')" />
100+
<Import Project="..\packages\SQLitePCLRaw.lib.e_sqlite3.v110_xp.1.1.2\build\SQLitePCLRaw.lib.e_sqlite3.v110_xp.targets" Condition="Exists('..\packages\SQLitePCLRaw.lib.e_sqlite3.v110_xp.1.1.2\build\SQLitePCLRaw.lib.e_sqlite3.v110_xp.targets')" />
101+
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
102+
Other similar extension points exist, see Microsoft.Common.targets.
103+
<Target Name="BeforeBuild">
104+
</Target>
105+
<Target Name="AfterBuild">
106+
</Target>
107+
-->
108+
</Project>
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using System.Reflection;
2+
using System.Runtime.CompilerServices;
3+
using System.Runtime.InteropServices;
4+
5+
// General Information about an assembly is controlled through the following
6+
// set of attributes. Change these attribute values to modify the information
7+
// associated with an assembly.
8+
[assembly: AssemblyTitle("DataSource.DataProviders.SQLite")]
9+
[assembly: AssemblyDescription("")]
10+
[assembly: AssemblyConfiguration("")]
11+
[assembly: AssemblyCompany("Infragistics, Inc.")]
12+
[assembly: AssemblyProduct("DataSource.DataProviders.SQLite")]
13+
[assembly: AssemblyCopyright("Copyright © Infragistics, Inc. 2017")]
14+
[assembly: AssemblyTrademark("")]
15+
[assembly: AssemblyCulture("")]
16+
17+
// Setting ComVisible to false makes the types in this assembly not visible
18+
// to COM components. If you need to access a type in this assembly from
19+
// COM, set the ComVisible attribute to true on that type.
20+
[assembly: ComVisible(false)]
21+
22+
// The following GUID is for the ID of the typelib if this project is exposed to COM
23+
[assembly: Guid("6c2837d2-340d-47a9-a7e7-cb384a0ef92f")]
24+
25+
// Version information for an assembly consists of the following four values:
26+
//
27+
// Major Version
28+
// Minor Version
29+
// Build Number
30+
// Revision
31+
//
32+
// You can specify all the values or you can default the Build and Revision Numbers
33+
// by using the '*' as shown below:
34+
// [assembly: AssemblyVersion("1.0.*")]
35+
[assembly: AssemblyVersion("1.0.0.0")]
36+
[assembly: AssemblyFileVersion("1.0.0.0")]
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<packages>
3+
<package id="Microsoft.NETCore.Platforms" version="1.0.1" targetFramework="net452" />
4+
<package id="NETStandard.Library" version="1.6.0" targetFramework="net452" />
5+
<package id="sqlite-net-pcl" version="1.3.1" targetFramework="net452" />
6+
<package id="SQLitePCLRaw.bundle_green" version="1.1.2" targetFramework="net452" />
7+
<package id="SQLitePCLRaw.core" version="1.1.2" targetFramework="net452" />
8+
<package id="SQLitePCLRaw.lib.e_sqlite3.linux" version="1.1.2" targetFramework="net452" />
9+
<package id="SQLitePCLRaw.lib.e_sqlite3.osx" version="1.1.2" targetFramework="net452" />
10+
<package id="SQLitePCLRaw.lib.e_sqlite3.v110_xp" version="1.1.2" targetFramework="net452" />
11+
<package id="SQLitePCLRaw.provider.e_sqlite3.net45" version="1.1.2" targetFramework="net452" />
12+
<package id="System.Collections" version="4.0.11" targetFramework="net452" />
13+
<package id="System.Collections.Concurrent" version="4.0.12" targetFramework="net452" />
14+
<package id="System.Diagnostics.Debug" version="4.0.11" targetFramework="net452" />
15+
<package id="System.Diagnostics.Tools" version="4.0.1" targetFramework="net452" />
16+
<package id="System.Diagnostics.Tracing" version="4.1.0" targetFramework="net452" />
17+
<package id="System.Globalization" version="4.0.11" targetFramework="net452" />
18+
<package id="System.IO" version="4.1.0" targetFramework="net452" />
19+
<package id="System.IO.Compression" version="4.1.0" targetFramework="net452" />
20+
<package id="System.Linq" version="4.1.0" targetFramework="net452" />
21+
<package id="System.Linq.Expressions" version="4.1.0" targetFramework="net452" />
22+
<package id="System.Net.Http" version="4.1.0" targetFramework="net452" />
23+
<package id="System.Net.Primitives" version="4.0.11" targetFramework="net452" />
24+
<package id="System.ObjectModel" version="4.0.12" targetFramework="net452" />
25+
<package id="System.Reflection" version="4.1.0" targetFramework="net452" />
26+
<package id="System.Reflection.Extensions" version="4.0.1" targetFramework="net452" />
27+
<package id="System.Reflection.Primitives" version="4.0.1" targetFramework="net452" />
28+
<package id="System.Resources.ResourceManager" version="4.0.1" targetFramework="net452" />
29+
<package id="System.Runtime" version="4.1.0" targetFramework="net452" />
30+
<package id="System.Runtime.Extensions" version="4.1.0" targetFramework="net452" />
31+
<package id="System.Runtime.InteropServices" version="4.1.0" targetFramework="net452" />
32+
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.0.0" targetFramework="net452" />
33+
<package id="System.Runtime.Numerics" version="4.0.1" targetFramework="net452" />
34+
<package id="System.Text.Encoding" version="4.0.11" targetFramework="net452" />
35+
<package id="System.Text.Encoding.Extensions" version="4.0.11" targetFramework="net452" />
36+
<package id="System.Text.RegularExpressions" version="4.1.0" targetFramework="net452" />
37+
<package id="System.Threading" version="4.0.11" targetFramework="net452" />
38+
<package id="System.Threading.Tasks" version="4.0.11" targetFramework="net452" />
39+
<package id="System.Threading.Timer" version="4.0.1" targetFramework="net452" />
40+
<package id="System.Xml.ReaderWriter" version="4.0.11" targetFramework="net452" />
41+
<package id="System.Xml.XDocument" version="4.0.11" targetFramework="net452" />
42+
</packages>

DataSource.DataProviders.SQLite/SQLiteDataProvider/SQLiteVirtualDataSource.cs

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,31 @@ private void OnTableExpressionChanged(string oldValue, string newValue)
5252
QueueAutoRefresh();
5353
}
5454

55-
private string _tableExpression = null;
55+
protected override bool IsSortingSupportedOverride
56+
{
57+
get
58+
{
59+
return true;
60+
}
61+
}
62+
63+
protected override bool IsFilteringSupportedOverride
64+
{
65+
get
66+
{
67+
return true;
68+
}
69+
}
70+
71+
protected override bool IsGroupingSupportedOverride
72+
{
73+
get
74+
{
75+
return true;
76+
}
77+
}
78+
79+
private string _tableExpression = null;
5680
/// <summary>
5781
/// Gets or sets the table expression to pull data from.
5882
/// </summary>
@@ -73,6 +97,36 @@ public string TableExpression
7397
}
7498
}
7599

100+
private void OnGroupingColumnChanged(string oldValue, string newValue)
101+
{
102+
if (ActualDataProvider is SQLiteVirtualDataSourceDataProvider)
103+
{
104+
((SQLiteVirtualDataSourceDataProvider)ActualDataProvider).GroupingColumn = GroupingColumn;
105+
}
106+
QueueAutoRefresh();
107+
}
108+
109+
private string _groupingColumn = null;
110+
/// <summary>
111+
/// Gets or sets column to use for storing the count when counting group sizes.
112+
/// </summary>
113+
public string GroupingColumn
114+
{
115+
get
116+
{
117+
return _groupingColumn;
118+
}
119+
set
120+
{
121+
var oldValue = _groupingColumn;
122+
_groupingColumn = value;
123+
if (oldValue != _groupingColumn)
124+
{
125+
OnGroupingColumnChanged(oldValue, _groupingColumn);
126+
}
127+
}
128+
}
129+
76130
private void OnConnectionChanged(SQLiteAsyncConnection oldValue, SQLiteAsyncConnection newValue)
77131
{
78132
if (ActualDataProvider is SQLiteVirtualDataSourceDataProvider)

DataSource.DataProviders.SQLite/SQLiteDataProvider/SQLiteVirtualDataSourceDataProvider.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ private SQLiteVirtualDataSourceDataProviderWorkerSettings GetWorkerSettings()
123123
PageLoaded = _callback,
124124
ExecutionContext = _executionContext,
125125
SortDescriptions = _sortDescriptions,
126+
GroupingColumn = _groupingColumn,
127+
GroupDescriptions = _groupDescriptions,
126128
FilterExpressions = _filterExpressions,
127129
PropertiesRequested = _propertiesRequested
128130
};
@@ -245,6 +247,28 @@ public string TableExpression
245247
}
246248
}
247249

250+
private string _groupingColumn = null;
251+
public string GroupingColumn
252+
{
253+
get
254+
{
255+
return _groupingColumn;
256+
}
257+
set
258+
{
259+
var oldValue = _groupingColumn;
260+
_groupingColumn = value;
261+
if (oldValue != _groupingColumn)
262+
{
263+
QueueAutoRefresh();
264+
if (Valid() && DeferAutoRefresh)
265+
{
266+
QueueSchemaFetch();
267+
}
268+
}
269+
}
270+
}
271+
248272
private SQLiteAsyncConnection _connection = null;
249273
/// <summary>
250274
/// Gets or sets a connection to use.

0 commit comments

Comments
 (0)