From 104cad5ee53eb05d3a89d508a029425726ae89ae Mon Sep 17 00:00:00 2001
From: chr <chr@mailcom>
Date: 星期一, 24 二月 2025 13:40:52 +0800
Subject: [PATCH] 上传长时间代码;
---
WPFProject/Style/MainTab.xaml | 2
HMI.AlermInfoManage/AlermInfoManage_Setting.xaml | 29
HMI.ParameterManage/ProductModal.xaml.cs | 159
HMI.SettingControl/SettingControl.xaml.cs | 104
HMI.Core/Annotation/InitAttribute.cs | 18
HMI.MenuManage/Util/UserRoleRelHelper.cs | 65
WPFProject/Controls/MainTabControl.xaml | 113
HMI.DataViewer/Properties/Settings.Designer.cs | 30
HMI.IOMonitor/Properties/Resources.Designer.cs | 62
WPFProject/UI/Test/FunctionSetting.xaml | 2
HMI.Core/Entity/NotifyBase.cs | 102
HMI.IOMonitor/IOMonitor.xaml | 126
WPFProject/UI/Test/SequnceList.xaml | 6
HMI.MenuManage/Modal/RoleModal.xaml | 69
WPFProject/UI/StepSetting.xaml | 2
HMI.AlermInfoManage/Properties/Settings.settings | 7
HMI.AlermInfoManage/Properties/AssemblyInfo.cs | 54
VisionBuilder.Run/Properties/Settings.settings | 7
HMI.Core/Api/IProgram.cs | 2
HMI.Core/Util/UtilContainer.cs | 22
HMI.UnitTest/packages.config | 6
WPFProject/Controls/InnerWindow.xaml | 4
Libs/SQLite.Interop.dll | 0
WPFProject/packages.config | 3
HMI.SettingControl/Properties/Settings.Designer.cs | 30
HMI.UI/Converter/PathImageConverter.cs | 29
HMI.UI/Util/MsgBoxHelper.cs | 48
HMI.UI/Properties/Resources.resx | 117
Libs/System.Data.SQLite.dll | 0
HMI.SettingControl/Properties/Resources.resx | 117
HMI.AlermInfoManage/Entity/AimSetting.cs | 65
HMI.UnitTest/Properties/AssemblyInfo.cs | 52
HMI.UI/Style/FormStyle.xaml | 148
HMI.IOMonitor/Properties/Settings.Designer.cs | 30
HMI.UI/Style/PanuonResource.xaml | 133
WPFProject/PanuonWindow.xaml | 58
HMI.Base/Properties/Settings.Designer.cs | 30
HMI.UnitTest/Properties/Settings.settings | 7
HMI.Core/Util/DllHelper.cs | 197
HMI.UnitTest/App.xaml | 16
HMI.Core/Api/ISequnce.cs | 2
HMI.SettingControl/HMI.SettingControl.csproj | 139
VisionBuilder.Run/Properties/AssemblyInfo.cs | 52
HMI.AlermInfoManage/Properties/Resources.Designer.cs | 62
HMI.MenuManage/Properties/Settings.Designer.cs | 26
WPFProject/Controls/MenuTabControl.xaml.cs | 39
HMI.Core/Api/IStep.cs | 2
HMI.MenuManage/Modal/MenuModal.xaml | 98
HMI.UI/Converter/DataGridRowNumberConverter.cs | 24
WPFProject/TestWindow.xaml.cs | 57
HMI.UnitTest/App.config | 6
HMI.MenuManage/Modal/RoleModal.xaml.cs | 168
HMI.IOMonitor/IOMonitor.xaml.cs | 29
WPFProject/App.xaml.cs | 22
VisionBuilder.Run/VisionBuilder.Run.csproj | 74
HMI.UI/HMI.UI.csproj | 169
Libs/DatabaseHelper.dll | 0
HMI.MenuManage/Entity/MenuData.cs | 46
HMI.DataViewer/DataViewer.xaml | 127
HMI.MenuManage/Properties/Resources.resx | 117
HMI.MenuManage/Properties/AssemblyInfo.cs | 54
HMI.Base/HMI.Base.csproj | 89
HMI.IOMonitor/packages.config | 6
HMI.UnitTest/Properties/Resources.resx | 117
HMI.MenuManage/Entity/UserRoleRel.cs | 26
HMI.Core/Event/TabChange.cs | 2
HMI.DataViewer/HMI.DataViewer.csproj | 128
WPFProject/Utils/MainToastHandler.cs | 42
HMI.UnitTest/MainWindow.xaml | 12
HMI.UnitTest/Properties/Settings.Designer.cs | 26
HMI.DataViewer/DataViewer.xaml.cs | 22
WPFProject/MainWindow.xaml | 18
WPFProject/UI/BottomBar.xaml.cs | 2
HMI.UI/Style/MsgBoxStyle.xaml | 133
HMI.DataViewer/Properties/Resources.Designer.cs | 62
HMI.SettingControl/Properties/AssemblyInfo.cs | 52
HMI.Base/Properties/Resources.resx | 117
HMI.Core/Api/IFolderOwner.cs | 13
WPFProject/Entity/PluginSettingInfo.cs | 15
HMI.AlermInfoManage/AlermInfoManage.xaml.cs | 27
VisionBuilder.Run/Properties/Settings.Designer.cs | 30
HMI.Core/Util/PathHelper.cs | 121
HMI.ParameterManage/ProductModal.xaml | 57
HMI.UI/packages.config | 5
WPFProject/MigrationBackup/fde93b81/VisionBuilder.Core/packages.config | 11
HMI.DataViewer/Properties/Resources.resx | 117
HMI.UI/Resources/Font/Font.xaml | 6
HMI.Core/Api/IPlugin.cs | 34
HMI.MenuManage/Properties/Settings.settings | 7
HMI.ParameterManage/ControlModel.cs | 98
WPFProject/WPFProject.csproj | 175
HMI.SettingControl/packages.config | 6
Libs/System.Data.SQLite.dll.config | 22
HMI.IOMonitor/HMI.IOMonitor.csproj | 133
HMI.MenuManage/Entity/RoleData.cs | 29
HMI.ParameterManage/Properties/Resources.Designer.cs | 62
HMI.UI/Style/BaseWindow.xaml | 62
HMI.ParameterManage/ParameterModal.xaml.cs | 141
HMI.UI/DpUtil/FormGroupHelper.cs | 99
HMI.SettingControl/SystemConfig.xaml.cs | 27
HMI.MenuManage/Modal/UserModal.xaml | 81
HMI.MenuManage/UserManage.xaml | 132
HMI.ParameterManage/Entity/ProductData.cs | 11
VisionBuilder.Test/app.config | 19
WPFProject/Controls/MainTabControl.xaml.cs | 156
HMI.DataViewer/Properties/Settings.settings | 7
HMI.SettingControl/Properties/Settings.settings | 7
HMI.SettingControl/SystemConfig.xaml | 46
HMI.SettingControl/SettingControl.xaml | 77
HMI.UI/Style/Colors.xaml | 39
HMI.IOMonitor/Entity/DioData.cs | 12
HMI.UI/Properties/Resources.Designer.cs | 63
HMI.Core/Api/IStepRunner.cs | 4
HMI.MenuManage/Entity/RoleMenuRel.cs | 64
VisionBuilder.Engine/app.config | 19
HMI.MenuManage/Properties/Resources.Designer.cs | 63
HMI.UI/DpUtil/TreeViewHelper.cs | 90
HMI.MenuManage/Modal/UserModal.xaml.cs | 173
HMI.AlermInfoManage/Properties/Settings.Designer.cs | 30
HMI.UI/Properties/Settings.settings | 7
HMI.Core/Setting/SystemSetting.cs | 78
WPFProject/Controls/MenuTabControl.xaml | 109
HMI.AlermInfoManage/Properties/Resources.resx | 117
HMI.ParameterManage/ParameterModal.xaml | 62
WPFProject/PanuonWindow.xaml.cs | 93
HMI.ParameterManage/ParameterManage.xaml | 126
WPFProject/Style/CommonTree.xaml | 2
WPFProject/Utils/Resize.cs | 2
WPFProject/App.config | 16
HMI.MenuManage/Modal/MenuModal.xaml.cs | 298
HMI.ParameterManage/Properties/Resources.resx | 117
WPFProject/App.xaml | 18
HMI.AlermInfoManage/AlermInfoManage.xaml | 96
HMI.MenuManage/Model/MenuManageModel.cs | 110
VisionBuilder.Test/PluginOne.cs | 4
HMI.IOMonitor/Properties/AssemblyInfo.cs | 52
HMI.MenuManage/Util/RoleHelper.cs | 71
HMI.Core/packages.config | 4
HMI.UI/Properties/Settings.Designer.cs | 26
WPFProject/Controls/MinInnerWindow.xaml | 4
HMI.AlermInfoManage/packages.config | 6
HMI.Base/PluginControl.cs | 68
HMI.Core/Util/XmlHelper.cs | 74
HMI.IOMonitor/Properties/Settings.settings | 7
WPFProject/MigrationBackup/fde93b81/VisionBuilder.Core/NuGetUpgradeLog.html | 167
Libs/System.Data.SQLite.xml | 21379 +++++++++++++++++++++++++++++++++++++
WPFProject/WPFProject.sln | 124
HMI.MenuManage/packages.config | 6
HMI.UI/Entity/NotifyBase.cs | 97
HMI.UI/DpUtil/StackPanelHelper.cs | 38
HMI.Core/Properties/AssemblyInfo.cs | 4
HMI.Core/Util/SqliteHelper.cs | 235
HMI.ParameterManage/Properties/Settings.Designer.cs | 30
HMI.MenuManage/MenuManage.xaml | 131
HMI.DataViewer/Properties/AssemblyInfo.cs | 52
HMI.UI/Style/WindowResources.xaml | 26
HMI.UnitTest/App.xaml.cs | 17
HMI.ParameterManage/Properties/AssemblyInfo.cs | 52
HMI.IOMonitor/Properties/Resources.resx | 117
HMI.ParameterManage/ParameterManage.xaml.cs | 119
WPFProject/MainWindow.xaml.cs | 21
HMI.Base/packages.config | 4
HMI.UI/Style/BaseWindow.xaml.cs | 45
HMI.UI/Util/IValueValidator.cs | 7
HMI.Core/Exceptions/FormValidateException.cs | 34
HMI.ParameterManage/Entity/ParameterData.cs | 19
HMI.AlermInfoManage/AlermInfoManage_Setting.xaml.cs | 45
HMI.UnitTest/Properties/Resources.Designer.cs | 63
HMI.ParameterManage/HMI.ParameterManage.csproj | 146
HMI.MenuManage/MenuManage.xaml.cs | 149
HMI.MenuManage/RoleManage.xaml | 127
WPFProject/LoadingWindow.xaml.cs | 36
WPFProject/Models/Step.cs | 2
HMI.MenuManage/Util/RoleMenuHelper.cs | 91
WPFProject/Models/Program.cs | 4
HMI.SettingControl/Properties/Resources.Designer.cs | 62
HMI.MenuManage/RoleManage.xaml.cs | 159
WPFProject/UI/WorkControl.xaml | 13
HMI.Base/PluginInfo.cs | 25
HMI.Core/Api/IConfigRefresh.cs | 7
HMI.Core/app.config | 19
HMI.Core/Entity/Param.cs | 2
HMI.UI/Util/ToastHelper.cs | 48
HMI.UnitTest/MainWindow.xaml.cs | 31
WPFProject/Icon/xinzeng_1.png | 0
HMI.MenuManage/Model/UserManageModel.cs | 98
HMI.ParameterManage/Properties/Settings.settings | 7
WPFProject/LoadingWindow.xaml | 20
HMI.MenuManage/Entity/UserData.cs | 31
HMI.UI/Properties/AssemblyInfo.cs | 52
HMI.MenuManage/UserManage.xaml.cs | 93
HMI.UI/DpUtil/DpPlugin.cs | 22
WPFProject/Controls/IconTabItem.cs | 18
HMI.AlermInfoManage/HMI.AlermInfoManage.csproj | 136
HMI.MenuManage/Model/RoleManageModel.cs | 110
HMI.Base/Properties/AssemblyInfo.cs | 52
HMI.Core/HMI.Core.csproj | 108
HMI.Base/PluginLoader.cs | 132
Libs/System.Data.SQLite.EF6.dll | 0
HMI.UI/Resources/Icon/xinzeng_1.png | 0
VisionBuilder.Test/VisionBuilder.Test.csproj | 22
VisionBuilder.Run/Properties/Resources.resx | 117
VisionBuilder.Engine/VisionBuilder.Engine.csproj | 22
HMI.MenuManage/HMI.MenuManage.csproj | 186
Libs/System.Data.SQLite.Linq.dll | 0
WPFProject/MigrationBackup/fde93b81/VisionBuilder.Core/VisionBuilder.Core.csproj | 93
WPFProject/Entity/PluginLoadMessage.cs | 18
VisionBuilder.Run/Properties/Resources.Designer.cs | 62
WPFProject/TestWindow.xaml | 37
HMI.Base/Properties/Settings.settings | 7
WPFProject/Models/Sequence.cs | 4
HMI.Base/Properties/Resources.Designer.cs | 62
HMI.UI/Resources/Font/iconfont.ttf | 0
/dev/null | 14
WPFProject/Properties/AssemblyInfo.cs | 3
WPFProject/UI/WorkControl.xaml.cs | 104
HMI.DataViewer/packages.config | 6
HMI.UnitTest/HMI.UnitTest.csproj | 144
HMI.Core/Util/BeanUtil.cs | 24
WPFProject/log4net.config | 38
220 files changed, 33,596 insertions(+), 194 deletions(-)
diff --git a/HMI.AlermInfoManage/AlermInfoManage.xaml b/HMI.AlermInfoManage/AlermInfoManage.xaml
new file mode 100644
index 0000000..7e66085
--- /dev/null
+++ b/HMI.AlermInfoManage/AlermInfoManage.xaml
@@ -0,0 +1,96 @@
+锘�<hb:PluginControl x:Class="HMI.AlermInfoManage.AlermInfoManage"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:hb="clr-namespace:HMI.Base;assembly=HMI.Base"
+ xmlns:local="clr-namespace:HMI.AlermInfoManage"
+ xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ mc:Ignorable="d"
+ Background="{StaticResource WorkspaceBackground}"
+ Loaded="UserControl_Loaded"
+ d:DesignHeight="450" d:DesignWidth="800">
+ <UserControl.Resources>
+ <ResourceDictionary>
+ <ResourceDictionary.MergedDictionaries>
+ <ResourceDictionary Source="/HMI.UI;component/Style/BaseWindow.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/FormStyle.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/Colors.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/PanuonResource.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/MsgBoxStyle.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+ <uic:PathImageConverter x:Key="path2Image"/>
+ <uic:DataGridRowNumberConverter x:Key="rowNumber"/>
+ </ResourceDictionary>
+ </UserControl.Resources>
+
+ <Border Style="{StaticResource CardBoarder}">
+ <StackPanel>
+ <DockPanel Margin="0,0,0,10">
+ <Button DockPanel.Dock="Right" pu:ButtonHelper.Icon="" Style="{StaticResource DangerButton}">鍒犻櫎</Button>
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
+pu:IconHelper.FontFamily="{StaticResource iconfont}"
+pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="refreshBtn" Click="Button_Click">鍒锋柊</Button>
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
+ pu:IconHelper.FontFamily="{StaticResource iconfont}"
+ pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="addBtn" Click="Button_Click">鏂板</Button>
+ <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}"
+ VerticalAlignment="Center" HorizontalAlignment="Left" Text="鎶ヨ淇℃伅鍒楄〃"/>
+ </DockPanel>
+
+ <DataGrid x:Name="table" Style="{StaticResource DefaultDataGrid}" ItemsSource="{Binding DataSource}">
+ <DataGrid.Columns>
+ <DataGridTemplateColumn Header="" Width="Auto" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <CheckBox VerticalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTemplateColumn Header="#" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <TextBlock Text="{Binding Converter={StaticResource rowNumber},
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTextColumn Width="*" Binding="{Binding Source}" Header="鏉ユ簮" />
+ <DataGridTextColumn Width="*" Binding="{Binding Code}" Header="缂栫爜" />
+ <DataGridTextColumn Width="*" Binding="{Binding Info}" Header="淇℃伅" />
+ <DataGridTextColumn Width="*" Binding="{Binding Time}" Header="鏃堕棿" />
+ <DataGridTemplateColumn Header="鎿嶄綔" Width="100" IsReadOnly="True" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal">
+ <Button x:Name="editBtn" Style="{StaticResource LinkButton}"
+ Margin="0,0,10,0"
+ Click="Button_Click"
+ DataContext="{Binding }">缂栬緫</Button>
+ <Button x:Name="delBtn" Style="{StaticResource DangerLinkButton}"
+ DataContext="{Binding }"
+ Click="Button_Click">鍒犻櫎</Button>
+ </StackPanel>
+
+ <DataTemplate.Triggers>
+ <DataTrigger Binding="{Binding Path=IsMouseOver,
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
+ Value="True">
+ <Setter TargetName="editBtn" Property="Foreground" Value="#FFF"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Path=IsSelected,
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
+ Value="True">
+ <Setter TargetName="editBtn" Property="Foreground" Value="#FFF"/>
+ </DataTrigger>
+ </DataTemplate.Triggers>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ </DataGrid.Columns>
+ </DataGrid>
+ </StackPanel>
+ </Border>
+</hb:PluginControl>
diff --git a/HMI.AlermInfoManage/AlermInfoManage.xaml.cs b/HMI.AlermInfoManage/AlermInfoManage.xaml.cs
new file mode 100644
index 0000000..7656b46
--- /dev/null
+++ b/HMI.AlermInfoManage/AlermInfoManage.xaml.cs
@@ -0,0 +1,27 @@
+锘縰sing System.Windows;
+using HMI.Base;
+
+namespace HMI.AlermInfoManage
+{
+ /// <summary>
+ /// UserControl1.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class AlermInfoManage : PluginControl
+ {
+
+ public AlermInfoManage()
+ {
+ InitializeComponent();
+ }
+
+ private void Button_Click(object sender, RoutedEventArgs e)
+ {
+
+ }
+
+ private void UserControl_Loaded(object sender, RoutedEventArgs e)
+ {
+
+ }
+ }
+}
diff --git a/HMI.AlermInfoManage/AlermInfoManage_Setting.xaml b/HMI.AlermInfoManage/AlermInfoManage_Setting.xaml
new file mode 100644
index 0000000..c468c29
--- /dev/null
+++ b/HMI.AlermInfoManage/AlermInfoManage_Setting.xaml
@@ -0,0 +1,29 @@
+锘�<UserControl x:Class="HMI.AlermInfoManage.AlermInfoManage_Setting"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:local="clr-namespace:HMI.AlermInfoManage"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ Loaded="UserControl_Loaded"
+ mc:Ignorable="d"
+ d:DesignHeight="450" d:DesignWidth="800">
+ <Grid>
+ <StackPanel>
+ <GroupBox Header="PLC璁剧疆">
+ <StackPanel>
+ <pu:FormGroup Header="PLC IP" GroupName="MyFormGroup">
+ <TextBox Text="{Binding PlcIp}"/>
+ </pu:FormGroup>
+
+ <pu:FormGroup Header="鍚敤PLC" GroupName="MyFormGroup">
+ <CheckBox IsChecked="{Binding PlcEnabled,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+ </pu:FormGroup>
+ </StackPanel>
+ </GroupBox>
+
+ <Button Click="Button_Click">淇濆瓨</Button>
+ </StackPanel>
+ </Grid>
+</UserControl>
diff --git a/HMI.AlermInfoManage/AlermInfoManage_Setting.xaml.cs b/HMI.AlermInfoManage/AlermInfoManage_Setting.xaml.cs
new file mode 100644
index 0000000..358cea4
--- /dev/null
+++ b/HMI.AlermInfoManage/AlermInfoManage_Setting.xaml.cs
@@ -0,0 +1,45 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using HMI.AlermInfoManage.Entity;
+using HMI.Core.Util;
+
+namespace HMI.AlermInfoManage
+{
+ /// <summary>
+ /// AlermInfoManage_Setting.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class AlermInfoManage_Setting : UserControl
+ {
+ public AlermInfoManage_Setting()
+ {
+ InitializeComponent();
+ }
+
+ private void UserControl_Loaded(object sender, RoutedEventArgs e)
+ {
+ DataContext = AimSetting.Instance.GetModel();
+ }
+
+ private void Button_Click(object sender, RoutedEventArgs e)
+ {
+ AimSettingModel model = (AimSettingModel)DataContext;
+
+ AimSetting newSetting = AimSetting.FromModel(model);
+
+ XmlHelper.SerializeToXml(PathHelper.ConfigFolder + "\\AimSetting.xml", model);
+
+ }
+ }
+}
diff --git a/HMI.AlermInfoManage/Entity/AimSetting.cs b/HMI.AlermInfoManage/Entity/AimSetting.cs
new file mode 100644
index 0000000..5ae2606
--- /dev/null
+++ b/HMI.AlermInfoManage/Entity/AimSetting.cs
@@ -0,0 +1,65 @@
+锘縰sing HMI.Core.Entity;
+using HMI.Core.Util;
+
+namespace HMI.AlermInfoManage.Entity
+{
+ public class AimSetting
+ {
+ public static AimSetting Instance { get; private set; }
+
+ public string PlcIp { get; private set; }
+ public bool PlcEnabled { get; private set; }
+
+ private AimSetting() { }
+
+ static AimSetting()
+ {
+ LoadFromXml();
+ }
+
+ public static void LoadFromXml()
+ {
+ try
+ {
+ string path = PathHelper.ConfigFolder + "\\AimSetting.xml";
+ AimSettingModel model = XmlHelper.DeserializeFromXml<AimSettingModel>(path);
+ Instance = FromModel(model);
+ }
+ catch
+ {
+ Instance = new AimSetting();
+ }
+ }
+
+ public AimSettingModel GetModel()
+ {
+ return new AimSettingModel() { PlcIp = PlcIp, PlcEnabled = PlcEnabled };
+ }
+
+ public static AimSetting FromModel(AimSettingModel model)
+ {
+ return new AimSetting() { PlcIp = model.PlcIp, PlcEnabled = model.PlcEnabled };
+ }
+
+ }
+
+ public class AimSettingModel : NotifyBase
+ {
+ private string plcIp;
+ public string PlcIp
+ {
+ get => plcIp;
+ set
+ {
+ Set(ref plcIp, value);
+ }
+ }
+
+ private bool plcEnabled;
+ public bool PlcEnabled
+ {
+ get { return plcEnabled; }
+ set { Set(ref plcEnabled, value); }
+ }
+ }
+}
diff --git a/HMI.AlermInfoManage/HMI.AlermInfoManage.csproj b/HMI.AlermInfoManage/HMI.AlermInfoManage.csproj
new file mode 100644
index 0000000..ad1dded
--- /dev/null
+++ b/HMI.AlermInfoManage/HMI.AlermInfoManage.csproj
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{945C2577-4558-45E3-891A-096CB3047304}</ProjectGuid>
+ <OutputType>library</OutputType>
+ <RootNamespace>HMI.AlermInfoManage</RootNamespace>
+ <AssemblyName>HMI.AlermInfoManage</AssemblyName>
+ <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <WarningLevel>4</WarningLevel>
+ <Deterministic>true</Deterministic>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>bin\x64\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <DebugType>full</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ <OutputPath>bin\x64\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <Optimize>true</Optimize>
+ <DebugType>pdbonly</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="log4net, Version=3.0.3.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\log4net.3.0.3\lib\net462\log4net.dll</HintPath>
+ </Reference>
+ <Reference Include="Panuon.WPF, Version=1.1.2.2, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\Panuon.WPF.1.1.2.2\lib\net472\Panuon.WPF.dll</HintPath>
+ </Reference>
+ <Reference Include="Panuon.WPF.UI, Version=1.2.4.8, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\Panuon.WPF.UI.1.2.4.9\lib\net472\Panuon.WPF.UI.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Configuration" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Web" />
+ <Reference Include="System.Xml" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Xaml">
+ <RequiredTargetFramework>4.0</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="WindowsBase" />
+ <Reference Include="PresentationCore" />
+ <Reference Include="PresentationFramework" />
+ </ItemGroup>
+ <ItemGroup>
+ <Page Include="AlermInfoManage.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Compile Include="AlermInfoManage.xaml.cs">
+ <DependentUpon>AlermInfoManage.xaml</DependentUpon>
+ <SubType>Code</SubType>
+ </Compile>
+ <Page Include="AlermInfoManage_Setting.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="AlermInfoManage_Setting.xaml.cs">
+ <DependentUpon>AlermInfoManage_Setting.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Entity\AimSetting.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ </EmbeddedResource>
+ <None Include="packages.config" />
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\HMI.Base\HMI.Base.csproj">
+ <Project>{2a6f9720-a890-4036-9d73-41a0dae28341}</Project>
+ <Name>HMI.Base</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.Core\HMI.Core.csproj">
+ <Project>{3e3bf44a-0b69-45c5-9512-528cb48a7106}</Project>
+ <Name>HMI.Core</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.UI\HMI.UI.csproj">
+ <Project>{f17de6b5-af1d-48c6-94a0-6b763a6546a6}</Project>
+ <Name>HMI.UI</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/HMI.AlermInfoManage/Properties/AssemblyInfo.cs b/HMI.AlermInfoManage/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..7dc26f0
--- /dev/null
+++ b/HMI.AlermInfoManage/Properties/AssemblyInfo.cs
@@ -0,0 +1,54 @@
+锘縰sing System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+using HMI.Core.Annotation;
+
+// 鏈夊叧绋嬪簭闆嗙殑涓�鑸俊鎭敱浠ヤ笅
+// 鎺у埗銆傛洿鏀硅繖浜涚壒鎬у�煎彲淇敼
+// 涓庣▼搴忛泦鍏宠仈鐨勪俊鎭��
+[assembly: AssemblyTitle("HMI.AlermInfoManage")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Organization")]
+[assembly: AssemblyProduct("HMI.AlermInfoManage")]
+[assembly: AssemblyCopyright("Copyright 漏 Organization 2025")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 灏� ComVisible 璁剧疆涓� false 浼氫娇姝ょ▼搴忛泦涓殑绫诲瀷
+//瀵� COM 缁勪欢涓嶅彲瑙併�傚鏋滈渶瑕佷粠 COM 璁块棶姝ょ▼搴忛泦涓殑绫诲瀷
+//璇峰皢姝ょ被鍨嬬殑 ComVisible 鐗规�ц缃负 true銆�
+[assembly: ComVisible(false)]
+
+//鑻ヨ寮�濮嬬敓鎴愬彲鏈湴鍖栫殑搴旂敤绋嬪簭锛岃璁剧疆
+//.csproj 鏂囦欢涓殑 <UICulture>CultureYouAreCodingWith</UICulture>
+//鍦� <PropertyGroup> 涓�備緥濡傦紝濡傛灉浣犱娇鐢ㄧ殑鏄編鍥借嫳璇��
+//浣跨敤鐨勬槸缇庡浗鑻辫锛岃灏� <UICulture> 璁剧疆涓� en-US銆� 鐒跺悗鍙栨秷
+//瀵逛互涓� NeutralResourceLanguage 鐗规�х殑娉ㄩ噴銆� 鏇存柊
+//浠ヤ笅琛屼腑鐨勨�渆n-US鈥濅互鍖归厤椤圭洰鏂囦欢涓殑 UICulture 璁剧疆銆�
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly:ThemeInfo(
+ ResourceDictionaryLocation.None, //涓婚鐗瑰畾璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //鎴栧簲鐢ㄧ▼搴忚祫婧愬瓧鍏镐腑鎵惧埌鏃朵娇鐢�)
+ ResourceDictionaryLocation.SourceAssembly //甯歌璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //銆佸簲鐢ㄧ▼搴忔垨浠讳綍涓婚涓撶敤璧勬簮瀛楀吀涓壘鍒版椂浣跨敤)
+)]
+
+
+// 绋嬪簭闆嗙殑鐗堟湰淇℃伅鐢变笅鍒楀洓涓�肩粍鎴�:
+//
+// 涓荤増鏈�
+// 娆$増鏈�
+// 鐢熸垚鍙�
+// 淇鍙�
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: PluginClassName("HMI.AlermInfoManage.AlermInfoManage")]
diff --git a/HMI.AlermInfoManage/Properties/Resources.Designer.cs b/HMI.AlermInfoManage/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..ea89dfe
--- /dev/null
+++ b/HMI.AlermInfoManage/Properties/Resources.Designer.cs
@@ -0,0 +1,62 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// 姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+// 杩愯鏃剁増鏈�: 4.0.30319.42000
+//
+// 瀵规鏂囦欢鐨勬洿鏀瑰彲鑳藉鑷翠笉姝g‘鐨勮涓猴紝濡傛灉
+// 閲嶆柊鐢熸垚浠g爜锛屽垯鎵�鍋氭洿鏀瑰皢涓㈠け銆�
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.AlermInfoManage.Properties {
+
+
+ /// <summary>
+ /// 寮虹被鍨嬭祫婧愮被锛岀敤浜庢煡鎵炬湰鍦板寲瀛楃涓茬瓑銆�
+ /// </summary>
+ // 姝ょ被鏄敱 StronglyTypedResourceBuilder
+ // 绫婚�氳繃绫讳技浜� ResGen 鎴� Visual Studio 鐨勫伐鍏疯嚜鍔ㄧ敓鎴愮殑銆�
+ // 鑻ヨ娣诲姞鎴栫Щ闄ゆ垚鍛橈紝璇风紪杈� .ResX 鏂囦欢锛岀劧鍚庨噸鏂拌繍琛� ResGen
+ // (浠� /str 浣滀负鍛戒护閫夐」)锛屾垨閲嶆柊鐢熸垚 VS 椤圭洰銆�
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// 杩斿洖姝ょ被浣跨敤鐨勭紦瀛� ResourceManager 瀹炰緥銆�
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if ((resourceMan == null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HMI.AlermInfoManage.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// 閲嶅啓褰撳墠绾跨▼鐨� CurrentUICulture 灞炴�э紝瀵�
+ /// 浣跨敤姝ゅ己绫诲瀷璧勬簮绫荤殑鎵�鏈夎祫婧愭煡鎵炬墽琛岄噸鍐欍��
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/HMI.AlermInfoManage/Properties/Resources.resx b/HMI.AlermInfoManage/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/HMI.AlermInfoManage/Properties/Resources.resx
@@ -0,0 +1,117 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
diff --git a/HMI.AlermInfoManage/Properties/Settings.Designer.cs b/HMI.AlermInfoManage/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..0110c48
--- /dev/null
+++ b/HMI.AlermInfoManage/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.AlermInfoManage.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/HMI.AlermInfoManage/Properties/Settings.settings b/HMI.AlermInfoManage/Properties/Settings.settings
new file mode 100644
index 0000000..033d7a5
--- /dev/null
+++ b/HMI.AlermInfoManage/Properties/Settings.settings
@@ -0,0 +1,7 @@
+锘�<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile>
\ No newline at end of file
diff --git a/HMI.AlermInfoManage/packages.config b/HMI.AlermInfoManage/packages.config
new file mode 100644
index 0000000..63cdc53
--- /dev/null
+++ b/HMI.AlermInfoManage/packages.config
@@ -0,0 +1,6 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="log4net" version="3.0.3" targetFramework="net472" />
+ <package id="Panuon.WPF" version="1.1.2.2" targetFramework="net472" />
+ <package id="Panuon.WPF.UI" version="1.2.4.9" targetFramework="net472" />
+</packages>
\ No newline at end of file
diff --git a/HMI.Base/HMI.Base.csproj b/HMI.Base/HMI.Base.csproj
new file mode 100644
index 0000000..423b990
--- /dev/null
+++ b/HMI.Base/HMI.Base.csproj
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{2A6F9720-A890-4036-9D73-41A0DAE28341}</ProjectGuid>
+ <OutputType>library</OutputType>
+ <RootNamespace>HMI.Base</RootNamespace>
+ <AssemblyName>HMI.Base</AssemblyName>
+ <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <WarningLevel>4</WarningLevel>
+ <Deterministic>true</Deterministic>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="log4net, Version=3.0.3.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\log4net.3.0.3\lib\net462\log4net.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Configuration" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Web" />
+ <Reference Include="System.Xml" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Xaml">
+ <RequiredTargetFramework>4.0</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="WindowsBase" />
+ <Reference Include="PresentationCore" />
+ <Reference Include="PresentationFramework" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="PluginControl.cs" />
+ <Compile Include="PluginInfo.cs" />
+ <Compile Include="PluginLoader.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ </EmbeddedResource>
+ <None Include="packages.config" />
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\HMI.Core\HMI.Core.csproj">
+ <Project>{3e3bf44a-0b69-45c5-9512-528cb48a7106}</Project>
+ <Name>HMI.Core</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/HMI.Base/PluginControl.cs b/HMI.Base/PluginControl.cs
new file mode 100644
index 0000000..b8b307b
--- /dev/null
+++ b/HMI.Base/PluginControl.cs
@@ -0,0 +1,68 @@
+锘縰sing System.ComponentModel;
+using System.Runtime.CompilerServices;
+using System.Windows.Controls;
+using HMI.Core.Api;
+using log4net;
+
+namespace HMI.Base
+{
+ public class PluginControl : UserControl, IPlugin, INotifyPropertyChanged
+ {
+ #region ...
+ public event PropertyChangedEventHandler PropertyChanged;
+
+ protected void Set([CallerMemberName] string name = null)
+ {
+
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
+ }
+
+ protected void Set<T>(ref T old, T @new, [CallerMemberName] string propertyName = null)
+ {
+ old = @new;
+ if (propertyName != null)
+ {
+ Set(propertyName);
+ }
+ }
+ #endregion
+
+ protected ILog log;
+ protected string BaseFolder;
+
+ public virtual object Active()
+ {
+ return null;
+ }
+
+ public virtual object DeActive()
+ {
+ return null;
+ }
+
+ public virtual object Init()
+ {
+ return null;
+ }
+
+ public virtual void OnTabChange(object sender, object args)
+ {
+
+ }
+
+ public virtual void SetBaseFolder(string folder)
+ {
+ BaseFolder = folder;
+ }
+
+ public virtual void SetLogger(ILog logger)
+ {
+ log = logger;
+ }
+
+ public virtual void InitFinish()
+ {
+
+ }
+ }
+}
diff --git a/HMI.Base/PluginInfo.cs b/HMI.Base/PluginInfo.cs
new file mode 100644
index 0000000..edc4a8b
--- /dev/null
+++ b/HMI.Base/PluginInfo.cs
@@ -0,0 +1,25 @@
+锘縰sing System.Collections.ObjectModel;
+using System.Windows.Media.Imaging;
+
+namespace HMI.Base
+{
+ public class PluginInfo
+ {
+ public PluginInfo()
+ {
+
+ }
+ public bool IsFont { get; set; }
+ public string Code { get; set; }
+ public string Name { get; set; }
+ public string ParentCode { get; set; }
+ public string DllPath { get; set; }
+ public string ClassName { get; set; }
+ public ObservableCollection<PluginInfo> Children { get; set; } = new ObservableCollection<PluginInfo>();
+ public BitmapImage Icon { get; set; }
+
+ public object Content;
+
+ public object SettingControl;
+ }
+}
diff --git a/HMI.Base/PluginLoader.cs b/HMI.Base/PluginLoader.cs
new file mode 100644
index 0000000..b3a4952
--- /dev/null
+++ b/HMI.Base/PluginLoader.cs
@@ -0,0 +1,132 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Data;
+using System.IO;
+using System.Reflection;
+using System.Windows.Media.Imaging;
+using HMI.Core.Api;
+using HMI.Core.Util;
+using log4net;
+
+namespace HMI.Base
+{
+ public class PluginLoader
+ {
+ private static string PluginFolder = PathHelper.PluginFolder();
+
+ public bool Completed { get; private set; } = false;
+ public SqliteHelper sqliteHelper;
+ public ObservableCollection<PluginInfo> Menus { get; private set; }
+ public ObservableCollection<PluginInfo> Plugins { get; private set; }
+
+ public static PluginLoader Instance { get; private set; }
+
+ public event EventHandler<string> LoadMessageAppend;
+
+ private PluginLoader()
+ {
+ sqliteHelper = new SqliteHelper(PathHelper.DatabasePath);
+ }
+
+ public static PluginLoader GetLoader()
+ {
+ if (Instance == null)
+ {
+ Instance = new PluginLoader();
+ }
+ return Instance;
+ }
+
+ public void LoadMenuAndPlugin()
+ {
+ if (Menus == null)
+ {
+ Plugins = new ObservableCollection<PluginInfo>();
+ Menus = LoadTreeMenu();
+ }
+ }
+
+ private void LoadChildrenMenu(PluginInfo menu)
+ {
+ LoadMessageAppend?.Invoke(this, $"姝e湪鍔犺浇{menu.Name}鑿滃崟...");
+ try
+ {
+ if (!string.IsNullOrEmpty(menu.DllPath))
+ {
+ string dllPath = Path.Combine(PluginFolder, menu.DllPath);
+ Assembly ass = Assembly.LoadFrom(dllPath);
+ Type ClassType = ass.GetType(menu.ClassName);
+ object Instance = Activator.CreateInstance(ClassType);
+ menu.Content = Instance;
+ if (Instance is IPlugin plugin)
+ {
+ plugin.SetLogger(LogManager.GetLogger(menu.Code));
+ string configFolder = Path.Combine(PathHelper.ConfigFolder, menu.Code);
+ if (!Directory.Exists(configFolder))
+ {
+ Directory.CreateDirectory(configFolder);
+ }
+ plugin.SetBaseFolder(configFolder);
+ plugin.InitFinish();
+ }
+ Type SettingType = ass.GetType($"{menu.ClassName}_Setting");
+ if (SettingType != null)
+ {
+ object SettingInstance = Activator.CreateInstance(SettingType);
+ menu.SettingControl = SettingInstance;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ LoadMessageAppend?.Invoke(this, $"{ex.Message} {ex.StackTrace}");
+ }
+ }
+
+ public ObservableCollection<PluginInfo> LoadTreeMenu()
+ {
+ ObservableCollection<PluginInfo> data = new ObservableCollection<PluginInfo>();
+ Dictionary<string, PluginInfo> cache = new Dictionary<string, PluginInfo>();
+ try
+ {
+ LoadMessageAppend?.Invoke(this, "寮�濮嬪姞杞借彍鍗�...");
+ DataTable dt = sqliteHelper.GetDataTable(@"SELECT * FROM menu ORDER BY level,id;");
+ if (dt != null)
+ {
+ LoadMessageAppend?.Invoke(this, $"鍏辨湁{dt.Rows.Count}鏉¤彍鍗曞緟鍔犺浇...");
+ foreach (DataRow dr in dt.Rows)
+ {
+ string path = Path.Combine(PathHelper.IconFolder, dr["iconPath"].ToString());
+ var menu = new PluginInfo
+ {
+ Code = dr["code"].ToString(),
+ Name = dr["name"].ToString(),
+ ParentCode = dr["parentCode"].ToString(),
+ DllPath = dr["dllPath"].ToString(),
+ ClassName = dr["className"].ToString(),
+ Icon = new BitmapImage(new Uri(Path.Combine(PathHelper.IconFolder, dr["iconPath"].ToString())))
+ };
+ cache[menu.Code] = menu;
+ if (!cache.ContainsKey(menu.ParentCode))
+ {
+ data.Add(menu);
+ }
+ else
+ {
+ cache[menu.ParentCode].Children.Add(menu);
+ }
+ Plugins.Add(menu);
+ LoadChildrenMenu(menu);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ LoadMessageAppend?.Invoke(this, ex.Message);
+ }
+ return data;
+ }
+
+ }
+}
diff --git a/HMI.Base/Properties/AssemblyInfo.cs b/HMI.Base/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..cfa173d
--- /dev/null
+++ b/HMI.Base/Properties/AssemblyInfo.cs
@@ -0,0 +1,52 @@
+锘縰sing System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// 鏈夊叧绋嬪簭闆嗙殑涓�鑸俊鎭敱浠ヤ笅
+// 鎺у埗銆傛洿鏀硅繖浜涚壒鎬у�煎彲淇敼
+// 涓庣▼搴忛泦鍏宠仈鐨勪俊鎭��
+[assembly: AssemblyTitle("HMI.Base")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Organization")]
+[assembly: AssemblyProduct("HMI.Base")]
+[assembly: AssemblyCopyright("Copyright 漏 Organization 2025")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 灏� ComVisible 璁剧疆涓� false 浼氫娇姝ょ▼搴忛泦涓殑绫诲瀷
+//瀵� COM 缁勪欢涓嶅彲瑙併�傚鏋滈渶瑕佷粠 COM 璁块棶姝ょ▼搴忛泦涓殑绫诲瀷
+//璇峰皢姝ょ被鍨嬬殑 ComVisible 鐗规�ц缃负 true銆�
+[assembly: ComVisible(false)]
+
+//鑻ヨ寮�濮嬬敓鎴愬彲鏈湴鍖栫殑搴旂敤绋嬪簭锛岃璁剧疆
+//.csproj 鏂囦欢涓殑 <UICulture>CultureYouAreCodingWith</UICulture>
+//鍦� <PropertyGroup> 涓�備緥濡傦紝濡傛灉浣犱娇鐢ㄧ殑鏄編鍥借嫳璇��
+//浣跨敤鐨勬槸缇庡浗鑻辫锛岃灏� <UICulture> 璁剧疆涓� en-US銆� 鐒跺悗鍙栨秷
+//瀵逛互涓� NeutralResourceLanguage 鐗规�х殑娉ㄩ噴銆� 鏇存柊
+//浠ヤ笅琛屼腑鐨勨�渆n-US鈥濅互鍖归厤椤圭洰鏂囦欢涓殑 UICulture 璁剧疆銆�
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly:ThemeInfo(
+ ResourceDictionaryLocation.None, //涓婚鐗瑰畾璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //鎴栧簲鐢ㄧ▼搴忚祫婧愬瓧鍏镐腑鎵惧埌鏃朵娇鐢�)
+ ResourceDictionaryLocation.SourceAssembly //甯歌璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //銆佸簲鐢ㄧ▼搴忔垨浠讳綍涓婚涓撶敤璧勬簮瀛楀吀涓壘鍒版椂浣跨敤)
+)]
+
+
+// 绋嬪簭闆嗙殑鐗堟湰淇℃伅鐢变笅鍒楀洓涓�肩粍鎴�:
+//
+// 涓荤増鏈�
+// 娆$増鏈�
+// 鐢熸垚鍙�
+// 淇鍙�
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/HMI.Base/Properties/Resources.Designer.cs b/HMI.Base/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..d5ce4eb
--- /dev/null
+++ b/HMI.Base/Properties/Resources.Designer.cs
@@ -0,0 +1,62 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// 姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+// 杩愯鏃剁増鏈�: 4.0.30319.42000
+//
+// 瀵规鏂囦欢鐨勬洿鏀瑰彲鑳藉鑷翠笉姝g‘鐨勮涓猴紝濡傛灉
+// 閲嶆柊鐢熸垚浠g爜锛屽垯鎵�鍋氭洿鏀瑰皢涓㈠け銆�
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.Base.Properties {
+
+
+ /// <summary>
+ /// 寮虹被鍨嬭祫婧愮被锛岀敤浜庢煡鎵炬湰鍦板寲瀛楃涓茬瓑銆�
+ /// </summary>
+ // 姝ょ被鏄敱 StronglyTypedResourceBuilder
+ // 绫婚�氳繃绫讳技浜� ResGen 鎴� Visual Studio 鐨勫伐鍏疯嚜鍔ㄧ敓鎴愮殑銆�
+ // 鑻ヨ娣诲姞鎴栫Щ闄ゆ垚鍛橈紝璇风紪杈� .ResX 鏂囦欢锛岀劧鍚庨噸鏂拌繍琛� ResGen
+ // (浠� /str 浣滀负鍛戒护閫夐」)锛屾垨閲嶆柊鐢熸垚 VS 椤圭洰銆�
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// 杩斿洖姝ょ被浣跨敤鐨勭紦瀛� ResourceManager 瀹炰緥銆�
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if ((resourceMan == null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HMI.Base.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// 閲嶅啓褰撳墠绾跨▼鐨� CurrentUICulture 灞炴�э紝瀵�
+ /// 浣跨敤姝ゅ己绫诲瀷璧勬簮绫荤殑鎵�鏈夎祫婧愭煡鎵炬墽琛岄噸鍐欍��
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/HMI.Base/Properties/Resources.resx b/HMI.Base/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/HMI.Base/Properties/Resources.resx
@@ -0,0 +1,117 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
diff --git a/HMI.Base/Properties/Settings.Designer.cs b/HMI.Base/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..d903d88
--- /dev/null
+++ b/HMI.Base/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.Base.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/HMI.Base/Properties/Settings.settings b/HMI.Base/Properties/Settings.settings
new file mode 100644
index 0000000..033d7a5
--- /dev/null
+++ b/HMI.Base/Properties/Settings.settings
@@ -0,0 +1,7 @@
+锘�<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile>
\ No newline at end of file
diff --git a/HMI.Base/packages.config b/HMI.Base/packages.config
new file mode 100644
index 0000000..4bea106
--- /dev/null
+++ b/HMI.Base/packages.config
@@ -0,0 +1,4 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="log4net" version="3.0.3" targetFramework="net472" />
+</packages>
\ No newline at end of file
diff --git a/HMI.Core/Annotation/InitAttribute.cs b/HMI.Core/Annotation/InitAttribute.cs
new file mode 100644
index 0000000..a6d1767
--- /dev/null
+++ b/HMI.Core/Annotation/InitAttribute.cs
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Runtime.InteropServices;
+
+namespace HMI.Core.Annotation
+{
+
+ [AttributeUsage(AttributeTargets.Assembly, Inherited = false)]
+ [ComVisible(true)]
+ public class PluginClassNameAttribute : Attribute
+ {
+ public string ClassName { get; private set; }
+
+ public PluginClassNameAttribute(string ClassName)
+ {
+ this.ClassName = ClassName;
+ }
+ }
+}
diff --git a/HMI.Core/Api/IConfigRefresh.cs b/HMI.Core/Api/IConfigRefresh.cs
new file mode 100644
index 0000000..6a799be
--- /dev/null
+++ b/HMI.Core/Api/IConfigRefresh.cs
@@ -0,0 +1,7 @@
+锘縩amespace HMI.Core.Api
+{
+ public interface IConfigRefresh
+ {
+ void OnConfigRefrsh(object sender, object setting);
+ }
+}
diff --git a/HMI.Core/Api/IFolderOwner.cs b/HMI.Core/Api/IFolderOwner.cs
new file mode 100644
index 0000000..3079c4d
--- /dev/null
+++ b/HMI.Core/Api/IFolderOwner.cs
@@ -0,0 +1,13 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HMI.Core.Api
+{
+ public interface IFolderOwner
+ {
+ void SetBaseFolder(string folder);
+ }
+}
diff --git a/HMI.Core/Api/IPlugin.cs b/HMI.Core/Api/IPlugin.cs
new file mode 100644
index 0000000..c4cc74d
--- /dev/null
+++ b/HMI.Core/Api/IPlugin.cs
@@ -0,0 +1,34 @@
+锘縰sing log4net;
+
+namespace HMI.Core.Api
+{
+ public interface IPlugin : IFolderOwner
+ {
+ /// <summary>
+ /// 鍒濆鍖�
+ /// </summary>
+ /// <returns></returns>
+ object Init();
+
+ void InitFinish();
+ /// <summary>
+ /// 鎻掍欢闈㈡澘琚縺娲绘椂鐨勬搷浣�
+ /// </summary>
+ /// <returns></returns>
+ object Active();
+ /// <summary>
+ /// 澶辨椿鏃剁殑鎿嶄綔
+ /// </summary>
+ /// <returns></returns>
+ object DeActive();
+
+ /// <summary>
+ /// 闈㈡澘鍒囨崲浜嬩欢
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="args"></param>
+ void OnTabChange(object sender, object args);
+
+ void SetLogger(ILog logger);
+ }
+}
diff --git a/VisionBuilder.Core/Api/IProgram.cs b/HMI.Core/Api/IProgram.cs
similarity index 66%
rename from VisionBuilder.Core/Api/IProgram.cs
rename to HMI.Core/Api/IProgram.cs
index 5d7a4e3..6a04c6a 100644
--- a/VisionBuilder.Core/Api/IProgram.cs
+++ b/HMI.Core/Api/IProgram.cs
@@ -1,4 +1,4 @@
-锘縩amespace VisionBuilder.Core.Api
+锘縩amespace HMI.Core.Api
{
public interface IProgram
{
diff --git a/VisionBuilder.Core/Api/ISequnce.cs b/HMI.Core/Api/ISequnce.cs
similarity index 90%
rename from VisionBuilder.Core/Api/ISequnce.cs
rename to HMI.Core/Api/ISequnce.cs
index 9cdf060..be92417 100644
--- a/VisionBuilder.Core/Api/ISequnce.cs
+++ b/HMI.Core/Api/ISequnce.cs
@@ -1,6 +1,6 @@
锘縰sing System.Collections.Generic;
-namespace VisionBuilder.Core.Api
+namespace HMI.Core.Api
{
public interface ISequence
{
diff --git a/VisionBuilder.Core/Api/IStep.cs b/HMI.Core/Api/IStep.cs
similarity index 64%
rename from VisionBuilder.Core/Api/IStep.cs
rename to HMI.Core/Api/IStep.cs
index bc8385b..6470b1b 100644
--- a/VisionBuilder.Core/Api/IStep.cs
+++ b/HMI.Core/Api/IStep.cs
@@ -1,4 +1,4 @@
-锘縩amespace VisionBuilder.Core.Api
+锘縩amespace HMI.Core.Api
{
public interface IStep
{
diff --git a/VisionBuilder.Core/Api/IStepRunner.cs b/HMI.Core/Api/IStepRunner.cs
similarity index 68%
rename from VisionBuilder.Core/Api/IStepRunner.cs
rename to HMI.Core/Api/IStepRunner.cs
index 22ceb11..82a85b2 100644
--- a/VisionBuilder.Core/Api/IStepRunner.cs
+++ b/HMI.Core/Api/IStepRunner.cs
@@ -1,7 +1,7 @@
锘縰sing System.Collections.Generic;
-using VisionBuilder.Core.Entity;
+using HMI.Core.Entity;
-namespace VisionBuilder.Core.Api
+namespace HMI.Core.Api
{
public interface IStepRunner
{
diff --git a/HMI.Core/Entity/NotifyBase.cs b/HMI.Core/Entity/NotifyBase.cs
new file mode 100644
index 0000000..ae2c761
--- /dev/null
+++ b/HMI.Core/Entity/NotifyBase.cs
@@ -0,0 +1,102 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Runtime.CompilerServices;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Input;
+
+namespace HMI.Core.Entity
+{
+ public class NotifyBase : INotifyPropertyChanged
+ {
+ #region ...
+ public virtual event PropertyChangedEventHandler PropertyChanged;
+
+ protected virtual void Set([CallerMemberName] string name = null)
+ {
+
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
+ }
+
+ protected void Set<T>(ref T old, T @new, [CallerMemberName] string propertyName = null)
+ {
+ old = @new;
+ if (propertyName != null)
+ {
+ Set(propertyName);
+ }
+ }
+ #endregion
+
+
+ }
+
+ public class RelayCommand<T> : ICommand
+ {
+ /// <summary>
+ /// 鍛戒护鑳藉惁鎵ц
+ /// </summary>
+ readonly Func<bool> _canExecute;
+ /// <summary>
+ /// 鍛戒护鎵ц鐨勬柟娉�
+ /// </summary>
+ readonly Action<T> _execute;
+
+ /// <summary>
+ /// 鍛戒护鐨勬瀯閫犲嚱鏁�
+ /// </summary>
+ /// <param name="action">鍛戒护闇�鎵ц鐨勬柟娉�</param>
+ /// <param name="canExecute">鍛戒护鏄惁鍙互鎵ц鐨勬柟娉�</param>
+ public RelayCommand(Action<T> action, Func<bool> canExecute)
+ {
+ _execute = action;
+ _canExecute = canExecute;
+ }
+
+ public RelayCommand(Action<T> action)
+ {
+ _execute = action;
+ }
+
+ /// <summary>
+ /// 鍒ゆ柇鍛戒护鏄惁鍙互鎵ц
+ /// </summary>
+ /// <param name="parameter"></param>
+ /// <returns></returns>
+ public bool CanExecute(Object parameter)
+ {
+ if (_canExecute == null)
+ return true;
+ return _canExecute();
+ }
+
+ /// <summary>
+ /// 鎵ц鍛戒护
+ /// </summary>
+ /// <param name="parameter"></param>
+ public void Execute(Object parameter)
+ {
+ _execute((T)parameter);
+ }
+
+ /// <summary>
+ /// 浜嬩欢杩藉姞銆佺Щ闄�
+ /// </summary>
+ public event EventHandler CanExecuteChanged
+ {
+ add
+ {
+ if (_canExecute != null)
+ CommandManager.RequerySuggested += value;
+ }
+ remove
+ {
+ if (_canExecute != null)
+ CommandManager.RequerySuggested -= value;
+ }
+ }
+
+ }
+}
diff --git a/VisionBuilder.Core/Entity/Param.cs b/HMI.Core/Entity/Param.cs
similarity index 89%
rename from VisionBuilder.Core/Entity/Param.cs
rename to HMI.Core/Entity/Param.cs
index 58b60f8..69c0449 100644
--- a/VisionBuilder.Core/Entity/Param.cs
+++ b/HMI.Core/Entity/Param.cs
@@ -1,4 +1,4 @@
-锘縩amespace VisionBuilder.Core.Entity
+锘縩amespace HMI.Core.Entity
{
public class Param
{
diff --git a/WPFProject/Events/TabChange.cs b/HMI.Core/Event/TabChange.cs
similarity index 87%
rename from WPFProject/Events/TabChange.cs
rename to HMI.Core/Event/TabChange.cs
index 0279f26..4b5fe4e 100644
--- a/WPFProject/Events/TabChange.cs
+++ b/HMI.Core/Event/TabChange.cs
@@ -5,7 +5,7 @@
using System.Threading.Tasks;
using System.Windows;
-namespace WPFProject.Events
+namespace HMI.Core.Api
{
public class TabChangeEventArgs
{
diff --git a/HMI.Core/Exceptions/FormValidateException.cs b/HMI.Core/Exceptions/FormValidateException.cs
new file mode 100644
index 0000000..765b080
--- /dev/null
+++ b/HMI.Core/Exceptions/FormValidateException.cs
@@ -0,0 +1,34 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HMI.Core.Exceptions
+{
+ public class FormValidateException : Exception
+ {
+ public readonly List<FormGroupValidateResult> Result;
+ public bool Success
+ {
+ get => Result == null || Result.Count == 0;
+ }
+
+ public FormValidateException()
+ {
+ Result = new List<FormGroupValidateResult>();
+ }
+ }
+
+ public class FormGroupValidateResult
+ {
+ public readonly string Message;
+ public readonly object Sender;
+
+ public FormGroupValidateResult(string message, object sender)
+ {
+ Message = message;
+ Sender = sender;
+ }
+ }
+}
diff --git a/HMI.Core/HMI.Core.csproj b/HMI.Core/HMI.Core.csproj
new file mode 100644
index 0000000..c170457
--- /dev/null
+++ b/HMI.Core/HMI.Core.csproj
@@ -0,0 +1,108 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{3E3BF44A-0B69-45C5-9512-528CB48A7106}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>HMI.Core</RootNamespace>
+ <AssemblyName>HMI.Core</AssemblyName>
+ <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <Deterministic>true</Deterministic>
+ <NuGetPackageImportStamp>
+ </NuGetPackageImportStamp>
+ <TargetFrameworkProfile />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>bin\x64\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <DebugType>full</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ <OutputPath>bin\x64\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <Optimize>true</Optimize>
+ <DebugType>pdbonly</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="log4net, Version=3.0.3.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\log4net.3.0.3\lib\net462\log4net.dll</HintPath>
+ </Reference>
+ <Reference Include="PresentationCore" />
+ <Reference Include="System" />
+ <Reference Include="System.ComponentModel.DataAnnotations" />
+ <Reference Include="System.Configuration" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Data.SQLite">
+ <HintPath>..\Libs\System.Data.SQLite.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Data.SQLite.EF6">
+ <HintPath>..\Libs\System.Data.SQLite.EF6.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Data.SQLite.Linq">
+ <HintPath>..\Libs\System.Data.SQLite.Linq.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Numerics" />
+ <Reference Include="System.Web" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Api\IConfigRefresh.cs" />
+ <Compile Include="Api\IFolderOwner.cs" />
+ <Compile Include="Api\IPlugin.cs" />
+ <Compile Include="Api\IProgram.cs" />
+ <Compile Include="Api\ISequnce.cs" />
+ <Compile Include="Api\IStep.cs" />
+ <Compile Include="Api\IStepRunner.cs" />
+ <Compile Include="Annotation\InitAttribute.cs" />
+ <Compile Include="Entity\NotifyBase.cs" />
+ <Compile Include="Entity\Param.cs" />
+ <Compile Include="Event\TabChange.cs" />
+ <Compile Include="Exceptions\FormValidateException.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="Setting\SystemSetting.cs" />
+ <Compile Include="Util\BeanUtil.cs" />
+ <Compile Include="Util\DllHelper.cs" />
+ <Compile Include="Util\PathHelper.cs" />
+ <Compile Include="Util\SqliteHelper.cs" />
+ <Compile Include="Util\UtilContainer.cs" />
+ <Compile Include="Util\XmlHelper.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="app.config" />
+ <None Include="packages.config" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/VisionBuilder.Core/Properties/AssemblyInfo.cs b/HMI.Core/Properties/AssemblyInfo.cs
similarity index 92%
rename from VisionBuilder.Core/Properties/AssemblyInfo.cs
rename to HMI.Core/Properties/AssemblyInfo.cs
index 921acd0..fa4d953 100644
--- a/VisionBuilder.Core/Properties/AssemblyInfo.cs
+++ b/HMI.Core/Properties/AssemblyInfo.cs
@@ -5,11 +5,11 @@
// 鏈夊叧绋嬪簭闆嗙殑涓�鑸俊鎭敱浠ヤ笅
// 鎺у埗銆傛洿鏀硅繖浜涚壒鎬у�煎彲淇敼
// 涓庣▼搴忛泦鍏宠仈鐨勪俊鎭��
-[assembly: AssemblyTitle("VisionBuilder.Core")]
+[assembly: AssemblyTitle("HMI.Core")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("HP Inc.")]
-[assembly: AssemblyProduct("VisionBuilder.Core")]
+[assembly: AssemblyProduct("HMI.Core")]
[assembly: AssemblyCopyright("Copyright 漏 HP Inc. 2024")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/HMI.Core/Setting/SystemSetting.cs b/HMI.Core/Setting/SystemSetting.cs
new file mode 100644
index 0000000..774d75b
--- /dev/null
+++ b/HMI.Core/Setting/SystemSetting.cs
@@ -0,0 +1,78 @@
+锘縰sing System;
+using System.IO;
+using HMI.Core.Entity;
+using HMI.Core.Util;
+
+namespace HMI.Core.Setting
+{
+ public class SystemSetting
+ {
+ public static SystemSetting Instance { get; private set; }
+ public static event EventHandler<SystemSetting> SystemSettingChanged;
+
+ static SystemSetting()
+ {
+ LoadFromXml();
+ }
+
+ private SystemSetting()
+ {
+
+ }
+
+ public string LogoPath { get; private set; }
+ public string WindowTitle { get; private set; }
+
+ private static void LoadFromXml()
+ {
+ if (Instance != null) return;
+ string XmlFilePath = PathHelper.ConfigFolder + "\\SystemConfig.xml";
+ if (!File.Exists(XmlFilePath))
+ {
+ Instance = new SystemSetting();
+ }
+ else
+ {
+ SystemSettingModel model = XmlHelper.DeserializeFromXml<SystemSettingModel>(XmlFilePath);
+ SystemSetting setting = new SystemSetting();
+ BeanUtil.Copy(model, setting);
+ Instance = setting;
+ }
+ }
+
+ public static void ReLoad()
+ {
+ string XmlFilePath = PathHelper.ConfigFolder + "\\SystemConfig.xml";
+ if (!File.Exists(XmlFilePath))
+ {
+ Instance = new SystemSetting();
+ }
+ else
+ {
+ SystemSettingModel model = XmlHelper.DeserializeFromXml<SystemSettingModel>(XmlFilePath);
+ SystemSetting setting = new SystemSetting();
+ BeanUtil.Copy(model, setting);
+ Instance = setting;
+ }
+ SystemSettingChanged?.Invoke(null, Instance);
+ }
+ }
+
+
+ public class SystemSettingModel : NotifyBase
+ {
+ private string logoPath;
+ public string LogoPath
+ {
+ get => logoPath;
+ set { Set(ref logoPath, value); }
+ }
+
+ private string windowTitle;
+ public string WindowTitle
+ {
+ get => windowTitle;
+ set { Set(ref windowTitle, value); }
+ }
+ }
+}
diff --git a/HMI.Core/Util/BeanUtil.cs b/HMI.Core/Util/BeanUtil.cs
new file mode 100644
index 0000000..1ac90f8
--- /dev/null
+++ b/HMI.Core/Util/BeanUtil.cs
@@ -0,0 +1,24 @@
+锘縰sing System;
+using System.Reflection;
+using System.Xml;
+
+namespace HMI.Core.Util
+{
+ public class BeanUtil
+ {
+ public static void Copy<S, T>(S source, T target)
+ {
+ Type sourceType = typeof(S);
+ Type targetType = typeof(T);
+ PropertyInfo[] fieldArray = targetType.GetProperties(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
+ foreach (PropertyInfo field in fieldArray)
+ {
+ string fileName = field.Name;
+ PropertyInfo sourceField = sourceType.GetProperty(fileName);
+ if (sourceField == null) continue;
+ field.SetValue(target, sourceField.GetValue(source));
+ }
+
+ }
+ }
+}
diff --git a/HMI.Core/Util/DllHelper.cs b/HMI.Core/Util/DllHelper.cs
new file mode 100644
index 0000000..6f01c9b
--- /dev/null
+++ b/HMI.Core/Util/DllHelper.cs
@@ -0,0 +1,197 @@
+锘縰sing System;
+using System.CodeDom.Compiler;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+using Microsoft.CSharp;
+
+namespace HMI.Core.Util
+{
+ /// <summary>
+ /// DLL鏂囦欢鎿嶄綔绫�
+ /// </summary>
+ public class DllHelper
+ {
+ /// <summary>
+ /// 鑾峰彇褰撳墠DLL鎵�澶勭殑璺緞
+ /// </summary>
+ /// <returns>Dll璺緞</returns>
+ public static string GetAssemblyPath()
+ {
+ string CodeBase = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
+ CodeBase = CodeBase.Substring(8, CodeBase.Length - 8); // 8鏄� file:// 鐨勯暱搴�
+ string[] arrSection = CodeBase.Split(new char[] { '/' });
+ string FolderPath = string.Empty;
+ for (int i = 0; i < arrSection.Length - 1; i++)
+ {
+ FolderPath += arrSection[i] + "\\";
+ }
+
+ return FolderPath;
+ }
+
+ /// <summary>
+ /// 瀵煎叆DLL(瑕佸鍏ョ殑DLL瑕佹斁鍦ㄧ▼搴忕殑鏍圭洰褰曚腑锛�
+ /// </summary>
+ /// <param name="DLLName">瑕佸鍏ョ殑DLL鍚嶇О</param>
+ public static void ImportDLL(string DllPath)
+ {
+ try
+ {
+ //string DllPath = GetAssemblyPath() + DLLName;
+ Assembly[] assemblyArray = AppDomain.CurrentDomain.GetAssemblies();
+ foreach (Assembly dll in assemblyArray)
+ {
+ if (dll.Location == DllPath)
+ {
+ return;
+ }
+ }
+
+ Assembly.LoadFrom(DllPath);
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ }
+
+ /// <summary>
+ /// 瀵煎叆DLL
+ /// </summary>
+ /// <param name="DllPath">瑕佸鍏ョ殑DLL鏂囦欢璺緞</param>
+ public static void ImportDLL2(string DllPath)
+ {
+ try
+ {
+ Assembly[] assemblyArray = AppDomain.CurrentDomain.GetAssemblies();
+ foreach (Assembly dll in assemblyArray)
+ {
+ if (!dll.FullName.Contains("Microsoft.GeneratedCode"))
+ {
+ if (dll.Location == DllPath)
+ {
+ return;
+ }
+ }
+ }
+
+ Assembly.LoadFile(DllPath);
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ }
+
+ /// <summary>
+ /// 鐢熸垚鏃犲弬鏁扮殑鏋勯�犲嚱鏁扮殑瀹炰緥
+ /// </summary>
+ /// <param name="NameSpaceStr">鍛藉悕绌洪棿</param>
+ /// <param name="ClassStr">鍖呭惈鍛藉悕鎺т欢鐨勭被鍚�</param>
+ /// <returns>鐢熸垚鐨勫搴旂被鐨勫疄渚�</returns>
+ public static object CreateInstance(string NameSpaceStr, string ClassStr)
+ {
+ try
+ {
+ Type DllType = Assembly.Load(NameSpaceStr).GetType(ClassStr); // 鐢熸垚绫诲瀷
+ object Instance = Activator.CreateInstance(DllType); // 鐢熸垚瀹炰緥
+ return Instance;
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ }
+
+ /// <summary>
+ /// 鍔ㄦ�佺紪璇戝拰鎵ц璇彞
+ /// </summary>
+ /// <param name="Expression">瑕佺紪璇戞墽琛岀殑璇彞</param>
+ /// <returns>鎵ц鐨勭粨鏋�</returns>
+ public static object GetValue(string Expression)
+ {
+ object Rtn = null;
+ // 1.CSharpCodePrivoder
+ CSharpCodeProvider objCSharpCodePrivoder = new CSharpCodeProvider();
+ // 2.ICodeComplier
+ ICodeCompiler objICodeCompiler = objCSharpCodePrivoder.CreateCompiler();
+ // 3.CompilerParameters
+ CompilerParameters objCompilerParameters = new CompilerParameters();
+ objCompilerParameters.ReferencedAssemblies.Add("System.dll");
+ objCompilerParameters.GenerateExecutable = false;
+ objCompilerParameters.GenerateInMemory = true;
+ // 4.CompilerResults
+ CompilerResults cr = objICodeCompiler.CompileAssemblyFromSource(objCompilerParameters, GenerateCode(Expression));
+ if (cr.Errors.HasErrors)
+ {
+ throw new Exception("缂栬瘧閿欒:" + cr.Errors[0].ErrorText);
+ }
+ else
+ {
+ // 閫氳繃鍙嶅皠锛岃皟鐢℉elloWorld鐨勫疄渚�
+ Assembly objAssembly = cr.CompiledAssembly;
+ object Obj = objAssembly.CreateInstance("CommonLibs.Eval");
+ MethodInfo objMI = Obj.GetType().GetMethod("GetValue");
+ Rtn = objMI.Invoke(Obj, null);
+ }
+ return Rtn;
+ }
+
+ /// <summary>
+ /// 鐢熸垚缂栬瘧璇彞
+ /// </summary>
+ /// <param name="Expression">闇�瑕佺紪璇戠殑璇彞</param>
+ /// <returns>缂栬瘧鎵ц鍚庣殑缁撴灉</returns>
+ private static string GenerateCode(string Expression)
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.Append("using System;");
+ sb.Append(Environment.NewLine);
+ sb.Append("namespace CommonLibs");
+ sb.Append(Environment.NewLine);
+ sb.Append("{");
+ sb.Append(Environment.NewLine);
+ sb.Append(" public class Eval");
+ sb.Append(Environment.NewLine);
+ sb.Append(" {");
+ sb.Append(Environment.NewLine);
+ sb.Append(" public object GetValue()");
+ sb.Append(Environment.NewLine);
+ sb.Append(" {");
+ sb.Append(Environment.NewLine);
+ sb.Append(" return " + Expression + " ;");
+ sb.Append(Environment.NewLine);
+ sb.Append(" }");
+ sb.Append(Environment.NewLine);
+ sb.Append(" }");
+ sb.Append(Environment.NewLine);
+ sb.Append("}");
+ string code = sb.ToString();
+ return code;
+ }
+
+ /// <summary>
+ ///
+ /// </summary>
+ /// <typeparam name="T"></typeparam>
+ /// <param name="obj"></param>
+ /// <returns></returns>
+ public static T DeepCopy<T>(T obj)
+ {
+ //濡傛灉鏄瓧绗︿覆鎴栧�肩被鍨嬪垯鐩存帴杩斿洖
+ if (obj is string || obj.GetType().IsValueType) return obj;
+
+ object retval = Activator.CreateInstance(obj.GetType());
+ FieldInfo[] fields = obj.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static);
+ foreach (FieldInfo field in fields)
+ {
+ try { field.SetValue(retval, DeepCopy(field.GetValue(obj))); }
+ catch { }
+ }
+ return (T)retval;
+ }
+ }
+}
diff --git a/HMI.Core/Util/PathHelper.cs b/HMI.Core/Util/PathHelper.cs
new file mode 100644
index 0000000..be757b0
--- /dev/null
+++ b/HMI.Core/Util/PathHelper.cs
@@ -0,0 +1,121 @@
+锘縰sing System;
+using System.IO;
+
+namespace HMI.Core.Util
+{
+ public class PathHelper
+ {
+ public static string AppFolder { get; private set; } = RootPath();
+ public static string IconFolder { get; private set; }
+ public static string ConfigFolder { get; private set; }
+ public static string DatabaseFolder { get; private set; }
+ public static string DatabasePath { get; private set; }
+
+ /// <summary>
+ /// 搴旂敤绋嬪簭鐨勬牴鐩綍
+ /// </summary>
+ /// <returns></returns>
+ private static string RootPath()
+ {
+ string DllPath = DllHelper.GetAssemblyPath();
+ string path = Path.GetFullPath(".");
+ IconFolder = InitFolder(path + "\\Icon");
+ ConfigFolder = InitFolder(path + "\\Config");
+ DatabaseFolder = InitFolder(ConfigFolder + "\\Database");
+ DatabasePath = DatabaseFolder + "\\database.db";
+ return path;
+ }
+
+ public static string SettingFolder()
+ {
+ string Path = RootPath() + "\\Config\\Setting";
+ return Path;
+ }
+
+ /// <summary>
+ /// 绯荤粺閰嶇疆淇℃伅瀛樺偍鏂囦欢澶硅矾寰�
+ /// </summary>
+ /// <returns>绯荤粺閰嶇疆淇℃伅鏂囦欢澶�</returns>
+ public static string SystemSettingFolder()
+ {
+ string Path = RootPath() + "\\Config\\SystemSetting";
+ return Path;
+ }
+
+ /// <summary>
+ /// 绯荤粺閰嶇疆鏂囦欢
+ /// </summary>
+ /// <returns>绯荤粺閰嶇疆鏂囦欢璺緞</returns>
+ public static string SystemSettingFile()
+ {
+ string Path = RootPath() + "\\Config\\SystemSetting\\system.setting";
+ return Path;
+ }
+
+ // <summary>
+ /// 鑿滃崟閰嶇疆鏂囦欢
+ /// </summary>
+ /// <returns>鑿滃崟閰嶇疆鏂囦欢</returns>
+ public static string MenuFile()
+ {
+ string Path = RootPath() + "\\Config\\SystemSetting\\menu.setting";
+ return Path;
+ }
+
+ /// <summary>
+ /// 鐢熶骇閰嶇疆鏂囦欢澶�
+ /// </summary>
+ /// <returns>鐢熶骇閰嶇疆鏂囦欢澶�</returns>
+ public static string ProductionFolder()
+ {
+ string Path = RootPath() + "\\Config\\ProductionSetting";
+ return Path;
+ }
+
+ /// <summary>
+ /// 娴嬭瘯椤逛俊鎭瓨鍌ㄦ枃浠跺す
+ /// </summary>
+ /// <returns>娴嬭瘯椤瑰瓨鍌ㄦ枃浠跺す</returns>
+ public static string TestItemFolder()
+ {
+ string Path = ProductionFolder() + "\\TestItem";
+ return Path;
+ }
+
+ /// <summary>
+ /// 璁剧疆鍙傛暟鏂囦欢澶�
+ /// </summary>
+ /// <returns>璁剧疆鍙傛暟鏂囦欢澶�</returns>
+ public static string ParameterFolder()
+ {
+ string Path = ProductionFolder() + "\\Parameter";
+ return Path;
+ }
+
+ /// <summary>
+ /// 鎻掍欢瀛樺偍鐩綍
+ /// </summary>
+ /// <returns>鎻掍欢瀛樺偍鐩綍</returns>
+ public static string PluginFolder()
+ {
+ string Path = RootPath() + "\\Plugin";
+ return Path;
+ }
+
+ private static string InitFolder(string path)
+ {
+ try
+ {
+ if (!Directory.Exists(path))
+ {
+ Directory.CreateDirectory(path);
+ }
+ }
+ catch (Exception ex)
+ {
+
+ }
+ return path;
+ }
+ }
+}
diff --git a/HMI.Core/Util/SqliteHelper.cs b/HMI.Core/Util/SqliteHelper.cs
new file mode 100644
index 0000000..34502b6
--- /dev/null
+++ b/HMI.Core/Util/SqliteHelper.cs
@@ -0,0 +1,235 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.Common;
+using System.Data.Odbc;
+using System.Data.SQLite;
+
+namespace HMI.Core.Util
+{
+ public class SqliteHelper
+ {
+ private string DataBaseFile = string.Empty;
+
+ private string ConnectString = string.Empty;
+
+ private SQLiteConnection conn = null;
+
+ private SQLiteCommand cmd = null;
+
+ public SqliteHelper(string DBFile)
+ {
+ DataBaseFile = DBFile;
+ ConnectString = "DataSource=" + DataBaseFile + ";Version=3;Pooling=False;Max Pool Size=100";
+ conn = new SQLiteConnection(ConnectString);
+ cmd = new SQLiteCommand(conn);
+ }
+
+ public static bool CreateDatabase(string DataBaseFile)
+ {
+ try
+ {
+ SQLiteConnection.CreateFile(DataBaseFile);
+ return true;
+ }
+ catch (Exception ex)
+ {
+ throw new Exception($"Create Database [${DataBaseFile}] Failed.", ex);
+ }
+ }
+
+ public int ExecuteSql(string Sql)
+ {
+ try
+ {
+ Connect();
+ cmd.CommandType = CommandType.Text;
+ cmd.CommandText = Sql;
+ return cmd.ExecuteNonQuery();
+ }
+ catch (Exception ex)
+ {
+ string message = "ExecuteSql Error:" + ex.Message;
+ throw new Exception(message);
+ }
+ finally
+ {
+ DisConnect();
+ }
+ }
+
+ public void ExecuteBatchSql(IEnumerable<string> sqls)
+ {
+ SQLiteTransaction tr = null;
+ try
+ {
+ Connect();
+ tr = conn.BeginTransaction();
+ cmd.CommandType = CommandType.Text;
+ foreach (string sql in sqls)
+ {
+ if (string.IsNullOrEmpty(sql) || string.IsNullOrWhiteSpace(sql)) continue;
+ cmd.CommandText = sql;
+ cmd.ExecuteNonQuery();
+ }
+ tr.Commit();
+ }
+ catch (Exception ex)
+ {
+ tr?.Rollback();
+ throw ex;
+ }
+ finally
+ {
+ DisConnect();
+ }
+ }
+
+ public DataTable GetDataTable(string Sql)
+ {
+ DataTable dataTable = new DataTable();
+ SQLiteDataAdapter sQLiteDataAdapter = new SQLiteDataAdapter();
+ try
+ {
+ Connect();
+ cmd.CommandType = CommandType.Text;
+ cmd.CommandText = Sql;
+ sQLiteDataAdapter.SelectCommand = cmd;
+ sQLiteDataAdapter.Fill(dataTable);
+ }
+ catch (Exception ex)
+ {
+ string message = "ExecuteSql Error:" + ex.Message;
+ throw new Exception(message);
+ }
+ finally
+ {
+ DisConnect();
+ }
+
+ return dataTable;
+ }
+
+ public string[,] GetDataTableToArray(string Sql)
+ {
+ try
+ {
+ DataTable dataTable = GetDataTable(Sql);
+ string[,] array = new string[dataTable.Rows.Count, dataTable.Columns.Count];
+ int num = 0;
+ int num2 = 0;
+ foreach (DataRow row in dataTable.Rows)
+ {
+ num2 = 0;
+ object[] itemArray = row.ItemArray;
+ foreach (object obj in itemArray)
+ {
+ array[num, num2] = obj.ToString();
+ num2++;
+ }
+
+ num++;
+ }
+
+ return array;
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ }
+
+ public void Close()
+ {
+ try
+ {
+ if (conn.State == ConnectionState.Open)
+ {
+ conn.Close();
+ }
+
+ if (cmd != null)
+ {
+ cmd.Dispose();
+ }
+
+ if (conn != null)
+ {
+ conn.Dispose();
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ }
+
+ public bool HasData(string sql)
+ {
+ DataTable dataTable = GetDataTable(sql);
+ return dataTable.Rows.Count > 0;
+ }
+
+ public string[] GetColumnNameFromTable(string TableName)
+ {
+ try
+ {
+ string sql = $"PRAGMA table_info('{TableName}')";
+ DataTable dataTable = GetDataTable(sql);
+ string[] array = new string[dataTable.Rows.Count];
+ int num = 0;
+ foreach (DataRow row in dataTable.Rows)
+ {
+ array[num] = row.ItemArray[1].ToString();
+ num++;
+ }
+
+ return array;
+ }
+ catch (Exception ex)
+ {
+ throw new Exception("鑾峰彇瀛楁鍚嶇О澶辫触:" + ex.Message);
+ }
+ }
+
+ public string[] GetAllTableInFile()
+ {
+ try
+ {
+ string sql = "select name from sqlite_master where type = 'table' order by name";
+ DataTable dataTable = GetDataTable(sql);
+ string[] array = new string[dataTable.Rows.Count];
+ int num = 0;
+ foreach (DataRow row in dataTable.Rows)
+ {
+ array[num] = row.ItemArray[0].ToString();
+ num++;
+ }
+
+ return array;
+ }
+ catch (Exception ex)
+ {
+ throw new Exception("鑾峰彇瀛楁鍚嶇О澶辫触:" + ex.Message);
+ }
+ }
+
+ private void Connect()
+ {
+ if (conn.State == ConnectionState.Closed)
+ {
+ conn.ConnectionString = ConnectString;
+ cmd.Connection = conn;
+ conn.Open();
+ }
+ }
+
+ private void DisConnect()
+ {
+ if (conn.State == ConnectionState.Open)
+ {
+ conn.Close();
+ }
+ }
+ }
+}
diff --git a/HMI.Core/Util/UtilContainer.cs b/HMI.Core/Util/UtilContainer.cs
new file mode 100644
index 0000000..1706a20
--- /dev/null
+++ b/HMI.Core/Util/UtilContainer.cs
@@ -0,0 +1,22 @@
+锘縰sing System.Collections.Generic;
+
+namespace HMI.Core.Util
+{
+ public class UtilContainer
+ {
+ private static Dictionary<string, object> Map = new Dictionary<string, object>();
+
+ public static bool RegisterUtil(string name, object value)
+ {
+ if (Map.ContainsKey(name)) return false;
+ Map[name] = value;
+ return true;
+ }
+
+ public T GetUtil<T>(string name)
+ {
+ if (!Map.ContainsKey(name)) return default(T);
+ return (T)Map[name];
+ }
+ }
+}
diff --git a/HMI.Core/Util/XmlHelper.cs b/HMI.Core/Util/XmlHelper.cs
new file mode 100644
index 0000000..d0dba0d
--- /dev/null
+++ b/HMI.Core/Util/XmlHelper.cs
@@ -0,0 +1,74 @@
+锘縰sing System;
+using System.IO;
+using System.Reflection;
+using System.Xml;
+using System.Xml.Serialization;
+using static System.Net.WebRequestMethods;
+
+namespace HMI.Core.Util
+{
+ public static class XmlHelper
+ {
+ /// <summary>
+ /// serialize object to xml file.
+ /// </summary>
+ /// <param name="path">the path to save the xml file</param>
+ /// <param name="obj">the object you want to serialize</param>
+ public static void SerializeToXml(string path, object obj)
+ {
+ XmlSerializer serializer = new XmlSerializer(obj.GetType());
+ string content = string.Empty;
+ //serialize
+ using (StringWriter writer = new StringWriter())
+ {
+ serializer.Serialize(writer, obj);
+ content = writer.ToString();
+ }
+ //save to file
+ using (StreamWriter stream_writer = new StreamWriter(path))
+ {
+ stream_writer.Write(content);
+ }
+ }
+
+ /// <summary>
+ /// xml 鏂囦欢鍙嶅簭鍒楀寲涓哄璞�
+ /// </summary>
+ /// <typeparam name="T">搴忓垪鍖栫被鍨�</typeparam>
+ /// <param name="path">the path of the xml file</param>
+ /// <returns>瀵硅薄</returns>
+ public static T DeserializeFromXml<T>(string path)
+ {
+ XmlSerializer serializer = new XmlSerializer(typeof(T));
+ using (StreamReader reader = new StreamReader(path))
+ {
+ return (T)serializer.Deserialize(reader);
+ }
+ }
+ public static bool ReadFromXml<T>(T obj, string path) {
+ XmlDocument xd = new XmlDocument();
+ xd.Load(path);
+
+ Type type = typeof(T);
+ XmlNode root = xd.SelectSingleNode(type.Name);
+ if (root == null) {
+ return false;
+ }
+
+ //鑾峰彇 RefHero 涓墍鏈夌殑瀹炰緥绉佹湁瀛楁
+ FieldInfo[] fieldArray = type.GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly);
+ foreach (FieldInfo filed in fieldArray)
+ {
+ string fileName = filed.Name;
+ XmlNode node = root.SelectSingleNode(fileName);
+ if (node == null)
+ {
+ continue;
+ }
+ filed.SetValue(obj, node.InnerText);
+ }
+ return true;
+ }
+
+ }
+}
diff --git a/HMI.Core/app.config b/HMI.Core/app.config
new file mode 100644
index 0000000..d93dea3
--- /dev/null
+++ b/HMI.Core/app.config
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <dependentAssembly>
+ <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
+ <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.ComponentModel.Annotations" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
+ <bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0"/>
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
+ <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0"/>
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
+<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/></startup></configuration>
diff --git a/HMI.Core/packages.config b/HMI.Core/packages.config
new file mode 100644
index 0000000..4bea106
--- /dev/null
+++ b/HMI.Core/packages.config
@@ -0,0 +1,4 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="log4net" version="3.0.3" targetFramework="net472" />
+</packages>
\ No newline at end of file
diff --git a/HMI.DataViewer/DataViewer.xaml b/HMI.DataViewer/DataViewer.xaml
new file mode 100644
index 0000000..ebd4758
--- /dev/null
+++ b/HMI.DataViewer/DataViewer.xaml
@@ -0,0 +1,127 @@
+锘�<hb:PluginControl x:Class="HMI.DataViewer.DataViewer"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:hb="clr-namespace:HMI.Base;assembly=HMI.Base"
+ xmlns:local="clr-namespace:HMI.DataViewer"
+ mc:Ignorable="d"
+ xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ xmlns:dp="clr-namespace:HMI.UI;assembly=HMI.UI"
+ d:DesignHeight="450" d:DesignWidth="800">
+ <UserControl.Resources>
+ <ResourceDictionary>
+ <ResourceDictionary.MergedDictionaries>
+ <pu:StyleDictionary Includes="TreeView" />
+ <ResourceDictionary Source="/HMI.UI;component/Style/PanuonResource.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+
+ <uic:PathImageConverter x:Key="path2Image"/>
+ <uic:DataGridRowNumberConverter x:Key="rowNumber"/>
+ </ResourceDictionary>
+ </UserControl.Resources>
+
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="7*"/>
+ <ColumnDefinition Width="3*"/>
+ </Grid.ColumnDefinitions>
+
+ <Border Style="{StaticResource CardBoarder}" Margin="0,0,2,0">
+ <StackPanel>
+ <DockPanel Margin="0,0,0,10">
+ <Button DockPanel.Dock="Right" pu:ButtonHelper.Icon="" Style="{StaticResource DangerButton}">鍒犻櫎</Button>
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
+pu:IconHelper.FontFamily="{StaticResource iconfont}"
+pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="refreshBtn" Click="Button_Click">鍒锋柊</Button>
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
+ pu:IconHelper.FontFamily="{StaticResource iconfont}"
+ pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="addBtn" Click="Button_Click">鏂板</Button>
+ <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}"
+ VerticalAlignment="Center" HorizontalAlignment="Left" Text="鑿滃崟鍒楄〃"/>
+ </DockPanel>
+
+ <DataGrid Grid.Column="1" x:Name="table" Style="{StaticResource DefaultDataGrid}" ItemsSource="{Binding DataSource}">
+ <DataGrid.Columns>
+ <DataGridTemplateColumn Header="" Width="Auto" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <CheckBox VerticalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTemplateColumn Header="#" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <TextBlock Text="{Binding Converter={StaticResource rowNumber},
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTextColumn Binding="{Binding Code}" Header="鑿滃崟缂栧彿" />
+ <DataGridTextColumn Binding="{Binding Name}" Header="鑿滃崟鍚嶇О" />
+ <DataGridTextColumn Binding="{Binding Level}" Header="绛夌骇" />
+ <DataGridTextColumn Binding="{Binding Type}" Header="绫诲瀷" />
+ <DataGridTextColumn Binding="{Binding Name}" Header="鑿滃崟鍚嶇О" />
+ <DataGridTextColumn Binding="{Binding ParentCode}" Header="鐖惰彍鍗曠紪鍙�" />
+ <DataGridTextColumn Binding="{Binding ParentName}" Header="鐖惰彍鍗曞悕绉�" />
+ <DataGridTextColumn Width="*" Binding="{Binding DllPath}" Header="Dll璺緞" />
+ <DataGridTextColumn Width="*" Binding="{Binding ClassName}" Header="绫诲悕" />
+ <DataGridTemplateColumn Header="鎿嶄綔" Width="100" IsReadOnly="True" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal">
+ <Button x:Name="editBtn" Style="{StaticResource LinkButton}"
+ Margin="0,0,10,0"
+ Click="Button_Click"
+ DataContext="{Binding }">缂栬緫</Button>
+ <Button x:Name="delBtn" Style="{StaticResource DangerLinkButton}"
+ DataContext="{Binding }"
+ Click="Button_Click">鍒犻櫎</Button>
+ </StackPanel>
+
+ <DataTemplate.Triggers>
+ <DataTrigger Binding="{Binding Path=IsMouseOver,
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
+ Value="True">
+ <Setter TargetName="editBtn" Property="Foreground" Value="#FFF"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Path=IsSelected,
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
+ Value="True">
+ <Setter TargetName="editBtn" Property="Foreground" Value="#FFF"/>
+ </DataTrigger>
+ </DataTemplate.Triggers>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ </DataGrid.Columns>
+ </DataGrid>
+ </StackPanel>
+ </Border>
+
+ <Border Grid.Column="1" Style="{StaticResource CardBoarder}" Margin="2,0,0,0">
+ <StackPanel>
+ <DockPanel Margin="0,0,0,10" >
+ <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}"
+ VerticalAlignment="Center" HorizontalAlignment="Left" Text="鑿滃崟缁撴瀯"/>
+ </DockPanel>
+
+ <TreeView x:Name="treeViewer" Style="{StaticResource DefaultTreeView}" ItemsSource="{Binding TreeDataSource}">
+ <TreeView.ItemTemplate>
+ <HierarchicalDataTemplate ItemsSource="{Binding Children}">
+ <StackPanel Orientation="Horizontal" VerticalAlignment="Center">
+ <Image Width="{StaticResource ContentFontSize}" Height="{StaticResource ContentFontSize}" Margin="5"
+ Source="{Binding IconPath,Converter={StaticResource path2Image},Mode=OneWay}"/>
+ <TextBlock VerticalAlignment="Center" FontSize="{StaticResource ContentFontSize}" Text="{Binding Name}"/>
+ </StackPanel>
+ </HierarchicalDataTemplate>
+ </TreeView.ItemTemplate>
+ </TreeView>
+ </StackPanel>
+ </Border>
+ </Grid>
+</hb:PluginControl>
diff --git a/HMI.DataViewer/DataViewer.xaml.cs b/HMI.DataViewer/DataViewer.xaml.cs
new file mode 100644
index 0000000..7616abc
--- /dev/null
+++ b/HMI.DataViewer/DataViewer.xaml.cs
@@ -0,0 +1,22 @@
+锘縰sing System.Windows;
+using System.Windows.Controls;
+using HMI.Base;
+
+namespace HMI.DataViewer
+{
+ /// <summary>
+ /// UserControl1.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class DataViewer : PluginControl
+ {
+ public DataViewer()
+ {
+ InitializeComponent();
+ }
+
+ private void Button_Click(object sender, RoutedEventArgs e)
+ {
+
+ }
+ }
+}
diff --git a/HMI.DataViewer/HMI.DataViewer.csproj b/HMI.DataViewer/HMI.DataViewer.csproj
new file mode 100644
index 0000000..3a115ca
--- /dev/null
+++ b/HMI.DataViewer/HMI.DataViewer.csproj
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{A580DE4A-34E7-4EFE-AD2C-0871396000E9}</ProjectGuid>
+ <OutputType>library</OutputType>
+ <RootNamespace>HMI.DataViewer</RootNamespace>
+ <AssemblyName>HMI.DataViewer</AssemblyName>
+ <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <WarningLevel>4</WarningLevel>
+ <Deterministic>true</Deterministic>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>bin\x64\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <DebugType>full</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ <OutputPath>bin\x64\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <Optimize>true</Optimize>
+ <DebugType>pdbonly</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="log4net, Version=3.0.3.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\log4net.3.0.3\lib\net462\log4net.dll</HintPath>
+ </Reference>
+ <Reference Include="Panuon.WPF, Version=1.1.2.2, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\Panuon.WPF.1.1.2.2\lib\net472\Panuon.WPF.dll</HintPath>
+ </Reference>
+ <Reference Include="Panuon.WPF.UI, Version=1.2.4.8, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\Panuon.WPF.UI.1.2.4.9\lib\net472\Panuon.WPF.UI.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Configuration" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Web" />
+ <Reference Include="System.Xml" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Xaml">
+ <RequiredTargetFramework>4.0</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="WindowsBase" />
+ <Reference Include="PresentationCore" />
+ <Reference Include="PresentationFramework" />
+ </ItemGroup>
+ <ItemGroup>
+ <Page Include="DataViewer.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Compile Include="DataViewer.xaml.cs">
+ <DependentUpon>DataViewer.xaml</DependentUpon>
+ <SubType>Code</SubType>
+ </Compile>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Properties\AssemblyInfo.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ </EmbeddedResource>
+ <None Include="packages.config" />
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\HMI.Base\HMI.Base.csproj">
+ <Project>{2a6f9720-a890-4036-9d73-41a0dae28341}</Project>
+ <Name>HMI.Base</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.Core\HMI.Core.csproj">
+ <Project>{3e3bf44a-0b69-45c5-9512-528cb48a7106}</Project>
+ <Name>HMI.Core</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.UI\HMI.UI.csproj">
+ <Project>{f17de6b5-af1d-48c6-94a0-6b763a6546a6}</Project>
+ <Name>HMI.UI</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/HMI.DataViewer/Properties/AssemblyInfo.cs b/HMI.DataViewer/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..b4f8140
--- /dev/null
+++ b/HMI.DataViewer/Properties/AssemblyInfo.cs
@@ -0,0 +1,52 @@
+锘縰sing System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// 鏈夊叧绋嬪簭闆嗙殑涓�鑸俊鎭敱浠ヤ笅
+// 鎺у埗銆傛洿鏀硅繖浜涚壒鎬у�煎彲淇敼
+// 涓庣▼搴忛泦鍏宠仈鐨勪俊鎭��
+[assembly: AssemblyTitle("HMI.DataViewer")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Organization")]
+[assembly: AssemblyProduct("HMI.DataViewer")]
+[assembly: AssemblyCopyright("Copyright 漏 Organization 2025")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 灏� ComVisible 璁剧疆涓� false 浼氫娇姝ょ▼搴忛泦涓殑绫诲瀷
+//瀵� COM 缁勪欢涓嶅彲瑙併�傚鏋滈渶瑕佷粠 COM 璁块棶姝ょ▼搴忛泦涓殑绫诲瀷
+//璇峰皢姝ょ被鍨嬬殑 ComVisible 鐗规�ц缃负 true銆�
+[assembly: ComVisible(false)]
+
+//鑻ヨ寮�濮嬬敓鎴愬彲鏈湴鍖栫殑搴旂敤绋嬪簭锛岃璁剧疆
+//.csproj 鏂囦欢涓殑 <UICulture>CultureYouAreCodingWith</UICulture>
+//鍦� <PropertyGroup> 涓�備緥濡傦紝濡傛灉浣犱娇鐢ㄧ殑鏄編鍥借嫳璇��
+//浣跨敤鐨勬槸缇庡浗鑻辫锛岃灏� <UICulture> 璁剧疆涓� en-US銆� 鐒跺悗鍙栨秷
+//瀵逛互涓� NeutralResourceLanguage 鐗规�х殑娉ㄩ噴銆� 鏇存柊
+//浠ヤ笅琛屼腑鐨勨�渆n-US鈥濅互鍖归厤椤圭洰鏂囦欢涓殑 UICulture 璁剧疆銆�
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly:ThemeInfo(
+ ResourceDictionaryLocation.None, //涓婚鐗瑰畾璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //鎴栧簲鐢ㄧ▼搴忚祫婧愬瓧鍏镐腑鎵惧埌鏃朵娇鐢�)
+ ResourceDictionaryLocation.SourceAssembly //甯歌璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //銆佸簲鐢ㄧ▼搴忔垨浠讳綍涓婚涓撶敤璧勬簮瀛楀吀涓壘鍒版椂浣跨敤)
+)]
+
+
+// 绋嬪簭闆嗙殑鐗堟湰淇℃伅鐢变笅鍒楀洓涓�肩粍鎴�:
+//
+// 涓荤増鏈�
+// 娆$増鏈�
+// 鐢熸垚鍙�
+// 淇鍙�
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/HMI.DataViewer/Properties/Resources.Designer.cs b/HMI.DataViewer/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..15eaf01
--- /dev/null
+++ b/HMI.DataViewer/Properties/Resources.Designer.cs
@@ -0,0 +1,62 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// 姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+// 杩愯鏃剁増鏈�: 4.0.30319.42000
+//
+// 瀵规鏂囦欢鐨勬洿鏀瑰彲鑳藉鑷翠笉姝g‘鐨勮涓猴紝濡傛灉
+// 閲嶆柊鐢熸垚浠g爜锛屽垯鎵�鍋氭洿鏀瑰皢涓㈠け銆�
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.DataViewer.Properties {
+
+
+ /// <summary>
+ /// 寮虹被鍨嬭祫婧愮被锛岀敤浜庢煡鎵炬湰鍦板寲瀛楃涓茬瓑銆�
+ /// </summary>
+ // 姝ょ被鏄敱 StronglyTypedResourceBuilder
+ // 绫婚�氳繃绫讳技浜� ResGen 鎴� Visual Studio 鐨勫伐鍏疯嚜鍔ㄧ敓鎴愮殑銆�
+ // 鑻ヨ娣诲姞鎴栫Щ闄ゆ垚鍛橈紝璇风紪杈� .ResX 鏂囦欢锛岀劧鍚庨噸鏂拌繍琛� ResGen
+ // (浠� /str 浣滀负鍛戒护閫夐」)锛屾垨閲嶆柊鐢熸垚 VS 椤圭洰銆�
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// 杩斿洖姝ょ被浣跨敤鐨勭紦瀛� ResourceManager 瀹炰緥銆�
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if ((resourceMan == null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HMI.DataViewer.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// 閲嶅啓褰撳墠绾跨▼鐨� CurrentUICulture 灞炴�э紝瀵�
+ /// 浣跨敤姝ゅ己绫诲瀷璧勬簮绫荤殑鎵�鏈夎祫婧愭煡鎵炬墽琛岄噸鍐欍��
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/HMI.DataViewer/Properties/Resources.resx b/HMI.DataViewer/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/HMI.DataViewer/Properties/Resources.resx
@@ -0,0 +1,117 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
diff --git a/HMI.DataViewer/Properties/Settings.Designer.cs b/HMI.DataViewer/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..5b2c89d
--- /dev/null
+++ b/HMI.DataViewer/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.DataViewer.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/HMI.DataViewer/Properties/Settings.settings b/HMI.DataViewer/Properties/Settings.settings
new file mode 100644
index 0000000..033d7a5
--- /dev/null
+++ b/HMI.DataViewer/Properties/Settings.settings
@@ -0,0 +1,7 @@
+锘�<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile>
\ No newline at end of file
diff --git a/HMI.DataViewer/packages.config b/HMI.DataViewer/packages.config
new file mode 100644
index 0000000..63cdc53
--- /dev/null
+++ b/HMI.DataViewer/packages.config
@@ -0,0 +1,6 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="log4net" version="3.0.3" targetFramework="net472" />
+ <package id="Panuon.WPF" version="1.1.2.2" targetFramework="net472" />
+ <package id="Panuon.WPF.UI" version="1.2.4.9" targetFramework="net472" />
+</packages>
\ No newline at end of file
diff --git a/HMI.IOMonitor/Entity/DioData.cs b/HMI.IOMonitor/Entity/DioData.cs
new file mode 100644
index 0000000..3aa4595
--- /dev/null
+++ b/HMI.IOMonitor/Entity/DioData.cs
@@ -0,0 +1,12 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HMI.IOMonitor.Entity
+{
+ public class DioData
+ {
+ }
+}
diff --git a/HMI.IOMonitor/HMI.IOMonitor.csproj b/HMI.IOMonitor/HMI.IOMonitor.csproj
new file mode 100644
index 0000000..a8c39f4
--- /dev/null
+++ b/HMI.IOMonitor/HMI.IOMonitor.csproj
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{F7663C79-7047-42F3-B129-73A2575EE7C6}</ProjectGuid>
+ <OutputType>library</OutputType>
+ <RootNamespace>HMI.IOMonitor</RootNamespace>
+ <AssemblyName>HMI.IOMonitor</AssemblyName>
+ <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <WarningLevel>4</WarningLevel>
+ <Deterministic>true</Deterministic>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>bin\x64\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <DebugType>full</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ <OutputPath>bin\x64\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <Optimize>true</Optimize>
+ <DebugType>pdbonly</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="log4net, Version=3.0.3.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\log4net.3.0.3\lib\net462\log4net.dll</HintPath>
+ </Reference>
+ <Reference Include="Panuon.WPF, Version=1.1.2.2, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\Panuon.WPF.1.1.2.2\lib\net472\Panuon.WPF.dll</HintPath>
+ </Reference>
+ <Reference Include="Panuon.WPF.UI, Version=1.2.4.8, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\Panuon.WPF.UI.1.2.4.9\lib\net472\Panuon.WPF.UI.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Configuration" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Web" />
+ <Reference Include="System.Xml" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Xaml">
+ <RequiredTargetFramework>4.0</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="WindowsBase" />
+ <Reference Include="PresentationCore" />
+ <Reference Include="PresentationFramework" />
+ </ItemGroup>
+ <ItemGroup>
+ <Page Include="IOMonitor.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Compile Include="Entity\DioData.cs" />
+ <Compile Include="IOMonitor.xaml.cs">
+ <DependentUpon>IOMonitor.xaml</DependentUpon>
+ <SubType>Code</SubType>
+ </Compile>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Properties\AssemblyInfo.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ </EmbeddedResource>
+ <None Include="packages.config" />
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\HMI.Base\HMI.Base.csproj">
+ <Project>{2a6f9720-a890-4036-9d73-41a0dae28341}</Project>
+ <Name>HMI.Base</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.Core\HMI.Core.csproj">
+ <Project>{3e3bf44a-0b69-45c5-9512-528cb48a7106}</Project>
+ <Name>HMI.Core</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.UI\HMI.UI.csproj">
+ <Project>{f17de6b5-af1d-48c6-94a0-6b763a6546a6}</Project>
+ <Name>HMI.UI</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <PropertyGroup>
+ <PostBuildEvent>copy /Y "$(TargetPath)" "$(SolutionDir)bin\$(PlatformName)\$(ConfigurationName)\Plugin\$(TargetFileName)"
+copy /Y "$(TargetDir)$(TargetName).pdb" "$(SolutionDir)bin\$(PlatformName)\$(ConfigurationName)\Plugin\$(TargetName).pdb"</PostBuildEvent>
+ </PropertyGroup>
+</Project>
\ No newline at end of file
diff --git a/HMI.IOMonitor/IOMonitor.xaml b/HMI.IOMonitor/IOMonitor.xaml
new file mode 100644
index 0000000..26a0da3
--- /dev/null
+++ b/HMI.IOMonitor/IOMonitor.xaml
@@ -0,0 +1,126 @@
+锘�<hb:PluginControl x:Class="HMI.IOMonitor.IOMonitor"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:hb="clr-namespace:HMI.Base;assembly=HMI.Base"
+ xmlns:local="clr-namespace:HMI.IOMonitor"
+ xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
+ xmlns:ui="clr-namespace:HMI.UI;assembly=HMI.UI"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ xmlns:dp="clr-namespace:HMI.UI;assembly=HMI.UI"
+ mc:Ignorable="d"
+ Padding="10"
+ Loaded="UserControl_Loaded"
+ Background="{StaticResource WorkspaceBackground}"
+ d:DesignHeight="450" d:DesignWidth="800">
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="5*"/>
+ <ColumnDefinition Width="5*"/>
+ </Grid.ColumnDefinitions>
+
+ <Border Style="{StaticResource CardBoarder}" Margin="0,0,2,0">
+ <StackPanel>
+ <DockPanel Margin="0,0,0,10">
+ <Button DockPanel.Dock="Right" pu:ButtonHelper.Icon="" Style="{StaticResource DangerButton}">鍒犻櫎</Button>
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
+pu:IconHelper.FontFamily="{StaticResource iconfont}"
+pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="refreshBtn" Click="Button_Click">鍒锋柊</Button>
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
+ pu:IconHelper.FontFamily="{StaticResource iconfont}"
+ pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="addBtn" Click="Button_Click">鏂板</Button>
+ <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}"
+ VerticalAlignment="Center" HorizontalAlignment="Left" Text="鑿滃崟鍒楄〃"/>
+ </DockPanel>
+
+ <DataGrid Grid.Column="1" x:Name="diTable" Style="{StaticResource DefaultDataGrid}" ItemsSource="{Binding DataSource}">
+ <DataGrid.Columns>
+ <DataGridTemplateColumn Header="" Width="Auto" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <CheckBox VerticalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTemplateColumn Header="#" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <TextBlock Text="{Binding Converter={StaticResource rowNumber},
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTextColumn Width="*" Binding="{Binding Code}" Header="缂栧彿" />
+ <DataGridTextColumn Width="*" Binding="{Binding Name}" Header="鍚嶇О" />
+ <DataGridTextColumn Width="*" Binding="{Binding Type}" Header="绫诲瀷" />
+ <DataGridTextColumn Width="*" Binding="{Binding Value}" Header="DI鍊�" />
+ <DataGridTemplateColumn Header="鎿嶄綔" Width="100" IsReadOnly="True" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal">
+ <Button x:Name="editBtn" Style="{StaticResource RowLink}"
+ Margin="0,0,10,0"
+ Click="Button_Click"
+ DataContext="{Binding }">缂栬緫</Button>
+ <Button x:Name="delBtn" Style="{StaticResource DangerLinkButton}"
+ DataContext="{Binding }"
+ Click="Button_Click">鍒犻櫎</Button>
+ </StackPanel>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ </DataGrid.Columns>
+ </DataGrid>
+ </StackPanel>
+ </Border>
+
+ <Border Grid.Column="1" Style="{StaticResource CardBoarder}" Margin="2,0,0,0">
+ <StackPanel>
+ <DockPanel Margin="0,0,0,10" >
+ <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}"
+ VerticalAlignment="Center" HorizontalAlignment="Left" Text="鑿滃崟缁撴瀯"/>
+ </DockPanel>
+
+ <DataGrid Grid.Column="1" x:Name="doTable" Style="{StaticResource DefaultDataGrid}" ItemsSource="{Binding DataSource}">
+ <DataGrid.Columns>
+ <DataGridTemplateColumn Header="" Width="Auto" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <CheckBox VerticalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTemplateColumn Header="#" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <TextBlock Text="{Binding Converter={StaticResource rowNumber},
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTextColumn Width="*" Binding="{Binding Code}" Header="缂栧彿"/>
+ <DataGridTextColumn Width="*" Binding="{Binding Name}" Header="鍚嶇О" />
+ <DataGridTextColumn Width="*" Binding="{Binding Type}" Header="绫诲瀷" />
+ <DataGridTextColumn Width="*" Binding="{Binding Value}" Header="DO鍊�" />
+ <DataGridTemplateColumn Header="鎿嶄綔" Width="100" IsReadOnly="True" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal" ui:StackPanelHelper.ChildSpace="10">
+ <Button x:Name="editBtn" Style="{StaticResource RowLink}"
+ Click="Button_Click"
+ DataContext="{Binding }">缂栬緫</Button>
+ <Button x:Name="delBtn" Style="{StaticResource DangerLinkButton}"
+ DataContext="{Binding }"
+ Click="Button_Click">鍒犻櫎</Button>
+ </StackPanel>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ </DataGrid.Columns>
+ </DataGrid>
+ </StackPanel>
+ </Border>
+ </Grid>
+</hb:PluginControl>
\ No newline at end of file
diff --git a/HMI.IOMonitor/IOMonitor.xaml.cs b/HMI.IOMonitor/IOMonitor.xaml.cs
new file mode 100644
index 0000000..cae019c
--- /dev/null
+++ b/HMI.IOMonitor/IOMonitor.xaml.cs
@@ -0,0 +1,29 @@
+锘縰sing System.Windows;
+using System.Windows.Controls;
+using HMI.Base;
+using HMI.Core.Api;
+using log4net;
+
+namespace HMI.IOMonitor
+{
+ /// <summary>
+ /// UserControl1.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class IOMonitor : PluginControl
+ {
+ public IOMonitor()
+ {
+ InitializeComponent();
+ }
+
+ private void UserControl_Loaded(object sender, RoutedEventArgs e)
+ {
+
+ }
+
+ private void Button_Click(object sender, RoutedEventArgs e)
+ {
+
+ }
+ }
+}
diff --git a/HMI.IOMonitor/Properties/AssemblyInfo.cs b/HMI.IOMonitor/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..881d24a
--- /dev/null
+++ b/HMI.IOMonitor/Properties/AssemblyInfo.cs
@@ -0,0 +1,52 @@
+锘縰sing System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// 鏈夊叧绋嬪簭闆嗙殑涓�鑸俊鎭敱浠ヤ笅
+// 鎺у埗銆傛洿鏀硅繖浜涚壒鎬у�煎彲淇敼
+// 涓庣▼搴忛泦鍏宠仈鐨勪俊鎭��
+[assembly: AssemblyTitle("HMI.IOMonitor")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Organization")]
+[assembly: AssemblyProduct("HMI.IOMonitor")]
+[assembly: AssemblyCopyright("Copyright 漏 Organization 2025")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 灏� ComVisible 璁剧疆涓� false 浼氫娇姝ょ▼搴忛泦涓殑绫诲瀷
+//瀵� COM 缁勪欢涓嶅彲瑙併�傚鏋滈渶瑕佷粠 COM 璁块棶姝ょ▼搴忛泦涓殑绫诲瀷
+//璇峰皢姝ょ被鍨嬬殑 ComVisible 鐗规�ц缃负 true銆�
+[assembly: ComVisible(false)]
+
+//鑻ヨ寮�濮嬬敓鎴愬彲鏈湴鍖栫殑搴旂敤绋嬪簭锛岃璁剧疆
+//.csproj 鏂囦欢涓殑 <UICulture>CultureYouAreCodingWith</UICulture>
+//鍦� <PropertyGroup> 涓�備緥濡傦紝濡傛灉浣犱娇鐢ㄧ殑鏄編鍥借嫳璇��
+//浣跨敤鐨勬槸缇庡浗鑻辫锛岃灏� <UICulture> 璁剧疆涓� en-US銆� 鐒跺悗鍙栨秷
+//瀵逛互涓� NeutralResourceLanguage 鐗规�х殑娉ㄩ噴銆� 鏇存柊
+//浠ヤ笅琛屼腑鐨勨�渆n-US鈥濅互鍖归厤椤圭洰鏂囦欢涓殑 UICulture 璁剧疆銆�
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly:ThemeInfo(
+ ResourceDictionaryLocation.None, //涓婚鐗瑰畾璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //鎴栧簲鐢ㄧ▼搴忚祫婧愬瓧鍏镐腑鎵惧埌鏃朵娇鐢�)
+ ResourceDictionaryLocation.SourceAssembly //甯歌璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //銆佸簲鐢ㄧ▼搴忔垨浠讳綍涓婚涓撶敤璧勬簮瀛楀吀涓壘鍒版椂浣跨敤)
+)]
+
+
+// 绋嬪簭闆嗙殑鐗堟湰淇℃伅鐢变笅鍒楀洓涓�肩粍鎴�:
+//
+// 涓荤増鏈�
+// 娆$増鏈�
+// 鐢熸垚鍙�
+// 淇鍙�
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/HMI.IOMonitor/Properties/Resources.Designer.cs b/HMI.IOMonitor/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..faca3a5
--- /dev/null
+++ b/HMI.IOMonitor/Properties/Resources.Designer.cs
@@ -0,0 +1,62 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// 姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+// 杩愯鏃剁増鏈�: 4.0.30319.42000
+//
+// 瀵规鏂囦欢鐨勬洿鏀瑰彲鑳藉鑷翠笉姝g‘鐨勮涓猴紝濡傛灉
+// 閲嶆柊鐢熸垚浠g爜锛屽垯鎵�鍋氭洿鏀瑰皢涓㈠け銆�
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.IOMonitor.Properties {
+
+
+ /// <summary>
+ /// 寮虹被鍨嬭祫婧愮被锛岀敤浜庢煡鎵炬湰鍦板寲瀛楃涓茬瓑銆�
+ /// </summary>
+ // 姝ょ被鏄敱 StronglyTypedResourceBuilder
+ // 绫婚�氳繃绫讳技浜� ResGen 鎴� Visual Studio 鐨勫伐鍏疯嚜鍔ㄧ敓鎴愮殑銆�
+ // 鑻ヨ娣诲姞鎴栫Щ闄ゆ垚鍛橈紝璇风紪杈� .ResX 鏂囦欢锛岀劧鍚庨噸鏂拌繍琛� ResGen
+ // (浠� /str 浣滀负鍛戒护閫夐」)锛屾垨閲嶆柊鐢熸垚 VS 椤圭洰銆�
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// 杩斿洖姝ょ被浣跨敤鐨勭紦瀛� ResourceManager 瀹炰緥銆�
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if ((resourceMan == null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HMI.IOMonitor.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// 閲嶅啓褰撳墠绾跨▼鐨� CurrentUICulture 灞炴�э紝瀵�
+ /// 浣跨敤姝ゅ己绫诲瀷璧勬簮绫荤殑鎵�鏈夎祫婧愭煡鎵炬墽琛岄噸鍐欍��
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/HMI.IOMonitor/Properties/Resources.resx b/HMI.IOMonitor/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/HMI.IOMonitor/Properties/Resources.resx
@@ -0,0 +1,117 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
diff --git a/HMI.IOMonitor/Properties/Settings.Designer.cs b/HMI.IOMonitor/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..d5b5de5
--- /dev/null
+++ b/HMI.IOMonitor/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.IOMonitor.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/HMI.IOMonitor/Properties/Settings.settings b/HMI.IOMonitor/Properties/Settings.settings
new file mode 100644
index 0000000..033d7a5
--- /dev/null
+++ b/HMI.IOMonitor/Properties/Settings.settings
@@ -0,0 +1,7 @@
+锘�<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile>
\ No newline at end of file
diff --git a/HMI.IOMonitor/packages.config b/HMI.IOMonitor/packages.config
new file mode 100644
index 0000000..63cdc53
--- /dev/null
+++ b/HMI.IOMonitor/packages.config
@@ -0,0 +1,6 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="log4net" version="3.0.3" targetFramework="net472" />
+ <package id="Panuon.WPF" version="1.1.2.2" targetFramework="net472" />
+ <package id="Panuon.WPF.UI" version="1.2.4.9" targetFramework="net472" />
+</packages>
\ No newline at end of file
diff --git a/HMI.MenuManage/Entity/MenuData.cs b/HMI.MenuManage/Entity/MenuData.cs
new file mode 100644
index 0000000..ee3f1fb
--- /dev/null
+++ b/HMI.MenuManage/Entity/MenuData.cs
@@ -0,0 +1,46 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using HMI.Core.Entity;
+
+namespace HMI.MenuManage.Entity
+{
+ public class MenuData : NotifyBase
+ {
+ public string Id { get; set; }
+ public string Code { get; set; }
+ public string Name { get; set; }
+ public string IconPath { get; set; }
+ public string Level { get; set; }
+ public string Type { get; set; }
+ public string ParentCode { get; set; }
+ public string ParentName { get; set; }
+ public string DllPath { get; set; }
+ public string ClassName { get; set; }
+
+ private ObservableCollection<MenuData> _Children = new ObservableCollection<MenuData>();
+
+ public ObservableCollection<MenuData> Children
+ {
+ get => _Children;
+ set
+ {
+ Set(ref _Children, value);
+ }
+ }
+
+ private bool _Selected;
+
+ public bool Selected
+ {
+ get => _Selected;
+ set
+ {
+ Set(ref _Selected, value);
+ }
+ }
+ }
+}
diff --git a/HMI.MenuManage/Entity/RoleData.cs b/HMI.MenuManage/Entity/RoleData.cs
new file mode 100644
index 0000000..472d757
--- /dev/null
+++ b/HMI.MenuManage/Entity/RoleData.cs
@@ -0,0 +1,29 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using HMI.Core.Entity;
+
+namespace HMI.MenuManage.Entity
+{
+ public class RoleData : NotifyBase
+ {
+ public string Id { get; set; }
+ public string Code { get; set; }
+ public string Name { get; set; }
+
+ private bool _Selected;
+ public bool Selected
+ {
+ get => _Selected;
+ set
+ {
+ if (_Selected != value)
+ {
+ Set(ref _Selected, value);
+ }
+ }
+ }
+ }
+}
diff --git a/HMI.MenuManage/Entity/RoleMenuRel.cs b/HMI.MenuManage/Entity/RoleMenuRel.cs
new file mode 100644
index 0000000..54bde29
--- /dev/null
+++ b/HMI.MenuManage/Entity/RoleMenuRel.cs
@@ -0,0 +1,64 @@
+锘縰sing System;
+using System.Collections.ObjectModel;
+using System.Windows.Input;
+using HMI.Core.Entity;
+
+namespace HMI.MenuManage.Entity
+{
+ public class RoleMenuRel : NotifyBase
+ {
+ private event EventHandler<bool> SelectedChanged;
+
+ public string Id { get; set; }
+ public string RoleCode { get; set; }
+ public string RoleName { get; set; }
+ public string MenuCode { get; set; }
+ public string ParentCode { get; set; }
+ public string MenuName { get; set; }
+ public string MenuIcon { get; set; }
+
+ private bool _Selected;
+ public bool Selected
+ {
+ get => _Selected;
+ set
+ {
+ if (_Selected != value)
+ {
+ Set(ref _Selected, value);
+ }
+ }
+ }
+
+ public ICommand CheckCommand
+ {
+ get => new RelayCommand<bool>(ExcuteCheckCommand);
+ }
+
+ private void ExcuteCheckCommand(bool flag)
+ {
+ if (flag && Parent != null) Parent.Selected = flag;
+ foreach (var item in Children)
+ {
+ item.Selected = flag;
+ }
+ }
+
+
+ public RoleMenuRel Parent;
+
+ private ObservableCollection<RoleMenuRel> _Children = new ObservableCollection<RoleMenuRel>();
+
+ public ObservableCollection<RoleMenuRel> Children
+ {
+ get { return _Children; }
+ set { Set(ref _Children, value); }
+ }
+
+ public void AddChild(RoleMenuRel child)
+ {
+ child.Parent = this;
+ Children.Add(child);
+ }
+ }
+}
diff --git a/HMI.MenuManage/Entity/UserData.cs b/HMI.MenuManage/Entity/UserData.cs
new file mode 100644
index 0000000..a89d19f
--- /dev/null
+++ b/HMI.MenuManage/Entity/UserData.cs
@@ -0,0 +1,31 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using HMI.Core.Entity;
+
+namespace HMI.MenuManage.Entity
+{
+ public class UserData : NotifyBase
+ {
+ public string Id { get; set; }
+ public string Name { get; set; }
+ public string Username { get; set; }
+ public string Password { get; set; }
+ public string RoleCode { get; set; }
+
+ private bool _Selected;
+ public bool Selected
+ {
+ get => _Selected;
+ set
+ {
+ if (_Selected != value)
+ {
+ Set(ref _Selected, value);
+ }
+ }
+ }
+ }
+}
diff --git a/HMI.MenuManage/Entity/UserRoleRel.cs b/HMI.MenuManage/Entity/UserRoleRel.cs
new file mode 100644
index 0000000..7d662e3
--- /dev/null
+++ b/HMI.MenuManage/Entity/UserRoleRel.cs
@@ -0,0 +1,26 @@
+锘縰sing System;
+using System.Collections.ObjectModel;
+using System.Windows.Input;
+using HMI.Core.Entity;
+
+namespace HMI.MenuManage.Entity
+{
+ public class UserRoleRel : NotifyBase
+ {
+ public string Id { get; set; }
+ public string Username { get; set; }
+ public string RealName { get; set; }
+ public string RoleCode { get; set; }
+ public string RoleName { get; set; }
+
+ private bool _Selected;
+ public bool Selected
+ {
+ get => _Selected;
+ set
+ {
+ Set(ref _Selected, value);
+ }
+ }
+ }
+}
diff --git a/HMI.MenuManage/HMI.MenuManage.csproj b/HMI.MenuManage/HMI.MenuManage.csproj
new file mode 100644
index 0000000..9e48564
--- /dev/null
+++ b/HMI.MenuManage/HMI.MenuManage.csproj
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{DE4205C6-5923-46FD-A4B9-65169BF61C75}</ProjectGuid>
+ <OutputType>library</OutputType>
+ <RootNamespace>HMI.MenuManage</RootNamespace>
+ <AssemblyName>HMI.MenuManage</AssemblyName>
+ <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <WarningLevel>4</WarningLevel>
+ <Deterministic>true</Deterministic>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>bin\x64\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <DebugType>full</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ <OutputPath>bin\x64\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <Optimize>true</Optimize>
+ <DebugType>pdbonly</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="DatabaseHelper">
+ <HintPath>..\Libs\DatabaseHelper.dll</HintPath>
+ </Reference>
+ <Reference Include="log4net, Version=3.0.3.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\log4net.3.0.3\lib\net462\log4net.dll</HintPath>
+ </Reference>
+ <Reference Include="Panuon.WPF, Version=1.1.2.2, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\Panuon.WPF.1.1.2.2\lib\net472\Panuon.WPF.dll</HintPath>
+ </Reference>
+ <Reference Include="Panuon.WPF.UI, Version=1.2.4.8, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\Panuon.WPF.UI.1.2.4.9\lib\net472\Panuon.WPF.UI.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Configuration" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Data.SQLite">
+ <HintPath>..\Libs\System.Data.SQLite.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Data.SQLite.EF6">
+ <HintPath>..\Libs\System.Data.SQLite.EF6.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Data.SQLite.Linq">
+ <HintPath>..\Libs\System.Data.SQLite.Linq.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Web" />
+ <Reference Include="System.Xml" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Xaml">
+ <RequiredTargetFramework>4.0</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="WindowsBase" />
+ <Reference Include="PresentationCore" />
+ <Reference Include="PresentationFramework" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Entity\MenuData.cs" />
+ <Compile Include="Entity\RoleData.cs" />
+ <Compile Include="Entity\UserRoleRel.cs" />
+ <Compile Include="Entity\RoleMenuRel.cs" />
+ <Compile Include="Entity\UserData.cs" />
+ <Compile Include="Modal\RoleModal.xaml.cs">
+ <DependentUpon>RoleModal.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Model\RoleManageModel.cs" />
+ <Compile Include="RoleManage.xaml.cs">
+ <DependentUpon>RoleManage.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Modal\UserModal.xaml.cs">
+ <DependentUpon>UserModal.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Model\UserManageModel.cs" />
+ <Compile Include="UserManage.xaml.cs">
+ <DependentUpon>UserManage.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Util\UserRoleRelHelper.cs" />
+ <Compile Include="Util\RoleHelper.cs" />
+ <Compile Include="Util\RoleMenuHelper.cs" />
+ <Page Include="Modal\RoleModal.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Page Include="RoleManage.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Page Include="MenuManage.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Compile Include="MenuManage.xaml.cs">
+ <DependentUpon>MenuManage.xaml</DependentUpon>
+ <SubType>Code</SubType>
+ </Compile>
+ <Page Include="Modal\UserModal.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Page Include="Modal\MenuModal.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
+ <Page Include="UserManage.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Modal\MenuModal.xaml.cs">
+ <DependentUpon>MenuModal.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Model\MenuManageModel.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ </EmbeddedResource>
+ <None Include="packages.config" />
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\HMI.Base\HMI.Base.csproj">
+ <Project>{2a6f9720-a890-4036-9d73-41a0dae28341}</Project>
+ <Name>HMI.Base</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.Core\HMI.Core.csproj">
+ <Project>{3e3bf44a-0b69-45c5-9512-528cb48a7106}</Project>
+ <Name>HMI.Core</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.UI\HMI.UI.csproj">
+ <Project>{f17de6b5-af1d-48c6-94a0-6b763a6546a6}</Project>
+ <Name>HMI.UI</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/HMI.MenuManage/MenuManage.xaml b/HMI.MenuManage/MenuManage.xaml
new file mode 100644
index 0000000..0044f48
--- /dev/null
+++ b/HMI.MenuManage/MenuManage.xaml
@@ -0,0 +1,131 @@
+锘�<hb:PluginControl x:Class="HMI.MenuManage.MenuManage"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:hb="clr-namespace:HMI.Base;assembly=HMI.Base"
+ xmlns:local="clr-namespace:HMI.MenuManage"
+ xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ xmlns:dp="clr-namespace:HMI.UI;assembly=HMI.UI"
+ mc:Ignorable="d"
+ Padding="10"
+ Loaded="DataGrid_Loaded"
+ Background="{StaticResource WorkspaceBackground}"
+ d:DesignHeight="450" d:DesignWidth="800">
+ <UserControl.Resources>
+ <ResourceDictionary>
+ <ResourceDictionary.MergedDictionaries>
+ <pu:StyleDictionary Includes="TreeView" />
+ <ResourceDictionary Source="/HMI.UI;component/Style/PanuonResource.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+
+ <uic:PathImageConverter x:Key="path2Image"/>
+ <uic:DataGridRowNumberConverter x:Key="rowNumber"/>
+ </ResourceDictionary>
+ </UserControl.Resources>
+
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="7*"/>
+ <ColumnDefinition Width="3*"/>
+ </Grid.ColumnDefinitions>
+
+ <Border Style="{StaticResource CardBoarder}" Margin="0,0,2,0">
+ <StackPanel>
+ <DockPanel Margin="0,0,0,10">
+ <Button DockPanel.Dock="Right" pu:ButtonHelper.Icon="" Style="{StaticResource DangerButton}">鍒犻櫎</Button>
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
+pu:IconHelper.FontFamily="{StaticResource iconfont}"
+pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="refreshBtn" Click="Button_Click">鍒锋柊</Button>
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
+ pu:IconHelper.FontFamily="{StaticResource iconfont}"
+ pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="addBtn" Click="Button_Click">鏂板</Button>
+ <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}"
+ VerticalAlignment="Center" HorizontalAlignment="Left" Text="鑿滃崟鍒楄〃"/>
+ </DockPanel>
+
+ <DataGrid Grid.Column="1" x:Name="table" Style="{StaticResource DefaultDataGrid}" ItemsSource="{Binding DataSource}">
+ <DataGrid.Columns>
+ <DataGridTemplateColumn Header="" Width="Auto" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <CheckBox VerticalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTemplateColumn Header="#" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <TextBlock Text="{Binding Converter={StaticResource rowNumber},
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTextColumn Binding="{Binding Code}" Header="鑿滃崟缂栧彿" />
+ <DataGridTextColumn Binding="{Binding Name}" Header="鑿滃崟鍚嶇О" />
+ <DataGridTextColumn Binding="{Binding Level}" Header="绛夌骇" />
+ <DataGridTextColumn Binding="{Binding Type}" Header="绫诲瀷" />
+ <DataGridTextColumn Binding="{Binding Name}" Header="鑿滃崟鍚嶇О" />
+ <DataGridTextColumn Binding="{Binding ParentCode}" Header="鐖惰彍鍗曠紪鍙�" />
+ <DataGridTextColumn Binding="{Binding ParentName}" Header="鐖惰彍鍗曞悕绉�" />
+ <DataGridTextColumn Width="*" Binding="{Binding DllPath}" Header="Dll璺緞" />
+ <DataGridTextColumn Width="*" Binding="{Binding ClassName}" Header="绫诲悕" />
+ <DataGridTemplateColumn Header="鎿嶄綔" Width="100" IsReadOnly="True" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal">
+ <Button x:Name="editBtn" Style="{StaticResource LinkButton}"
+ Margin="0,0,10,0"
+ Click="Button_Click"
+ DataContext="{Binding }">缂栬緫</Button>
+ <Button x:Name="delBtn" Style="{StaticResource DangerLinkButton}"
+ DataContext="{Binding }"
+ Click="Button_Click">鍒犻櫎</Button>
+ </StackPanel>
+
+ <DataTemplate.Triggers>
+ <DataTrigger Binding="{Binding Path=IsMouseOver,
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
+ Value="True">
+ <Setter TargetName="editBtn" Property="Foreground" Value="#FFF"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Path=IsSelected,
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
+ Value="True">
+ <Setter TargetName="editBtn" Property="Foreground" Value="#FFF"/>
+ </DataTrigger>
+ </DataTemplate.Triggers>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ </DataGrid.Columns>
+ </DataGrid>
+ </StackPanel>
+ </Border>
+
+ <Border Grid.Column="1" Style="{StaticResource CardBoarder}" Margin="2,0,0,0">
+ <StackPanel>
+ <DockPanel Margin="0,0,0,10" >
+ <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}"
+ VerticalAlignment="Center" HorizontalAlignment="Left" Text="鑿滃崟缁撴瀯"/>
+ </DockPanel>
+
+ <TreeView x:Name="treeViewer" Style="{StaticResource DefaultTreeView}" ItemsSource="{Binding TreeDataSource}"
+ SelectedItemChanged="treeViewer_SelectedItemChanged">
+ <TreeView.ItemTemplate>
+ <HierarchicalDataTemplate ItemsSource="{Binding Children}">
+ <StackPanel Orientation="Horizontal" VerticalAlignment="Center">
+ <Image Width="{StaticResource ContentFontSize}" Height="{StaticResource ContentFontSize}" Margin="5"
+ Source="{Binding IconPath,Converter={StaticResource path2Image},Mode=OneWay}"/>
+ <TextBlock VerticalAlignment="Center" FontSize="{StaticResource ContentFontSize}" Text="{Binding Name}"/>
+ </StackPanel>
+ </HierarchicalDataTemplate>
+ </TreeView.ItemTemplate>
+ </TreeView>
+ </StackPanel>
+ </Border>
+ </Grid>
+</hb:PluginControl>
diff --git a/HMI.MenuManage/MenuManage.xaml.cs b/HMI.MenuManage/MenuManage.xaml.cs
new file mode 100644
index 0000000..25585e7
--- /dev/null
+++ b/HMI.MenuManage/MenuManage.xaml.cs
@@ -0,0 +1,149 @@
+锘縰sing System;
+using System.ComponentModel;
+using System.Runtime.CompilerServices;
+using System.Windows;
+using System.Windows.Controls;
+using HMI.Base;
+using HMI.MenuManage.Entity;
+using HMI.MenuManage.Model;
+using HMI.UI.Util;
+using log4net;
+
+namespace HMI.MenuManage
+{
+ /// <summary>
+ /// UserControl1.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class MenuManage : PluginControl
+ {
+ #region ...
+ public virtual event PropertyChangedEventHandler PropertyChanged;
+
+ protected virtual void RaisePropertyChanged(string name)
+ {
+
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
+ }
+
+ protected void RaiseAndSetIfChanged<T>(ref T old, T @new, [CallerMemberName] string propertyName = null)
+ {
+ old = @new;
+ if (propertyName != null)
+ {
+ RaisePropertyChanged(propertyName);
+ }
+ }
+ #endregion
+
+ #region 灞炴��
+ private MenuManageModel Model;
+ private ILog log;
+
+ #endregion
+
+ public MenuManage()
+ {
+ Model = new MenuManageModel();
+ this.DataContext = Model;
+ InitializeComponent();
+ }
+
+ #region 灞炴��
+
+ #endregion
+
+ private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
+ {
+ var btn = ((Button)sender);
+ if (btn.Name == "addBtn")
+ {
+ try
+ {
+ MenuModal window = new MenuModal
+ {
+ Title = "鏂板鑿滃崟",
+ sqliteHelper = Model.sqliteHelper,
+ Owner = Window.GetWindow(this)
+ };
+ if (true == window.Open(new MenuData()))
+ {
+ MenuData data = window.Data;
+ Model.LoadData();
+ }
+ }
+ catch (Exception ex)
+ {
+ log.Error("Add Menu Failed.", ex);
+ }
+ }
+ else if (btn.Name == "refreshBtn")
+ {
+ try
+ {
+ Model.LoadData();
+ }
+ catch (Exception ex)
+ {
+ log.Error("Refresh Menu List Failed.", ex);
+ }
+ }
+ else if (btn.Name == "deleteBtn") { }
+ else if (btn.Name == "editBtn")
+ {
+ try
+ {
+ var data = (MenuData)btn.DataContext;
+ MenuModal window = new MenuModal
+ {
+ Title = "缂栬緫鑿滃崟",
+ sqliteHelper = Model.sqliteHelper,
+ Owner = Window.GetWindow(this)
+ };
+ if (true == window.Open(data))
+ {
+ var newData = window.Data;
+ Model.LoadData();
+ }
+ }
+ catch (Exception ex)
+ {
+
+ log.Error("Edit Menu Failed.", ex);
+ }
+ }
+ else if (btn.Name == "delBtn")
+ {
+ try
+ {
+ var data = (MenuData)((Button)sender).DataContext;
+ var res = MsgBoxHelper.WarnMessage(Window.GetWindow(this), $"纭畾鍒犻櫎[{data.Name}]鍚楋紵璇ユ搷浣滀笉鍙�嗭紒");
+ if (res == MessageBoxResult.OK)
+ {
+ Model.DeleteMenuById(data.Id);
+ Model.LoadData();
+ }
+ }
+ catch (Exception ex)
+ {
+ log.Error("Delete Menu Failed.", ex);
+ }
+ }
+ }
+
+ private void DataGrid_Loaded(object sender, RoutedEventArgs e)
+ {
+ Model.LoadData();
+ Loaded -= DataGrid_Loaded;
+ }
+
+ private void treeViewer_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
+ {
+ table.SelectedItem = e.NewValue;
+ }
+
+ public void SetLogger(ILog logger)
+ {
+ this.log = logger;
+ }
+ }
+}
diff --git a/HMI.MenuManage/Modal/MenuModal.xaml b/HMI.MenuManage/Modal/MenuModal.xaml
new file mode 100644
index 0000000..310e995
--- /dev/null
+++ b/HMI.MenuManage/Modal/MenuModal.xaml
@@ -0,0 +1,98 @@
+锘�<pu:WindowX x:Class="HMI.MenuManage.MenuModal"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:local="clr-namespace:HMI.MenuManage"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ mc:Ignorable="d"
+ Title="Form"
+ SizeToContent="Height"
+ Width="600"
+ WindowStartupLocation="CenterOwner"
+ BorderBrush="#3E3E45"
+ BorderThickness="1"
+ Foreground="Black"
+ pu:WindowXCaption.Background="{StaticResource MainBorder}"
+ pu:WindowXModalDialog.ButtonStyle="{StaticResource ModalButton}"
+ pu:WindowXCaption.Foreground="#FFF"
+ pu:WindowXCaption.Buttons="Close"
+ pu:WindowXModalDialog.Buttons="OKCancel"
+ pu:WindowXModalDialog.CancelButtonContent="鍙栨秷"
+ pu:WindowXModalDialog.OKButtonContent="淇濆瓨"
+ pu:WindowXModalDialog.ButtonPanelMargin="0,30,10,10">
+ <Window.Resources>
+ <ResourceDictionary>
+ <ResourceDictionary.MergedDictionaries>
+ <ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/Colors.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+ </ResourceDictionary>
+ </Window.Resources>
+
+ <Grid Margin="10">
+ <StackPanel>
+ <pu:FormGroup x:Name="FgCode" Style="{StaticResource RequiredInputFormGroupStyle}"
+ Header="鑿滃崟缂栧彿" GroupName="MyFormGroup">
+ <TextBox x:Name="TbCode" Style="{StaticResource EditorTextBoxStyle}" />
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgName" Style="{StaticResource RequiredInputFormGroupStyle}"
+ Header="鑿滃崟鍚嶇О" GroupName="MyFormGroup">
+ <TextBox x:Name="TbName" Style="{StaticResource EditorTextBoxStyle}" />
+ </pu:FormGroup>
+ <pu:FormGroup x:Name="FgIcon" Style="{StaticResource RequiredInputFormGroupStyle}" Header="鍥炬爣" GroupName="MyFormGroup">
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition />
+ <ColumnDefinition Width="30" />
+ </Grid.ColumnDefinitions>
+ <TextBox x:Name="TbIcon" IsReadOnly="True" Style="{StaticResource EditorTextBoxStyle}" />
+ <Button Grid.Column="1" BorderThickness="0,1,1,1" Style="{StaticResource SearchButton}"
+ Click="IconSelect_Click"/>
+ </Grid>
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgLevel" Style="{StaticResource RequiredInputFormGroupStyle}" Header="绾у埆" GroupName="MyFormGroup">
+ <ComboBox x:Name="TbLevel" Style="{StaticResource FormComboxStyle}">
+ <ComboBoxItem>1</ComboBoxItem>
+ <ComboBoxItem>2</ComboBoxItem>
+ </ComboBox>
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgType" Style="{StaticResource RequiredInputFormGroupStyle}" Header="绫诲瀷" GroupName="MyFormGroup">
+ <ComboBox x:Name="TbType" Style="{StaticResource FormComboxStyle}">
+ <ComboBoxItem>WPF</ComboBoxItem>
+ <ComboBoxItem>LV</ComboBoxItem>
+ </ComboBox>
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgParentCode" Style="{StaticResource RequiredInputFormGroupStyle}" Header="涓婄骇鑿滃崟" GroupName="MyFormGroup">
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition />
+ <ColumnDefinition Width="30" />
+ </Grid.ColumnDefinitions>
+ <TextBox x:Name="TbParentCode" Style="{StaticResource EditorTextBoxStyle}" />
+ <Button Grid.Column="1" Style="{StaticResource SearchButton}"/>
+ </Grid>
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgDllPath" Style="{StaticResource RequiredInputFormGroupStyle}" Header="Dll鏂囦欢" GroupName="MyFormGroup">
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition />
+ <ColumnDefinition Width="30" />
+ </Grid.ColumnDefinitions>
+ <TextBox x:Name="TbDllPath" IsReadOnly="True" Style="{StaticResource EditorTextBoxStyle}" />
+ <Button Grid.Column="1" Click="DllSelect_Click" Style="{StaticResource SearchButton}"/>
+ </Grid>
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgClassName" Style="{StaticResource RequiredInputFormGroupStyle}" Header="绫诲悕" GroupName="MyFormGroup">
+ <TextBox x:Name="TbClassName" Style="{StaticResource EditorTextBoxStyle}" />
+ </pu:FormGroup>
+ </StackPanel>
+ </Grid>
+</pu:WindowX>
diff --git a/HMI.MenuManage/Modal/MenuModal.xaml.cs b/HMI.MenuManage/Modal/MenuModal.xaml.cs
new file mode 100644
index 0000000..173b514
--- /dev/null
+++ b/HMI.MenuManage/Modal/MenuModal.xaml.cs
@@ -0,0 +1,298 @@
+锘縰sing System;
+using System.ComponentModel;
+using System.Reflection;
+using System.Windows;
+using Microsoft.Win32;
+using Panuon.WPF.UI;
+using HMI.Core.Annotation;
+using HMI.Core.Entity;
+using HMI.Core.Exceptions;
+using HMI.Core.Util;
+using HMI.MenuManage.Entity;
+
+namespace HMI.MenuManage
+{
+ /// <summary>
+ /// ModalWindow.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class MenuModal : WindowX
+ {
+ public MenuModal()
+ {
+ InitializeComponent();
+ }
+
+ public MenuData Data { get; set; }
+ public SqliteHelper sqliteHelper { get; set; }
+
+ private bool _isProcessing;
+
+ protected override void OnClosing(CancelEventArgs e)
+ {
+ //Press Continue Button
+ if (DialogResult == true)
+ {
+ if (_isProcessing)
+ {
+ e.Cancel = true;
+ return;
+ }
+ var okButton = WindowXModalDialog.GetOKButton(this);
+ try
+ {
+ _isProcessing = true;
+ ButtonHelper.SetIsPending(okButton, true);
+ if (!ValidateForm())
+ {
+ e.Cancel = true;
+ return;
+ }
+
+ SaveOrUpdateData();
+ }
+ catch (Exception ex)
+ {
+ Panuon.WPF.UI.Toast.Show(this, "Error锛�", ToastPosition.Top);
+ e.Cancel = true;
+ return;
+ }
+ finally
+ {
+ _isProcessing = false;
+ ButtonHelper.SetIsPending(okButton, false);
+ }
+ }
+ base.OnClosing(e);
+ }
+
+ private bool ValidateForm()
+ {
+ try
+ {
+ FormValidateException ex = new FormValidateException();
+ string segment = string.IsNullOrEmpty(Data.Id) ? "" : $" AND id!='{Data.Id}'";
+ string sql = $"SELECT 1 FROM menu WHERE code='{TbCode.Text}'{segment};";
+ if (string.IsNullOrEmpty(TbCode.Text))
+ {
+ ex.Result.Add(new FormGroupValidateResult("璇疯緭鍏ヨ彍鍗曠紪鍙�", FgCode));
+ }
+ else if (sqliteHelper.HasData(sql))
+ {
+ ex.Result.Add(new FormGroupValidateResult("鑿滃崟缂栧彿涓嶈兘閲嶅", FgCode));
+ }
+ else
+ {
+ FgCode.ValidateResult = ValidateResult.None;
+ FgCode.Message = null;
+ }
+
+ if (string.IsNullOrEmpty(TbName.Text))
+ {
+ ex.Result.Add(new FormGroupValidateResult("璇疯緭鍏ヨ彍鍗曞悕绉�", FgName));
+ }
+ else
+ {
+ FgName.ValidateResult = ValidateResult.None;
+ FgName.Message = null;
+ }
+
+ if(string.IsNullOrEmpty(TbIcon.Text))
+ {
+ ex.Result.Add(new FormGroupValidateResult("璇烽�夋嫨鑿滃崟鍥炬爣", FgIcon));
+ }
+ else
+ {
+ FgIcon.ValidateResult = ValidateResult.None;
+ FgIcon.Message = null;
+ }
+
+ if (string.IsNullOrEmpty(TbLevel.Text))
+ {
+ ex.Result.Add(new FormGroupValidateResult("璇烽�夋嫨鑿滃崟绾у埆", FgLevel));
+ }
+ else
+ {
+ FgLevel.ValidateResult = ValidateResult.None;
+ FgLevel.Message = null;
+ }
+
+ if (TbLevel.Text == "2")
+ {
+ if (string.IsNullOrEmpty(TbType.Text))
+ {
+ ex.Result.Add(new FormGroupValidateResult("璇烽�夋嫨鑿滃崟绫诲瀷", FgType));
+ }
+ else
+ {
+ FgType.ValidateResult = ValidateResult.None;
+ FgType.Message = null;
+ }
+
+ if (string.IsNullOrEmpty(TbParentCode.Text))
+ {
+ ex.Result.Add(new FormGroupValidateResult("璇烽�夋嫨涓婄骇鑿滃崟", FgParentCode));
+ }
+ else
+ {
+ FgParentCode.ValidateResult = ValidateResult.None;
+ FgParentCode.Message = null;
+ }
+
+ if (string.IsNullOrEmpty(TbDllPath.Text))
+ {
+ ex.Result.Add(new FormGroupValidateResult("璇烽�夋嫨Dll璺緞", FgDllPath));
+ }
+ else
+ {
+ FgDllPath.ValidateResult = ValidateResult.None;
+ FgDllPath.Message = null;
+ }
+
+ if (string.IsNullOrEmpty(TbClassName.Text))
+ {
+ ex.Result.Add(new FormGroupValidateResult("璇疯緭鍏ョ被鍚�", FgClassName));
+ }
+ else
+ {
+ FgClassName.ValidateResult = ValidateResult.None;
+ FgClassName.Message = null;
+ }
+
+ }
+ else {
+
+ }
+
+ if (!ex.Success) {
+ throw ex;
+ }
+ }
+ catch (FormValidateException ex)
+ {
+ foreach (var data in ex.Result)
+ {
+ var fg = (FormGroup)data.Sender;
+ fg.ValidateResult = ValidateResult.Error;
+ fg.Message = data.Message;
+ }
+ return false;
+ }
+
+ Data.Code = TbCode.Text;
+ Data.Name = TbName.Text;
+ Data.IconPath = TbIcon.Text;
+ Data.Level = TbLevel.Text;
+ Data.Type = TbType.Text;
+ Data.ParentCode = TbParentCode.Text;
+ Data.DllPath = TbDllPath.Text;
+ Data.ClassName = TbClassName.Text;
+ return true;
+ }
+
+ public bool? Open(MenuData data)
+ {
+ Data = data;
+ TbCode.Text = Data.Code;
+ TbName.Text = Data.Name;
+ TbIcon.Text = Data.IconPath;
+ TbLevel.SelectedValue = Data.Level;
+ TbType.SelectedValue = Data.Type;
+ TbParentCode.Text = Data.ParentCode;
+ TbDllPath.Text = Data.DllPath;
+ TbClassName.Text = Data.ClassName;
+ return this.ShowDialog();
+ }
+
+ private void SaveOrUpdateData()
+ {
+ if (string.IsNullOrEmpty(Data.Id))
+ {
+ InsertMenu(Data);
+ }
+ else
+ {
+ UpdateMenu(Data);
+ }
+ }
+
+ public void InsertMenu(MenuData data)
+ {
+ string sql = $@"INSERT INTO menu (code,name,iconPath,level,type,parentCode,dllPath,className)
+ VALUES
+ ('{data.Code}','{data.Name}','{data.IconPath}','{data.Level}','{data.Type}','{data.ParentCode}',
+ '{data.DllPath}','{data.ClassName}');";
+ sqliteHelper.ExecuteSql(sql);
+ }
+
+ public void UpdateMenu(MenuData data)
+ {
+ string sql = $@"UPDATE menu SET code='{data.Code}',name='{data.Name}',
+iconPath='{data.IconPath}',level='{data.Level}',type='{data.Type}',parentCode='{data.ParentCode}',
+dllPath='{data.DllPath}',className='{data.ClassName}' WHERE id='{data.Id}';";
+ sqliteHelper.ExecuteSql(sql);
+ }
+
+
+ private void IconSelect_Click(object sender, RoutedEventArgs e)
+ {
+ string BasePath = PathHelper.IconFolder;
+
+ OpenFileDialog openFileDialog = new OpenFileDialog();
+ openFileDialog.Filter = "(*.*)|*.*";
+ openFileDialog.InitialDirectory = BasePath;
+ openFileDialog.Title = "閫夋嫨鍥剧墖";
+ openFileDialog.Multiselect = false;
+
+ if (openFileDialog.ShowDialog() == true)
+ {
+ string FileName = openFileDialog.FileName;
+ if (!FileName.StartsWith(BasePath))
+ {
+ Panuon.WPF.UI.Toast.Show(this, "璇峰皢鍥炬爣绉诲姩鑷崇▼搴廔con鐩綍涓嬶紒", ToastPosition.Top);
+ }
+ else
+ {
+ TbIcon.Text = FileName.Replace(BasePath, ".");
+ }
+ }
+
+ }
+
+ private void DllSelect_Click(object sender, RoutedEventArgs e)
+ {
+ string pluginPath = PathHelper.PluginFolder();
+
+ OpenFileDialog openFileDialog = new OpenFileDialog();
+ openFileDialog.Filter = "(*.dll)|*.dll";
+ openFileDialog.InitialDirectory = pluginPath;
+ openFileDialog.Title = "閫夋嫨鏂囦欢";
+ openFileDialog.Multiselect = false;
+
+ if (openFileDialog.ShowDialog() == true)
+ {
+ string FileName = openFileDialog.FileName;
+ if (!FileName.StartsWith(pluginPath))
+ {
+ Panuon.WPF.UI.Toast.Show(this, "璇峰皢鎻掍欢绉诲姩鑷崇▼搴廝lugin鐩綍涓嬶紒", ToastPosition.Top);
+ }
+ else
+ {
+ TbDllPath.Text = FileName.Replace(pluginPath, ".");
+ try
+ {
+ object[] infos = Assembly.LoadFrom(FileName).GetCustomAttributes(typeof(PluginClassNameAttribute), false);
+ if (infos != null && infos.Length > 0)
+ {
+ PluginClassNameAttribute attr = (PluginClassNameAttribute)infos[0];
+ TbClassName.Text = attr.ClassName;
+ }
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/HMI.MenuManage/Modal/RoleModal.xaml b/HMI.MenuManage/Modal/RoleModal.xaml
new file mode 100644
index 0000000..734f03e
--- /dev/null
+++ b/HMI.MenuManage/Modal/RoleModal.xaml
@@ -0,0 +1,69 @@
+锘�<pu:WindowX x:Class="HMI.MenuManage.RoleModal"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:local="clr-namespace:HMI.MenuManage"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ mc:Ignorable="d"
+ Title="Form"
+ SizeToContent="Height"
+ Width="600"
+ WindowStartupLocation="CenterOwner"
+ BorderBrush="#3E3E45"
+ BorderThickness="1"
+ Foreground="Black"
+ pu:WindowXCaption.Background="{StaticResource MainBorder}"
+ pu:WindowXCaption.Foreground="#FFF"
+ pu:WindowXCaption.Buttons="Close"
+ pu:WindowXModalDialog.Buttons="OKCancel"
+ pu:WindowXModalDialog.CancelButtonContent="鍙栨秷"
+ pu:WindowXModalDialog.OKButtonContent="淇濆瓨"
+ pu:WindowXModalDialog.ButtonStyle="{StaticResource ModalButton}"
+ pu:WindowXModalDialog.ButtonPanelMargin="0,30,10,10">
+ <Window.Resources>
+ <ResourceDictionary>
+ <ResourceDictionary.MergedDictionaries>
+ <pu:StyleDictionary Includes="TextBox,ComboBox,Button" />
+ <ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/Colors.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/FormStyle.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/PanuonResource.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+ </ResourceDictionary>
+ </Window.Resources>
+
+ <Grid Margin="10">
+ <StackPanel>
+ <pu:FormGroup x:Name="FgCode" Style="{StaticResource RequiredInputFormGroupStyle}"
+ Header="瑙掕壊缂栧彿" GroupName="MyFormGroup">
+ <TextBox x:Name="TbCode" Style="{StaticResource EditorTextBoxStyle}" />
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgName" Style="{StaticResource RequiredInputFormGroupStyle}"
+ Header="瑙掕壊鍚嶇О" GroupName="MyFormGroup">
+ <TextBox x:Name="TbName" Style="{StaticResource EditorTextBoxStyle}" />
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgMenu" Orientation="Vertical" Style="{StaticResource RequiredInputFormGroupStyle}"
+ Header="鏉冮檺" GroupName="MyFormGroup">
+ <TreeView x:Name="menuTree" Grid.Column="1" Style="{StaticResource DefaultTreeView}"
+ ItemsSource="{Binding TreeDataSource}">
+ <TreeView.ItemTemplate>
+ <HierarchicalDataTemplate ItemsSource="{Binding Children}">
+ <StackPanel Orientation="Horizontal" VerticalAlignment="Center">
+ <CheckBox VerticalAlignment="Center" IsChecked="{Binding Selected}"
+Command="{Binding CheckCommand}"
+CommandParameter="{Binding Path=IsChecked,RelativeSource={RelativeSource Mode=Self}}"/>
+ <Image Width="{StaticResource ContentFontSize}"
+ Height="{StaticResource ContentFontSize}" Margin="5" Source="{Binding MenuIcon,Converter={StaticResource path2Image},Mode=OneWay}"/>
+ <TextBlock VerticalAlignment="Center" Text="{Binding MenuName}"/>
+ </StackPanel>
+ </HierarchicalDataTemplate>
+ </TreeView.ItemTemplate>
+ </TreeView>
+ </pu:FormGroup>
+ </StackPanel>
+ </Grid>
+</pu:WindowX>
diff --git a/HMI.MenuManage/Modal/RoleModal.xaml.cs b/HMI.MenuManage/Modal/RoleModal.xaml.cs
new file mode 100644
index 0000000..623a728
--- /dev/null
+++ b/HMI.MenuManage/Modal/RoleModal.xaml.cs
@@ -0,0 +1,168 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.ComponentModel;
+using System.Reflection;
+using System.Windows;
+using Microsoft.Win32;
+using Panuon.WPF.UI;
+using HMI.Core.Annotation;
+using HMI.Core.Entity;
+using HMI.Core.Exceptions;
+using HMI.Core.Util;
+using HMI.MenuManage.Entity;
+using HMI.MenuManage.Util;
+
+namespace HMI.MenuManage
+{
+ /// <summary>
+ /// ModalWindow.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class RoleModal : WindowX
+ {
+ public RoleModal()
+ {
+ this.DataContext = this;
+ InitializeComponent();
+ }
+
+ public RoleData Data { get; set; }
+
+ private ObservableCollection<RoleMenuRel> _TreeDataSource;
+
+ public ObservableCollection<RoleMenuRel> TreeDataSource
+ {
+ get { return _TreeDataSource; }
+ set { Set(ref _TreeDataSource, value); }
+ }
+
+ public SqliteHelper sqliteHelper { get; set; }
+
+ private bool _isProcessing;
+
+ protected override void OnClosing(CancelEventArgs e)
+ {
+ //Press Continue Button
+ if (DialogResult == true)
+ {
+ if (_isProcessing)
+ {
+ e.Cancel = true;
+ return;
+ }
+ var okButton = WindowXModalDialog.GetOKButton(this);
+ try
+ {
+ _isProcessing = true;
+ ButtonHelper.SetIsPending(okButton, true);
+ if (!ValidateForm())
+ {
+ e.Cancel = true;
+ return;
+ }
+
+ SaveOrUpdateData();
+ }
+ catch (Exception ex)
+ {
+ Panuon.WPF.UI.Toast.Show(this, "Error锛�", ToastPosition.Top);
+ e.Cancel = true;
+ return;
+ }
+ finally
+ {
+ _isProcessing = false;
+ ButtonHelper.SetIsPending(okButton, false);
+ }
+ }
+ base.OnClosing(e);
+ }
+
+ private bool ValidateForm()
+ {
+ try
+ {
+ FormValidateException ex = new FormValidateException();
+ string segment = string.IsNullOrEmpty(Data.Id) ? "" : $" AND id!='{Data.Id}'";
+ string sql = $"SELECT 1 FROM user WHERE username='{TbCode.Text}'{segment};";
+ if (string.IsNullOrEmpty(TbCode.Text))
+ {
+ ex.Result.Add(new FormGroupValidateResult("璇疯緭鍏ヨ鑹茬紪鍙�", FgCode));
+ }
+ else if (sqliteHelper.HasData(sql))
+ {
+ ex.Result.Add(new FormGroupValidateResult("瑙掕壊缂栧彿涓嶈兘閲嶅", FgCode));
+ }
+ else
+ {
+ FgCode.ValidateResult = ValidateResult.None;
+ FgCode.Message = null;
+ }
+
+ if (string.IsNullOrEmpty(TbName.Text))
+ {
+ ex.Result.Add(new FormGroupValidateResult("璇疯緭鍏ヨ鑹插悕绉�", FgName));
+ }
+ else
+ {
+ FgName.ValidateResult = ValidateResult.None;
+ FgName.Message = null;
+ }
+
+ if (!ex.Success)
+ {
+ throw ex;
+ }
+ }
+ catch (FormValidateException ex)
+ {
+ foreach (var data in ex.Result)
+ {
+ var fg = (FormGroup)data.Sender;
+ fg.ValidateResult = ValidateResult.Error;
+ fg.Message = data.Message;
+ }
+ return false;
+ }
+
+ Data.Code = TbCode.Text;
+ Data.Name = TbName.Text;
+ return true;
+ }
+
+ public bool? Open(RoleData data)
+ {
+ Data = data;
+ TbCode.Text = Data.Code;
+ TbName.Text = Data.Name;
+ TreeDataSource = RoleMenuHelper.SelectRoleMenuTreeData(sqliteHelper, Data.Code);
+ return this.ShowDialog();
+ }
+
+ private void SaveOrUpdateData()
+ {
+ if (string.IsNullOrEmpty(Data.Id))
+ {
+ InsertData(Data);
+ }
+ else
+ {
+ UpdateData(Data);
+ }
+ }
+
+ public void InsertData(RoleData data)
+ {
+ string sql = $@"INSERT INTO role (code,name)
+ VALUES
+ ('{data.Code}','{data.Name}');";
+ RoleMenuHelper.SaveRelData(sqliteHelper, TreeDataSource, data.Code, sql, null);
+ }
+
+ public void UpdateData(RoleData data)
+ {
+ string sql = $@"UPDATE role SET code='{data.Code}',name='{data.Name}' WHERE id='{data.Id}';";
+ RoleMenuHelper.SaveRelData(sqliteHelper, TreeDataSource, data.Code, sql, null);
+ }
+ }
+}
diff --git a/HMI.MenuManage/Modal/UserModal.xaml b/HMI.MenuManage/Modal/UserModal.xaml
new file mode 100644
index 0000000..6556a6f
--- /dev/null
+++ b/HMI.MenuManage/Modal/UserModal.xaml
@@ -0,0 +1,81 @@
+锘�<pu:WindowX x:Class="HMI.MenuManage.UserModal"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:local="clr-namespace:HMI.MenuManage"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
+ mc:Ignorable="d"
+ Title="Form"
+ SizeToContent="Height"
+ Width="600"
+ WindowStartupLocation="CenterOwner"
+ BorderBrush="#3E3E45"
+ BorderThickness="1"
+ Foreground="Black"
+ pu:WindowXCaption.Background="{StaticResource MainBorder}"
+ pu:WindowXModalDialog.ButtonStyle="{StaticResource ModalButton}"
+ pu:WindowXCaption.Foreground="#FFF"
+ pu:WindowXCaption.Buttons="Close"
+ pu:WindowXModalDialog.Buttons="OKCancel"
+ pu:WindowXModalDialog.CancelButtonContent="鍙栨秷"
+ pu:WindowXModalDialog.OKButtonContent="淇濆瓨"
+ pu:WindowXModalDialog.ButtonPanelMargin="0,30,10,10">
+ <Window.Resources>
+ <ResourceDictionary>
+ <ResourceDictionary.MergedDictionaries>
+ <pu:StyleDictionary Includes="TreeView" />
+ <ResourceDictionary Source="/HMI.UI;component/Style/PanuonResource.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/Colors.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+ <uic:PathImageConverter x:Key="path2Image"/>
+ <uic:DataGridRowNumberConverter x:Key="rowNumber"/>
+ </ResourceDictionary>
+ </Window.Resources>
+
+ <Grid Margin="10">
+ <StackPanel>
+ <pu:FormGroup x:Name="FgName" Style="{StaticResource RequiredInputFormGroupStyle}"
+ Header="鐢ㄦ埛鍚嶇О" GroupName="MyFormGroup">
+ <TextBox x:Name="TbName" Style="{StaticResource EditorTextBoxStyle}" />
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgUsername" Style="{StaticResource RequiredInputFormGroupStyle}"
+ Header="璐﹀彿" GroupName="MyFormGroup">
+ <TextBox x:Name="TbUsername" Style="{StaticResource EditorTextBoxStyle}" />
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgPassword" Style="{StaticResource RequiredInputFormGroupStyle}"
+ Header="瀵嗙爜" GroupName="MyFormGroup">
+ <TextBox x:Name="TbPassword" Style="{StaticResource EditorTextBoxStyle}" />
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgRoleCode" Orientation="Vertical"
+ Style="{StaticResource RequiredInputFormGroupStyle}" Header="瑙掕壊" GroupName="MyFormGroup">
+ <DataGrid x:Name="table" Style="{StaticResource DefaultDataGrid}" SelectionMode="Single"
+ ItemsSource="{Binding Roles}">
+ <DataGrid.Columns>
+ <DataGridTemplateColumn Header="鎺堜簣" Width="Auto" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <CheckBox VerticalAlignment="Center"
+ HorizontalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+
+ <DataGridTextColumn Header="#"
+ Binding="{Binding Converter={StaticResource rowNumber},
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
+ CanUserResize="False"/>
+ <DataGridTextColumn Width="*" Binding="{Binding RoleCode}" Header="瑙掕壊缂栧彿" />
+ <DataGridTextColumn Width="*" Binding="{Binding RoleName}" Header="瑙掕壊鍚嶇О" />
+ </DataGrid.Columns>
+ </DataGrid>
+ </pu:FormGroup>
+ </StackPanel>
+ </Grid>
+</pu:WindowX>
diff --git a/HMI.MenuManage/Modal/UserModal.xaml.cs b/HMI.MenuManage/Modal/UserModal.xaml.cs
new file mode 100644
index 0000000..04cef20
--- /dev/null
+++ b/HMI.MenuManage/Modal/UserModal.xaml.cs
@@ -0,0 +1,173 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.ComponentModel;
+using System.Linq;
+using System.Reflection;
+using System.Windows;
+using Microsoft.Win32;
+using Panuon.WPF.UI;
+using HMI.Core.Annotation;
+using HMI.Core.Entity;
+using HMI.Core.Exceptions;
+using HMI.Core.Util;
+using HMI.MenuManage.Entity;
+using HMI.MenuManage.Util;
+
+namespace HMI.MenuManage
+{
+ /// <summary>
+ /// ModalWindow.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class UserModal : WindowX
+ {
+ public UserModal()
+ {
+ this.DataContext = this;
+ InitializeComponent();
+ }
+
+ public UserData Data { get; set; }
+ private ObservableCollection<UserRoleRel> _Roles;
+ public ObservableCollection<UserRoleRel> Roles
+ {
+ get => _Roles;
+ set { Set(ref _Roles, value); }
+ }
+ public SqliteHelper sqliteHelper { get; set; }
+
+ private bool _isProcessing;
+
+ protected override void OnClosing(CancelEventArgs e)
+ {
+ //Press Continue Button
+ if (DialogResult == true)
+ {
+ if (_isProcessing)
+ {
+ e.Cancel = true;
+ return;
+ }
+ var okButton = WindowXModalDialog.GetOKButton(this);
+ try
+ {
+ _isProcessing = true;
+ ButtonHelper.SetIsPending(okButton, true);
+ if (!ValidateForm())
+ {
+ e.Cancel = true;
+ return;
+ }
+
+ SaveOrUpdateData();
+ }
+ catch (Exception ex)
+ {
+ Panuon.WPF.UI.Toast.Show(this, "Error锛�", ToastPosition.Top);
+ e.Cancel = true;
+ return;
+ }
+ finally
+ {
+ _isProcessing = false;
+ ButtonHelper.SetIsPending(okButton, false);
+ }
+ }
+ base.OnClosing(e);
+ }
+
+ private bool ValidateForm()
+ {
+ try
+ {
+ FormValidateException ex = new FormValidateException();
+ string segment = string.IsNullOrEmpty(Data.Id) ? "" : $" AND id!='{Data.Id}'";
+ string sql = $"SELECT 1 FROM user WHERE username='{TbUsername.Text}'{segment};";
+ if (string.IsNullOrEmpty(TbUsername.Text))
+ {
+ ex.Result.Add(new FormGroupValidateResult("璇疯緭鍏ヨ处鍙�", FgUsername));
+ }
+ else if (sqliteHelper.HasData(sql))
+ {
+ ex.Result.Add(new FormGroupValidateResult("璐﹀彿涓嶈兘閲嶅", FgUsername));
+ }
+ else
+ {
+ FgUsername.ValidateResult = ValidateResult.None;
+ FgUsername.Message = null;
+ }
+
+ if (string.IsNullOrEmpty(TbName.Text))
+ {
+ ex.Result.Add(new FormGroupValidateResult("璇疯緭鍏ョ敤鎴峰悕绉�", FgName));
+ }
+ else
+ {
+ FgName.ValidateResult = ValidateResult.None;
+ FgName.Message = null;
+ }
+
+ if (!ex.Success)
+ {
+ throw ex;
+ }
+ }
+ catch (FormValidateException ex)
+ {
+ foreach (var data in ex.Result)
+ {
+ var fg = (FormGroup)data.Sender;
+ fg.ValidateResult = ValidateResult.Error;
+ fg.Message = data.Message;
+ }
+ return false;
+ }
+
+ Data.Username = TbUsername.Text;
+ Data.Name = TbName.Text;
+ Data.Password = TbPassword.Text;
+ return true;
+ }
+
+ public bool? Open(UserData data)
+ {
+ Data = data;
+ TbUsername.Text = Data.Username;
+ TbName.Text = Data.Name;
+ TbPassword.Text = Data.Password;
+
+ Roles = UserRoleRelHelper.SelectUserRoleData(sqliteHelper, Data.Username);
+
+ return this.ShowDialog();
+ }
+
+ private void SaveOrUpdateData()
+ {
+ if (string.IsNullOrEmpty(Data.Id))
+ {
+ InsertData(Data);
+ }
+ else
+ {
+ UpdateData(Data);
+ }
+ }
+
+ public void InsertData(UserData data)
+ {
+ string sql = $@"INSERT INTO user (username,password,name)
+ VALUES
+ ('{data.Username}','{data.Password}','{data.Name}');";
+ UserRoleRelHelper.SaveUserRoleRel(sqliteHelper, Roles, data, sql, null);
+ }
+
+
+
+ public void UpdateData(UserData data)
+ {
+ string sql = $@"UPDATE user SET username='{data.Username}',password='{data.Password}',name='{data.Name}'
+WHERE id='{data.Id}';";
+ UserRoleRelHelper.SaveUserRoleRel(sqliteHelper, Roles, data, sql, null);
+ }
+ }
+}
diff --git a/HMI.MenuManage/Model/MenuManageModel.cs b/HMI.MenuManage/Model/MenuManageModel.cs
new file mode 100644
index 0000000..da797c0
--- /dev/null
+++ b/HMI.MenuManage/Model/MenuManageModel.cs
@@ -0,0 +1,110 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Data;
+using System.IO;
+using HMI.Core.Entity;
+using HMI.Core.Util;
+using HMI.MenuManage.Entity;
+
+namespace HMI.MenuManage.Model
+{
+ public class MenuManageModel : NotifyBase
+ {
+ public SqliteHelper sqliteHelper;
+
+ private ObservableCollection<MenuData> _DataSource;
+
+ public ObservableCollection<MenuData> DataSource
+ {
+ get => _DataSource;
+ set
+ {
+ Set(ref _DataSource, value);
+ Set(nameof(DataSourceCount));
+ }
+ }
+
+ public int DataSourceCount { get => DataSource?.Count ?? 0; }
+
+
+ private ObservableCollection<MenuData> _TreeDataSource;
+
+ public ObservableCollection<MenuData> TreeDataSource
+ {
+ get => _TreeDataSource;
+ set { Set(ref _TreeDataSource, value); }
+ }
+
+ public MenuManageModel()
+ {
+ if (!File.Exists(PathHelper.DatabasePath))
+ {
+ SqliteHelper.CreateDatabase(PathHelper.DatabasePath);
+ }
+ sqliteHelper = new SqliteHelper(PathHelper.DatabasePath);
+ sqliteHelper.ExecuteSql(@"CREATE TABLE IF NOT EXISTS menu (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ code TEXT NOT NULL,
+ name TEXT NOT NULL,
+ iconPath TEXT,
+ level TEXT,
+ type TEXT,
+ parentCode TEXT,
+ dllPath TEXT,
+ className TEXT,
+ UNIQUE(code)
+ );");
+ }
+
+ public void LoadData()
+ {
+ ObservableCollection<MenuData> data = new ObservableCollection<MenuData>();
+ ObservableCollection<MenuData> treeData = new ObservableCollection<MenuData>();
+ DataTable dt = sqliteHelper.GetDataTable("SELECT m1.*,m2.name AS parentName FROM menu AS m1 LEFT JOIN menu AS m2 ON m1.parentCode = m2.code Order By m1.id;");
+ Dictionary<string, MenuData> cache = new Dictionary<string, MenuData>();
+ if (dt != null)
+ {
+ foreach (DataRow dr in dt.Rows)
+ {
+ var menu = new MenuData
+ {
+ Id = dr["id"].ToString(),
+ Code = dr["code"].ToString(),
+ Name = dr["name"].ToString(),
+ IconPath = dr["iconPath"].ToString(),
+ Level = dr["level"].ToString(),
+ Type = dr["type"].ToString(),
+ ParentCode = dr["parentCode"].ToString(),
+ ParentName = dr["parentName"].ToString(),
+ DllPath = dr["dllPath"].ToString(),
+ ClassName = dr["className"].ToString()
+ };
+ data.Add(menu);
+ if (menu.Level == "1")
+ {
+ treeData.Add(menu);
+ }
+ cache.Add(menu.Code, menu);
+ }
+
+ foreach (var menu in data)
+ {
+ if (!string.IsNullOrEmpty(menu.ParentCode) && menu.ParentCode != menu.Code)
+ {
+ cache[menu.ParentCode].Children.Add(menu);
+ }
+ }
+ }
+
+ TreeDataSource = treeData;
+ DataSource = data;
+ }
+
+ public void DeleteMenuById(string id)
+ {
+ string sql = $"DELETE FROM menu WHERE id = {id}";
+ sqliteHelper.ExecuteSql(sql);
+ }
+ }
+}
diff --git a/HMI.MenuManage/Model/RoleManageModel.cs b/HMI.MenuManage/Model/RoleManageModel.cs
new file mode 100644
index 0000000..5ca0cbf
--- /dev/null
+++ b/HMI.MenuManage/Model/RoleManageModel.cs
@@ -0,0 +1,110 @@
+锘縰sing System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Data;
+using System.IO;
+using HMI.Core.Entity;
+using HMI.Core.Util;
+using HMI.MenuManage.Entity;
+using HMI.MenuManage.Util;
+
+namespace HMI.MenuManage.Model
+{
+ public class RoleManageModel : NotifyBase
+ {
+ public SqliteHelper sqliteHelper;
+
+ private ObservableCollection<RoleData> _DataSource;
+
+ public ObservableCollection<RoleData> DataSource
+ {
+ get { return _DataSource; }
+ set { Set(ref _DataSource, value); }
+ }
+
+ private RoleData _SelectedValue;
+ public RoleData SelectedValue
+ {
+ get => _SelectedValue;
+ set
+ {
+ Set(ref _SelectedValue, value);
+ LoadRelData(value);
+ }
+ }
+
+ private ObservableCollection<RoleMenuRel> _TreeDataSource;
+
+ public ObservableCollection<RoleMenuRel> TreeDataSource
+ {
+ get { return _TreeDataSource; }
+ set { Set(ref _TreeDataSource, value); }
+ }
+
+ public RoleManageModel()
+ {
+ if (!File.Exists(PathHelper.DatabasePath))
+ {
+ SqliteHelper.CreateDatabase(PathHelper.DatabasePath);
+ }
+ sqliteHelper = new SqliteHelper(PathHelper.DatabasePath);
+ sqliteHelper.ExecuteSql(@"CREATE TABLE IF NOT EXISTS role (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ code TEXT NOT NULL,
+ name TEXT,
+ UNIQUE(code)
+ );
+CREATE TABLE IF NOT EXISTS role_menu_rel (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ roleCode TEXT NOT NULL,
+ menuCode TEXT NOT NULL,
+ UNIQUE(roleCode,menuCode)
+ );
+");
+ }
+
+ public void LoadData()
+ {
+ ObservableCollection<RoleData> data = new ObservableCollection<RoleData>();
+ DataTable dt = sqliteHelper.GetDataTable("SELECT * FROM role Order By id;");
+ if (dt != null)
+ {
+ foreach (DataRow dr in dt.Rows)
+ {
+ var menu = new RoleData
+ {
+ Id = dr["id"].ToString(),
+ Code = dr["code"].ToString(),
+ Name = dr["name"].ToString()
+ };
+ data.Add(menu);
+ }
+ }
+ DataSource = data;
+ }
+
+ public void LoadRelData(RoleData data)
+ {
+ if (data == null)
+ {
+ TreeDataSource.Clear();
+ return;
+ }
+ TreeDataSource = RoleMenuHelper.SelectRoleMenuTreeData(sqliteHelper, data.Code);
+ }
+
+ public void DelSingleData(RoleData data)
+ {
+ sqliteHelper.ExecuteBatchSql(new List<string>{
+ $"DELETE FROM role WHERE id = '{data.Id}'",
+ $"DELETE FROM role_menu_rel WHERE roleCode = '{data.Code}'",
+ $"DELETE FROM user_role_rel WHERE roleCode = '{data.Code}'"
+ });
+ }
+
+ public void SaveRelData(RoleData role)
+ {
+ if (role == null) return;
+ RoleMenuHelper.SaveRelData(sqliteHelper, TreeDataSource, role.Code, null, null);
+ }
+ }
+}
diff --git a/HMI.MenuManage/Model/UserManageModel.cs b/HMI.MenuManage/Model/UserManageModel.cs
new file mode 100644
index 0000000..a2ede62
--- /dev/null
+++ b/HMI.MenuManage/Model/UserManageModel.cs
@@ -0,0 +1,98 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Data;
+using System.IO;
+using HMI.Core.Util;
+using HMI.MenuManage.Entity;
+using HMI.MenuManage.Util;
+using HMI.Core.Entity;
+
+namespace HMI.MenuManage.Model
+{
+ public class UserManageModel : NotifyBase
+ {
+ public SqliteHelper sqliteHelper;
+
+ private ObservableCollection<UserData> _DataSource;
+
+ public ObservableCollection<UserData> DataSource
+ {
+ get { return _DataSource; }
+ set { Set(ref _DataSource, value); }
+ }
+ private UserData _SelectedUser;
+
+ public UserData SelectedUser
+ {
+ get { return _SelectedUser; }
+ set
+ {
+ Set(ref _SelectedUser, value);
+ LoadUserRole();
+ }
+ }
+
+ private ObservableCollection<UserRoleRel> _Roles;
+ public ObservableCollection<UserRoleRel> Roles
+ {
+ get => _Roles;
+ set { Set(ref _Roles, value); }
+ }
+
+ public UserManageModel()
+ {
+ if (!File.Exists(PathHelper.DatabasePath))
+ {
+ SqliteHelper.CreateDatabase(PathHelper.DatabasePath);
+ }
+ sqliteHelper = new SqliteHelper(PathHelper.DatabasePath);
+ sqliteHelper.ExecuteSql(@"CREATE TABLE IF NOT EXISTS user (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ username TEXT NOT NULL,
+ password TEXT NOT NULL,
+ name TEXT,
+ UNIQUE(username)
+ );
+CREATE TABLE IF NOT EXISTS user_role_rel (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ username TEXT NOT NULL,
+ roleCode TEXT NOT NULL,
+ UNIQUE(username,roleCode)
+ );
+");
+ }
+
+ public void LoadData()
+ {
+ ObservableCollection<UserData> data = new ObservableCollection<UserData>();
+ DataTable dt = sqliteHelper.GetDataTable("SELECT * FROM user Order By id;");
+ if (dt != null)
+ {
+ foreach (DataRow dr in dt.Rows)
+ {
+ var menu = new UserData
+ {
+ Id = dr["id"].ToString(),
+ Username = dr["username"].ToString(),
+ Password = dr["password"].ToString(),
+ Name = dr["name"].ToString()
+ };
+ data.Add(menu);
+ }
+ }
+ DataSource = data;
+ }
+
+ public void LoadUserRole()
+ {
+ Roles = SelectedUser == null ? new ObservableCollection<UserRoleRel>()
+ : UserRoleRelHelper.SelectUserRoleData(sqliteHelper, SelectedUser.Username);
+ }
+
+ public void SaveUserRole()
+ {
+ UserRoleRelHelper.SaveUserRoleRel(sqliteHelper, Roles, SelectedUser, null, null);
+ }
+ }
+}
diff --git a/HMI.MenuManage/Properties/AssemblyInfo.cs b/HMI.MenuManage/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..8f148a8
--- /dev/null
+++ b/HMI.MenuManage/Properties/AssemblyInfo.cs
@@ -0,0 +1,54 @@
+锘縰sing System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+using HMI.Core.Annotation;
+
+// 鏈夊叧绋嬪簭闆嗙殑涓�鑸俊鎭敱浠ヤ笅
+// 鎺у埗銆傛洿鏀硅繖浜涚壒鎬у�煎彲淇敼
+// 涓庣▼搴忛泦鍏宠仈鐨勪俊鎭��
+[assembly: AssemblyTitle("HMI.MenuManage")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Organization")]
+[assembly: AssemblyProduct("HMI.MenuManage")]
+[assembly: AssemblyCopyright("Copyright 漏 Organization 2025")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 灏� ComVisible 璁剧疆涓� false 浼氫娇姝ょ▼搴忛泦涓殑绫诲瀷
+//瀵� COM 缁勪欢涓嶅彲瑙併�傚鏋滈渶瑕佷粠 COM 璁块棶姝ょ▼搴忛泦涓殑绫诲瀷
+//璇峰皢姝ょ被鍨嬬殑 ComVisible 鐗规�ц缃负 true銆�
+[assembly: ComVisible(false)]
+
+//鑻ヨ寮�濮嬬敓鎴愬彲鏈湴鍖栫殑搴旂敤绋嬪簭锛岃璁剧疆
+//.csproj 鏂囦欢涓殑 <UICulture>CultureYouAreCodingWith</UICulture>
+//鍦� <PropertyGroup> 涓�備緥濡傦紝濡傛灉浣犱娇鐢ㄧ殑鏄編鍥借嫳璇��
+//浣跨敤鐨勬槸缇庡浗鑻辫锛岃灏� <UICulture> 璁剧疆涓� en-US銆� 鐒跺悗鍙栨秷
+//瀵逛互涓� NeutralResourceLanguage 鐗规�х殑娉ㄩ噴銆� 鏇存柊
+//浠ヤ笅琛屼腑鐨勨�渆n-US鈥濅互鍖归厤椤圭洰鏂囦欢涓殑 UICulture 璁剧疆銆�
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly:ThemeInfo(
+ ResourceDictionaryLocation.None, //涓婚鐗瑰畾璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //鎴栧簲鐢ㄧ▼搴忚祫婧愬瓧鍏镐腑鎵惧埌鏃朵娇鐢�)
+ ResourceDictionaryLocation.SourceAssembly //甯歌璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //銆佸簲鐢ㄧ▼搴忔垨浠讳綍涓婚涓撶敤璧勬簮瀛楀吀涓壘鍒版椂浣跨敤)
+)]
+
+
+// 绋嬪簭闆嗙殑鐗堟湰淇℃伅鐢变笅鍒楀洓涓�肩粍鎴�:
+//
+// 涓荤増鏈�
+// 娆$増鏈�
+// 鐢熸垚鍙�
+// 淇鍙�
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: PluginClassName("HMI.MenuManage.MenuManage")]
diff --git a/HMI.MenuManage/Properties/Resources.Designer.cs b/HMI.MenuManage/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..4958cfc
--- /dev/null
+++ b/HMI.MenuManage/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// 姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+// 杩愯鏃剁増鏈�:4.0.30319.42000
+//
+// 瀵规鏂囦欢鐨勬洿鏀瑰彲鑳戒細瀵艰嚧涓嶆纭殑琛屼负锛屽苟涓斿鏋�
+// 閲嶆柊鐢熸垚浠g爜锛岃繖浜涙洿鏀瑰皢浼氫涪澶便��
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.MenuManage.Properties {
+ using System;
+
+
+ /// <summary>
+ /// 涓�涓己绫诲瀷鐨勮祫婧愮被锛岀敤浜庢煡鎵炬湰鍦板寲鐨勫瓧绗︿覆绛夈��
+ /// </summary>
+ // 姝ょ被鏄敱 StronglyTypedResourceBuilder
+ // 绫婚�氳繃绫讳技浜� ResGen 鎴� Visual Studio 鐨勫伐鍏疯嚜鍔ㄧ敓鎴愮殑銆�
+ // 鑻ヨ娣诲姞鎴栫Щ闄ゆ垚鍛橈紝璇风紪杈� .ResX 鏂囦欢锛岀劧鍚庨噸鏂拌繍琛� ResGen
+ // (浠� /str 浣滀负鍛戒护閫夐」)锛屾垨閲嶆柊鐢熸垚 VS 椤圭洰銆�
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// 杩斿洖姝ょ被浣跨敤鐨勭紦瀛樼殑 ResourceManager 瀹炰緥銆�
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HMI.MenuManage.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// 閲嶅啓褰撳墠绾跨▼鐨� CurrentUICulture 灞炴�э紝瀵�
+ /// 浣跨敤姝ゅ己绫诲瀷璧勬簮绫荤殑鎵�鏈夎祫婧愭煡鎵炬墽琛岄噸鍐欍��
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/HMI.MenuManage/Properties/Resources.resx b/HMI.MenuManage/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/HMI.MenuManage/Properties/Resources.resx
@@ -0,0 +1,117 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
diff --git a/HMI.MenuManage/Properties/Settings.Designer.cs b/HMI.MenuManage/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..c6f862b
--- /dev/null
+++ b/HMI.MenuManage/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// 姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+// 杩愯鏃剁増鏈�:4.0.30319.42000
+//
+// 瀵规鏂囦欢鐨勬洿鏀瑰彲鑳戒細瀵艰嚧涓嶆纭殑琛屼负锛屽苟涓斿鏋�
+// 閲嶆柊鐢熸垚浠g爜锛岃繖浜涙洿鏀瑰皢浼氫涪澶便��
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.MenuManage.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.12.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/HMI.MenuManage/Properties/Settings.settings b/HMI.MenuManage/Properties/Settings.settings
new file mode 100644
index 0000000..033d7a5
--- /dev/null
+++ b/HMI.MenuManage/Properties/Settings.settings
@@ -0,0 +1,7 @@
+锘�<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile>
\ No newline at end of file
diff --git a/HMI.MenuManage/RoleManage.xaml b/HMI.MenuManage/RoleManage.xaml
new file mode 100644
index 0000000..99eb89c
--- /dev/null
+++ b/HMI.MenuManage/RoleManage.xaml
@@ -0,0 +1,127 @@
+锘�<hb:PluginControl x:Class="HMI.MenuManage.RoleManage"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:hb="clr-namespace:HMI.Base;assembly=HMI.Base"
+ xmlns:local="clr-namespace:HMI.MenuManage"
+ xmlns:dp="clr-namespace:HMI.UI;assembly=HMI.UI"
+ xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ mc:Ignorable="d"
+ Padding="10"
+ Background="#f0f2f5"
+ d:DesignHeight="450" d:DesignWidth="800">
+ <UserControl.Resources>
+ <ResourceDictionary>
+ <ResourceDictionary.MergedDictionaries>
+ <pu:StyleDictionary Includes="TreeView" />
+ <ResourceDictionary Source="/HMI.UI;component/Style/PanuonResource.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+
+ <uic:PathImageConverter x:Key="path2Image"/>
+ <uic:DataGridRowNumberConverter x:Key="rowNumber"/>
+ </ResourceDictionary>
+ </UserControl.Resources>
+
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="6*"/>
+ <ColumnDefinition Width="4*"/>
+ </Grid.ColumnDefinitions>
+
+ <Border Style="{StaticResource CardBoarder}" Margin="0,0,2,0">
+ <StackPanel>
+ <DockPanel Margin="0,0,0,10">
+ <Button DockPanel.Dock="Right" pu:ButtonHelper.Icon="" Style="{StaticResource DangerButton}">鍒犻櫎</Button>
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
+pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="refreshBtn" Click="Button_Click">鍒锋柊</Button>
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
+ pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="addBtn" Click="Button_Click">鏂板</Button>
+ <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}"
+ VerticalAlignment="Center" HorizontalAlignment="Left" Text="瑙掕壊鍒楄〃"/>
+ </DockPanel>
+
+ <DataGrid x:Name="table" Style="{StaticResource DefaultDataGrid}"
+ SelectedValue="{Binding SelectedValue}"
+ ItemsSource="{Binding DataSource}">
+ <DataGrid.Columns>
+ <DataGridTemplateColumn Header="" Width="Auto" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <CheckBox VerticalAlignment="Center"
+ HorizontalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+
+ <DataGridTextColumn Header="#"
+ Binding="{Binding Converter={StaticResource rowNumber},
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
+ CanUserResize="False"/>
+ <DataGridTextColumn Width="*" Binding="{Binding Code}" Header="瑙掕壊缂栧彿" />
+ <DataGridTextColumn Width="*" Binding="{Binding Name}" Header="瑙掕壊鍚嶇О" />
+ <DataGridTemplateColumn Header="鎿嶄綔" Width="100" IsReadOnly="True" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal">
+ <Button x:Name="editBtn" Style="{StaticResource LinkButton}"
+ Margin="0,0,10,0"
+ Click="Button_Click"
+ DataContext="{Binding }">缂栬緫</Button>
+ <Button x:Name="delBtn" Style="{StaticResource DangerLinkButton}"
+ DataContext="{Binding }"
+ Click="Button_Click">鍒犻櫎</Button>
+ </StackPanel>
+
+ <DataTemplate.Triggers>
+ <DataTrigger Binding="{Binding Path=IsMouseOver,
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
+ Value="True">
+ <Setter TargetName="editBtn" Property="Foreground" Value="#FFF"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Path=IsSelected,
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
+ Value="True">
+ <Setter TargetName="editBtn" Property="Foreground" Value="#FFF"/>
+ </DataTrigger>
+ </DataTemplate.Triggers>
+
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ </DataGrid.Columns>
+ </DataGrid>
+ </StackPanel>
+ </Border>
+
+ <Border Grid.Column="1" Style="{StaticResource CardBoarder}" Margin="2,0,0,0">
+ <StackPanel>
+ <DockPanel Margin="0,0,0,10" >
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}" x:Name="saveMenuBtn" Click="Button_Click"
+ pu:ButtonHelper.Icon="" Content="淇濆瓨"/>
+ <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}"
+ VerticalAlignment="Center" HorizontalAlignment="Left" Text="鑿滃崟鎺堟潈"/>
+ </DockPanel>
+ <TreeView x:Name="treeViewer" Grid.Column="1"
+ Style="{StaticResource DefaultTreeView}" ItemsSource="{Binding TreeDataSource}">
+ <TreeView.ItemTemplate>
+ <HierarchicalDataTemplate ItemsSource="{Binding Children}">
+ <StackPanel Orientation="Horizontal" VerticalAlignment="Center">
+ <CheckBox VerticalAlignment="Center" IsChecked="{Binding Selected}"
+Command="{Binding CheckCommand}"
+CommandParameter="{Binding Path=IsChecked,RelativeSource={RelativeSource Mode=Self}}"
+/>
+ <Image Width="{StaticResource ContentFontSize}"
+ Height="{StaticResource ContentFontSize}" Margin="5" Source="{Binding MenuIcon,Converter={StaticResource path2Image},Mode=OneWay}"/>
+ <TextBlock VerticalAlignment="Center" Text="{Binding MenuName}"/>
+ </StackPanel>
+ </HierarchicalDataTemplate>
+ </TreeView.ItemTemplate>
+ </TreeView>
+ </StackPanel>
+ </Border>
+ </Grid>
+</hb:PluginControl>
diff --git a/HMI.MenuManage/RoleManage.xaml.cs b/HMI.MenuManage/RoleManage.xaml.cs
new file mode 100644
index 0000000..15df9a5
--- /dev/null
+++ b/HMI.MenuManage/RoleManage.xaml.cs
@@ -0,0 +1,159 @@
+锘縰sing System;
+using System.ComponentModel;
+using System.Runtime.CompilerServices;
+using System.Windows;
+using System.Windows.Controls;
+using log4net;
+using log4net.Repository.Hierarchy;
+using Panuon.WPF.UI;
+using HMI.Core.Api;
+using HMI.MenuManage.Entity;
+using HMI.MenuManage.Model;
+using HMI.Base;
+
+namespace HMI.MenuManage
+{
+ /// <summary>
+ /// UserControl1.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class RoleManage : PluginControl
+ {
+ #region ...
+ public virtual event PropertyChangedEventHandler PropertyChanged;
+
+ protected virtual void RaisePropertyChanged(string name)
+ {
+
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
+ }
+
+ protected void RaiseAndSetIfChanged<T>(ref T old, T @new, [CallerMemberName] string propertyName = null)
+ {
+ old = @new;
+ if (propertyName != null)
+ {
+ RaisePropertyChanged(propertyName);
+ }
+ }
+ #endregion
+
+ #region 灞炴��
+ private RoleManageModel Model;
+ private ILog log;
+
+ #endregion
+
+ public RoleManage()
+ {
+ Model = new RoleManageModel();
+ this.DataContext = Model;
+ this.Loaded += RoleManage_Loaded;
+ InitializeComponent();
+ }
+
+ private void RoleManage_Loaded(object sender, RoutedEventArgs e)
+ {
+ Model.LoadData();
+ this.Loaded -= RoleManage_Loaded;
+ }
+
+ #region 灞炴��
+
+ #endregion
+
+ public object Active()
+ {
+ return null;
+ }
+
+ public object DeActive()
+ {
+ return null;
+ }
+
+ public object Init()
+ {
+ return null;
+ }
+
+ public void OnTabChange(object sender, object args)
+ {
+ }
+
+ private void Button_Click(object sender, RoutedEventArgs e)
+ {
+ try
+ {
+ Button btn = (Button)sender;
+ if (btn.Name == "addBtn")
+ {
+ RoleModal modal = new RoleModal
+ {
+ Title = "鏂板瑙掕壊",
+ Owner = Window.GetWindow(this),
+ sqliteHelper = Model.sqliteHelper
+ };
+ if (modal.Open(new RoleData()) == true)
+ {
+ Model.LoadData();
+ }
+ }
+ else if (btn.Name == "refreshBtn")
+ {
+ Model.LoadData();
+ }
+ else if (btn.Name == "menuBtn")
+ {
+ Model.LoadRelData((RoleData)btn.DataContext);
+ }
+ else if (btn.Name == "editBtn")
+ {
+ RoleModal modal = new RoleModal
+ {
+ Title = "缂栬緫瑙掕壊",
+ Owner = Window.GetWindow(this),
+ sqliteHelper = Model.sqliteHelper
+ };
+ if (modal.Open((RoleData)btn.DataContext) == true)
+ {
+ Model.LoadData();
+ }
+ }
+ else if (btn.Name == "delBtn")
+ {
+ try
+ {
+ Model.DelSingleData((RoleData)btn.DataContext);
+ }
+ catch (Exception ex)
+ {
+ log.Error("Delete Role Failed.", ex);
+ Panuon.WPF.UI.Toast.Show((WindowX)Window.GetWindow(this), "鍒犻櫎澶辫触", ToastPosition.Top);
+ }
+ }
+ else if (btn.Name == "saveMenuBtn")
+ {
+ try
+ {
+ Model.SaveRelData(Model.SelectedValue);
+ Panuon.WPF.UI.Toast.Show((WindowX)Window.GetWindow(this), "淇濆瓨鎴愬姛", ToastPosition.Top);
+ }
+ catch (Exception ex)
+ {
+ log.Error("Save Role-Menu Failed.", ex);
+ Panuon.WPF.UI.Toast.Show((WindowX)Window.GetWindow(this), "淇濆瓨澶辫触", ToastPosition.Top);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ log.Error("123", ex);
+ }
+ }
+
+ public void SetLogger(ILog logger)
+ {
+ this.log = logger;
+ }
+ }
+}
diff --git a/HMI.MenuManage/UserManage.xaml b/HMI.MenuManage/UserManage.xaml
new file mode 100644
index 0000000..7c8650a
--- /dev/null
+++ b/HMI.MenuManage/UserManage.xaml
@@ -0,0 +1,132 @@
+锘�<hb:PluginControl x:Class="HMI.MenuManage.UserManage"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:hb="clr-namespace:HMI.Base;assembly=HMI.Base"
+ xmlns:local="clr-namespace:HMI.MenuManage"
+ xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
+xmlns:pw="https://opensource.panuon.com/wpf"
+xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ mc:Ignorable="d"
+ Background="{StaticResource WorkspaceBackground}"
+ Padding="10"
+ d:DesignHeight="450" d:DesignWidth="800">
+ <UserControl.Resources>
+ <ResourceDictionary>
+ <ResourceDictionary.MergedDictionaries>
+ <pu:StyleDictionary Includes="TreeView" />
+ <ResourceDictionary Source="/HMI.UI;component/Style/PanuonResource.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+
+ <uic:PathImageConverter x:Key="path2Image"/>
+ <uic:DataGridRowNumberConverter x:Key="rowNumber"/>
+ </ResourceDictionary>
+ </UserControl.Resources>
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="6*"/>
+ <ColumnDefinition Width="4*"/>
+ </Grid.ColumnDefinitions>
+ <Border Style="{StaticResource CardBoarder}" Margin="0,0,2,0">
+ <StackPanel>
+ <DockPanel Margin="0,0,0,10">
+ <Button DockPanel.Dock="Right" pu:ButtonHelper.Icon="" Style="{StaticResource DangerButton}">鍒犻櫎</Button>
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
+ pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="refreshBtn" Click="Button_Click">鍒锋柊</Button>
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
+ pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="addBtn" Click="Button_Click">鏂板</Button>
+ <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}"
+ VerticalAlignment="Center" HorizontalAlignment="Left" Text="鐢ㄦ埛鍒楄〃"/>
+ </DockPanel>
+
+ <DataGrid Grid.Column="1" x:Name="table" Style="{StaticResource DefaultDataGrid}"
+ SelectedItem="{Binding SelectedUser}" ItemsSource="{Binding DataSource}">
+ <DataGrid.Columns>
+ <DataGridTemplateColumn Width="Auto" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <CheckBox VerticalAlignment="Center"
+ IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTemplateColumn Header="#" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <TextBlock Text="{Binding Converter={StaticResource rowNumber},
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTextColumn Width="*" Binding="{Binding Username}" Header="璐﹀彿" />
+ <DataGridTextColumn Width="*" Binding="{Binding Name}" Header="鐢ㄦ埛鍚嶇О" />
+ <!--<DataGridTextColumn Width="*" Binding="{Binding RoleCode}" Header="瑙掕壊缂栧彿" />
+ <DataGridTextColumn Width="*" Binding="{Binding RoleName}" Header="瑙掕壊鍚嶇О" />-->
+ <DataGridTemplateColumn Header="鎿嶄綔" Width="100" IsReadOnly="True" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal">
+ <Button x:Name="editBtn" Style="{StaticResource LinkButton}" Margin="0,0,10,0"
+ DataContext="{Binding }"
+ Click="Button_Click">缂栬緫</Button>
+ <Button x:Name="delBtn" Style="{StaticResource DangerLinkButton}"
+ DataContext="{Binding }"
+ Click="Button_Click">鍒犻櫎</Button>
+ </StackPanel>
+
+ <DataTemplate.Triggers>
+ <DataTrigger Binding="{Binding Path=IsMouseOver,
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
+ Value="True">
+ <Setter TargetName="editBtn" Property="Foreground" Value="#FFF"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Path=IsSelected,
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
+ Value="True">
+ <Setter TargetName="editBtn" Property="Foreground" Value="#FFF"/>
+ </DataTrigger>
+ </DataTemplate.Triggers>
+
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ </DataGrid.Columns>
+ </DataGrid>
+ </StackPanel>
+ </Border>
+
+ <Border Grid.Column="1" Style="{StaticResource CardBoarder}" Margin="2,0,0,0">
+ <StackPanel>
+ <DockPanel Margin="0,0,0,10" >
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
+ x:Name="saveRoleBtn" Click="Button_Click" pu:ButtonHelper.Icon="" Content="淇濆瓨"/>
+ <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}"
+ VerticalAlignment="Center" HorizontalAlignment="Left" Text="鐢ㄦ埛瑙掕壊"/>
+ </DockPanel>
+
+ <DataGrid x:Name="roleTable" Style="{StaticResource DefaultDataGrid}" SelectionMode="Single"
+ ItemsSource="{Binding Roles}">
+ <DataGrid.Columns>
+ <DataGridTemplateColumn Header="鎺堜簣" Width="Auto" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <CheckBox VerticalAlignment="Center"
+ HorizontalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+
+ <DataGridTextColumn Header="#" Binding="{Binding Converter={StaticResource rowNumber},
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
+ CanUserResize="False"/>
+ <DataGridTextColumn Width="*" Binding="{Binding RoleCode}" Header="瑙掕壊缂栧彿" />
+ <DataGridTextColumn Width="*" Binding="{Binding RoleName}" Header="瑙掕壊鍚嶇О" />
+ </DataGrid.Columns>
+ </DataGrid>
+
+ </StackPanel>
+ </Border>
+ </Grid>
+</hb:PluginControl>
diff --git a/HMI.MenuManage/UserManage.xaml.cs b/HMI.MenuManage/UserManage.xaml.cs
new file mode 100644
index 0000000..05d575f
--- /dev/null
+++ b/HMI.MenuManage/UserManage.xaml.cs
@@ -0,0 +1,93 @@
+锘縰sing System;
+using System.Windows;
+using System.Windows.Controls;
+using HMI.Base;
+using HMI.Core.Api;
+using HMI.MenuManage.Entity;
+using HMI.MenuManage.Model;
+using HMI.UI.Util;
+using log4net;
+
+namespace HMI.MenuManage
+{
+ /// <summary>
+ /// UserManage.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class UserManage : PluginControl
+ {
+ UserManageModel Model;
+ private ILog log;
+ public UserManage()
+ {
+ Model = new UserManageModel();
+ DataContext = Model;
+ Loaded += UserManage_Loaded;
+ InitializeComponent();
+ }
+
+ private void UserManage_Loaded(object sender, RoutedEventArgs e)
+ {
+ Model.LoadData();
+ this.Loaded -= UserManage_Loaded;
+ }
+
+ private void Button_Click(object sender, RoutedEventArgs e)
+ {
+ Button btn = (Button)sender;
+ if (btn.Name == "addBtn")
+ {
+ UserModal userModal = new UserModal
+ {
+ Title = "鏂板鐢ㄦ埛",
+ Owner = Window.GetWindow(this),
+ sqliteHelper = Model.sqliteHelper
+ };
+ if (userModal.Open(new UserData()) == true)
+ {
+ Model.LoadData();
+ }
+ }
+ else if (btn.Name == "refreshBtn")
+ {
+ Model.LoadData();
+ }
+ else if (btn.Name == "editBtn")
+ {
+ UserModal userModal = new UserModal
+ {
+ Title = "缂栬緫鐢ㄦ埛",
+ Owner = Window.GetWindow(this),
+ sqliteHelper = Model.sqliteHelper
+ };
+ if (userModal.Open((UserData)btn.DataContext) == true)
+ {
+ Model.LoadData();
+ }
+ }
+ else if (btn.Name == "delBtn") { }
+ else if (btn.Name == "saveRoleBtn")
+ {
+ try
+ {
+ Model.SaveUserRole();
+ Model.LoadUserRole();
+ ToastHelper.Success(Window.GetWindow(this), "淇濆瓨鎴愬姛");
+ }
+ catch (Exception ex)
+ {
+ log.Error("Update User-Role Rel Failed.", ex);
+ }
+ }
+ }
+
+ public void SetLogger(ILog logger)
+ {
+ log = logger;
+ }
+
+ public void SetBaseFolder(string folder)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/HMI.MenuManage/Util/RoleHelper.cs b/HMI.MenuManage/Util/RoleHelper.cs
new file mode 100644
index 0000000..66145cc
--- /dev/null
+++ b/HMI.MenuManage/Util/RoleHelper.cs
@@ -0,0 +1,71 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Markup;
+using DatabaseHelper;
+using HMI.Core.Util;
+using HMI.MenuManage.Entity;
+
+namespace HMI.MenuManage.Util
+{
+ public class RoleHelper
+ {
+ /// <summary>
+ /// 鏍规嵁roleCode鑾峰彇rel鏁版嵁
+ /// </summary>
+ /// <param name="sqliteHelper"></param>
+ /// <param name="roleCode"></param>
+ /// <returns></returns>
+ public static ObservableCollection<RoleData> SelectUserRoleData(SqliteHelper sqliteHelper,
+ string roleCode)
+ {
+ ObservableCollection<RoleData> datas = new ObservableCollection<RoleData>();
+ DataTable dt = sqliteHelper.GetDataTable($@"SELECT * FROM role AS r ;");
+ if (dt != null)
+ {
+ foreach (DataRow dr in dt.Rows)
+ {
+ var role = new RoleData
+ {
+ Id = dr["id"].ToString(),
+ Code = dr["code"].ToString(),
+ Name = dr["name"].ToString()
+ };
+ datas.Add(role);
+ }
+ }
+ return datas;
+ }
+
+ public static void SaveRelData(SqliteHelper sqliteHelper, ObservableCollection<RoleMenuRel> rels, string roleCode)
+ {
+ List<RoleMenuRel> datas = new List<RoleMenuRel>();
+ GetSelectedMenu(rels, datas);
+ List<string> sqls = new List<string>() {
+ $"DELETE FROM role_menu_rel WHERE roleCode='{roleCode}'"
+ };
+ foreach (var data in datas)
+ {
+ sqls.Add($"INSERT INTO role_menu_rel (roleCode,menuCode) VALUES ('{roleCode}','{data.MenuCode}');");
+ }
+ sqliteHelper.ExecuteBatchSql(sqls);
+ }
+
+ public static void GetSelectedMenu(IEnumerable<RoleMenuRel> rels, List<RoleMenuRel> datas)
+ {
+ foreach (var dr in rels)
+ {
+ if (dr.Selected)
+ {
+ datas.Add(dr);
+ }
+ GetSelectedMenu(dr.Children, datas);
+ }
+ }
+
+ }
+}
diff --git a/HMI.MenuManage/Util/RoleMenuHelper.cs b/HMI.MenuManage/Util/RoleMenuHelper.cs
new file mode 100644
index 0000000..999a03d
--- /dev/null
+++ b/HMI.MenuManage/Util/RoleMenuHelper.cs
@@ -0,0 +1,91 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Markup;
+using DatabaseHelper;
+using HMI.Core.Util;
+using HMI.MenuManage.Entity;
+
+namespace HMI.MenuManage.Util
+{
+ public class RoleMenuHelper
+ {
+ /// <summary>
+ /// 鏍规嵁roleCode鑾峰彇rel鏁版嵁
+ /// </summary>
+ /// <param name="sqliteHelper"></param>
+ /// <param name="roleCode"></param>
+ /// <returns></returns>
+ public static ObservableCollection<RoleMenuRel> SelectRoleMenuTreeData(SqliteHelper sqliteHelper,
+ string roleCode)
+ {
+ ObservableCollection<RoleMenuRel> treeData = new ObservableCollection<RoleMenuRel>();
+ Dictionary<string, RoleMenuRel> cache = new Dictionary<string, RoleMenuRel>();
+ DataTable dt = sqliteHelper.GetDataTable($@"SELECT m.*,t.roleCode,t.menuCode FROM menu AS m
+LEFT JOIN (
+SELECT rel.roleCode,rel.menuCode FROM role AS r
+INNER JOIN role_menu_rel AS rel
+ON r.code = rel.roleCode AND rel.roleCode='{roleCode}'
+) AS t
+ON m.code=t.menuCode
+Order By m.level,m.id;");
+ if (dt != null)
+ {
+ foreach (DataRow dr in dt.Rows)
+ {
+ var menu = new RoleMenuRel
+ {
+ MenuCode = dr["code"].ToString(),
+ RoleCode = roleCode,
+ ParentCode = dr["parentCode"].ToString(),
+ MenuName = dr["name"].ToString(),
+ MenuIcon = dr["iconPath"].ToString(),
+ Selected = !(dr["menuCode"] is System.DBNull),
+ };
+ cache[menu.MenuCode] = menu;
+ if (cache.ContainsKey(menu.ParentCode))
+ {
+ cache[menu.ParentCode].AddChild(menu);
+ }
+ else
+ {
+ treeData.Add(menu);
+ }
+ }
+ }
+ return treeData;
+ }
+
+ public static void SaveRelData(SqliteHelper sqliteHelper, IEnumerable<RoleMenuRel> rels, string roleCode, string firstSql, string lastSql)
+ {
+ List<RoleMenuRel> datas = new List<RoleMenuRel>();
+ GetSelectedMenu(rels, datas);
+ List<string> sqls = new List<string>() {
+ firstSql, $"DELETE FROM role_menu_rel WHERE roleCode='{roleCode}'"
+ };
+ foreach (var data in datas)
+ {
+ sqls.Add($"INSERT INTO role_menu_rel (roleCode,menuCode) VALUES ('{roleCode}','{data.MenuCode}');");
+ }
+ sqls.Add(lastSql);
+ sqliteHelper.ExecuteBatchSql(sqls);
+ }
+
+ public static void GetSelectedMenu(IEnumerable<RoleMenuRel> rels, List<RoleMenuRel> datas)
+ {
+ foreach (var dr in rels)
+ {
+ if (dr.Selected)
+ {
+ datas.Add(dr);
+ }
+ GetSelectedMenu(dr.Children, datas);
+ }
+ }
+
+ }
+}
diff --git a/HMI.MenuManage/Util/UserRoleRelHelper.cs b/HMI.MenuManage/Util/UserRoleRelHelper.cs
new file mode 100644
index 0000000..49af7ff
--- /dev/null
+++ b/HMI.MenuManage/Util/UserRoleRelHelper.cs
@@ -0,0 +1,65 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Web.Security;
+using System.Windows.Markup;
+using DatabaseHelper;
+using HMI.Core.Util;
+using HMI.MenuManage.Entity;
+
+namespace HMI.MenuManage.Util
+{
+ public class UserRoleRelHelper
+ {
+ /// <summary>
+ /// 鏍规嵁roleCode鑾峰彇rel鏁版嵁
+ /// </summary>
+ /// <param name="sqliteHelper"></param>
+ /// <param name="roleCode"></param>
+ /// <returns></returns>
+ public static ObservableCollection<UserRoleRel> SelectUserRoleData(SqliteHelper sqliteHelper, string username)
+ {
+ ObservableCollection<UserRoleRel> datas = new ObservableCollection<UserRoleRel>();
+ DataTable dt = sqliteHelper.GetDataTable($@"SELECT r.*,t.username FROM role AS r LEFT JOIN
+(SELECT u.username,rel.roleCode FROM user AS u INNER JOIN user_role_rel AS rel ON u.username = rel.username
+AND u.username='{username}') AS t
+ON r.code = t.roleCode ORDER BY r.id;");
+ if (dt != null)
+ {
+ foreach (DataRow dr in dt.Rows)
+ {
+ var role = new UserRoleRel
+ {
+ Id = dr["id"].ToString(),
+ RoleCode = dr["code"].ToString(),
+ RoleName = dr["name"].ToString(),
+ Selected = !(dr["username"] is DBNull)
+ };
+ datas.Add(role);
+ }
+ }
+ return datas;
+ }
+
+ public static void SaveUserRoleRel(SqliteHelper sqliteHelper, IEnumerable<UserRoleRel> roles,
+ UserData data, string firstSql, string lastSql)
+ {
+ var rels = roles.Where(d => d.Selected).ToList();
+ var sqls = new List<string> {
+ firstSql,
+ $"DELETE FROM user_role_rel WHERE username = '{data.Username}';",
+ };
+ foreach (var rel in rels)
+ {
+ sqls.Add($"INSERT INTO user_role_rel (username,roleCode) " +
+ $"VALUES ('{data.Username}','{rel.RoleCode}');");
+ }
+ sqls.Add(lastSql);
+ sqliteHelper.ExecuteBatchSql(sqls);
+ }
+ }
+}
diff --git a/HMI.MenuManage/packages.config b/HMI.MenuManage/packages.config
new file mode 100644
index 0000000..63cdc53
--- /dev/null
+++ b/HMI.MenuManage/packages.config
@@ -0,0 +1,6 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="log4net" version="3.0.3" targetFramework="net472" />
+ <package id="Panuon.WPF" version="1.1.2.2" targetFramework="net472" />
+ <package id="Panuon.WPF.UI" version="1.2.4.9" targetFramework="net472" />
+</packages>
\ No newline at end of file
diff --git a/HMI.ParameterManage/ControlModel.cs b/HMI.ParameterManage/ControlModel.cs
new file mode 100644
index 0000000..67d0035
--- /dev/null
+++ b/HMI.ParameterManage/ControlModel.cs
@@ -0,0 +1,98 @@
+锘縰sing System.Collections.ObjectModel;
+using System.Data;
+using HMI.Core.Entity;
+using HMI.Core.Util;
+using HMI.ParameterManage.Entity;
+
+namespace HMI.ParameterManage
+{
+ public class ControlModel : NotifyBase
+ {
+ public ControlModel(SqliteHelper sqliteHelper)
+ {
+ SqliteHelper = sqliteHelper;
+ }
+
+ public SqliteHelper SqliteHelper { get; private set; }
+
+ private ObservableCollection<ProductData> products;
+
+ public ObservableCollection<ProductData> Products
+ {
+ get { return products; }
+ set { Set(ref products, value); }
+ }
+
+ private ObservableCollection<ParameterData> parameters;
+
+ public ObservableCollection<ParameterData> Parameters
+ {
+ get { return parameters; }
+ set { Set(ref parameters, value); }
+ }
+
+ private ProductData selectedProduct;
+
+ public ProductData SelectedProduct
+ {
+ get { return selectedProduct; }
+ set
+ {
+ Set(ref selectedProduct, value);
+ LoadParameters();
+ }
+ }
+
+ public void LoadProducts()
+ {
+ DataTable dt = SqliteHelper.GetDataTable("SELECT * FROM product ORDER BY id;");
+ ObservableCollection<ProductData> products = new ObservableCollection<ProductData>();
+
+ if (dt != null)
+ {
+ foreach (DataRow dr in dt.Rows)
+ {
+ var p = new ProductData
+ {
+ Id = dr["id"].ToString(),
+ Name = dr["name"].ToString(),
+ IsMaster = dr["isMaster"].ToString() == "1",
+ ParentId = dr["parentId"].ToString(),
+ };
+ products.Add(p);
+ }
+ }
+ Products = products;
+ }
+
+ public void LoadParameters()
+ {
+
+ ObservableCollection<ParameterData> parameters = new ObservableCollection<ParameterData>();
+ if (SelectedProduct != null)
+ {
+
+ DataTable dt = SqliteHelper.GetDataTable($"SELECT * FROM parameter WHERE productName='{SelectedProduct.Name}' ORDER BY id;");
+ if (dt != null)
+ {
+ foreach (DataRow dr in dt.Rows)
+ {
+ var p = new ParameterData
+ {
+ Id = dr["id"].ToString(),
+ Name = dr["name"].ToString(),
+ Value = dr["value"].ToString(),
+ Unit = dr["unit"].ToString(),
+ Description = dr["description"].ToString(),
+ PGroup = dr["pGroup"].ToString(),
+ ProductName = dr["productName"].ToString(),
+ };
+ parameters.Add(p);
+ }
+ }
+
+ }
+ Parameters = parameters;
+ }
+ }
+}
diff --git a/HMI.ParameterManage/Entity/ParameterData.cs b/HMI.ParameterManage/Entity/ParameterData.cs
new file mode 100644
index 0000000..144ff47
--- /dev/null
+++ b/HMI.ParameterManage/Entity/ParameterData.cs
@@ -0,0 +1,19 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HMI.ParameterManage.Entity
+{
+ public class ParameterData
+ {
+ public string Id { get; set; }
+ public string Name { get; set; }
+ public string Value { get; set; }
+ public string Unit { get; set; }
+ public string Description { get; set; }
+ public string PGroup { get; set; }
+ public string ProductName { get; set; }
+ }
+}
diff --git a/HMI.ParameterManage/Entity/ProductData.cs b/HMI.ParameterManage/Entity/ProductData.cs
new file mode 100644
index 0000000..ada68f8
--- /dev/null
+++ b/HMI.ParameterManage/Entity/ProductData.cs
@@ -0,0 +1,11 @@
+锘�
+namespace HMI.ParameterManage.Entity
+{
+ public class ProductData
+ {
+ public string Id { get; set; }
+ public string Name { get; set; }
+ public bool IsMaster { get; set; }
+ public string ParentId { get; set; }
+ }
+}
diff --git a/HMI.ParameterManage/HMI.ParameterManage.csproj b/HMI.ParameterManage/HMI.ParameterManage.csproj
new file mode 100644
index 0000000..5a8f5c7
--- /dev/null
+++ b/HMI.ParameterManage/HMI.ParameterManage.csproj
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{736CD77D-B81E-4866-BB00-84B0B57110F0}</ProjectGuid>
+ <OutputType>library</OutputType>
+ <RootNamespace>HMI.ParameterManage</RootNamespace>
+ <AssemblyName>HMI.ParameterManage</AssemblyName>
+ <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <WarningLevel>4</WarningLevel>
+ <Deterministic>true</Deterministic>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>bin\x64\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <DebugType>full</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ <OutputPath>bin\x64\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <Optimize>true</Optimize>
+ <DebugType>pdbonly</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="log4net">
+ <HintPath>..\WPFProject\packages\log4net.3.0.3\lib\net462\log4net.dll</HintPath>
+ </Reference>
+ <Reference Include="Panuon.WPF">
+ <HintPath>..\WPFProject\packages\Panuon.WPF.1.1.2.2\lib\net472\Panuon.WPF.dll</HintPath>
+ </Reference>
+ <Reference Include="Panuon.WPF.UI">
+ <HintPath>..\WPFProject\packages\Panuon.WPF.UI.1.2.4.9\lib\net472\Panuon.WPF.UI.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Xaml">
+ <RequiredTargetFramework>4.0</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="WindowsBase" />
+ <Reference Include="PresentationCore" />
+ <Reference Include="PresentationFramework" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="ParameterModal.xaml.cs">
+ <DependentUpon>ParameterModal.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="ProductModal.xaml.cs">
+ <DependentUpon>ProductModal.xaml</DependentUpon>
+ </Compile>
+ <Page Include="ParameterManage.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Compile Include="ControlModel.cs" />
+ <Compile Include="Entity\ParameterData.cs" />
+ <Compile Include="Entity\ProductData.cs" />
+ <Compile Include="ParameterManage.xaml.cs">
+ <DependentUpon>ParameterManage.xaml</DependentUpon>
+ <SubType>Code</SubType>
+ </Compile>
+ <Page Include="ParameterModal.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Page Include="ProductModal.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Properties\AssemblyInfo.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ </EmbeddedResource>
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\HMI.Base\HMI.Base.csproj">
+ <Project>{2a6f9720-a890-4036-9d73-41a0dae28341}</Project>
+ <Name>HMI.Base</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.Core\HMI.Core.csproj">
+ <Project>{3e3bf44a-0b69-45c5-9512-528cb48a7106}</Project>
+ <Name>HMI.Core</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.UI\HMI.UI.csproj">
+ <Project>{f17de6b5-af1d-48c6-94a0-6b763a6546a6}</Project>
+ <Name>HMI.UI</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <PropertyGroup>
+ <PostBuildEvent>copy /Y "$(TargetPath)" "$(SolutionDir)bin\$(PlatformName)\$(ConfigurationName)\Plugin\$(TargetFileName)"
+copy /Y "$(TargetDir)$(TargetName).pdb" "$(SolutionDir)bin\$(PlatformName)\$(ConfigurationName)\Plugin\$(TargetName).pdb"</PostBuildEvent>
+ </PropertyGroup>
+</Project>
\ No newline at end of file
diff --git a/HMI.ParameterManage/ParameterManage.xaml b/HMI.ParameterManage/ParameterManage.xaml
new file mode 100644
index 0000000..c87940f
--- /dev/null
+++ b/HMI.ParameterManage/ParameterManage.xaml
@@ -0,0 +1,126 @@
+锘�<hb:PluginControl x:Class="HMI.ParameterManage.ParameterManage"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:local="clr-namespace:HMI.ParameterManage"
+ xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
+ xmlns:ui="clr-namespace:HMI.UI;assembly=HMI.UI"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ xmlns:dp="clr-namespace:HMI.UI;assembly=HMI.UI"
+ xmlns:hb="clr-namespace:HMI.Base;assembly=HMI.Base"
+ mc:Ignorable="d"
+ Padding="10"
+ Loaded="UserControl_Loaded"
+ Background="{StaticResource WorkspaceBackground}"
+ d:DesignHeight="450" d:DesignWidth="800">
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="2*"/>
+ <ColumnDefinition Width="8*"/>
+ </Grid.ColumnDefinitions>
+ <Border Style="{StaticResource CardBoarder}" Margin="0,0,2,0">
+ <StackPanel>
+ <DockPanel Margin="0,0,0,10" Cursor="">
+ <Button DockPanel.Dock="Right" x:Name="delBatchBtn" pu:ButtonHelper.Icon="" Style="{StaticResource DangerButton}">鍒犻櫎</Button>
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
+ pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="refreshBtn" Click="Button_Click">鍒锋柊</Button>
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
+ pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="addBtn" Click="Button_Click">鏂板</Button>
+ <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}"
+ VerticalAlignment="Center" HorizontalAlignment="Left" Text="浜у搧鍒楄〃"/>
+ </DockPanel>
+
+ <DataGrid Grid.Column="1" x:Name="table" Style="{StaticResource DefaultDataGrid}"
+ SelectedItem="{Binding SelectedProduct}" ItemsSource="{Binding Products}">
+ <DataGrid.Columns>
+ <DataGridTemplateColumn Width="Auto" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <CheckBox VerticalAlignment="Center"
+ IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTemplateColumn Header="#" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <TextBlock Text="{Binding Converter={StaticResource rowNumber},
+RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTextColumn Width="*" Binding="{Binding Name}" Header="浜у搧鍚嶇О" />
+ <DataGridTemplateColumn Header="鎿嶄綔" Width="100" IsReadOnly="True" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal" ui:StackPanelHelper.ChildSpace="10">
+ <Button x:Name="editProductBtn" Style="{StaticResource RowLink}" DataContext="{Binding }"
+ Click="Button_Click">缂栬緫</Button>
+ <Button x:Name="delProductBtn" Style="{StaticResource DangerLinkButton}"
+ DataContext="{Binding }"
+ Click="Button_Click">鍒犻櫎</Button>
+ </StackPanel>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ </DataGrid.Columns>
+ </DataGrid>
+ </StackPanel>
+ </Border>
+
+ <Border Grid.Column="1" Style="{StaticResource CardBoarder}" Margin="2,0,0,0">
+ <StackPanel>
+ <DockPanel Margin="0,0,0,10" >
+ <Button DockPanel.Dock="Right" pu:ButtonHelper.Icon="" Style="{StaticResource DangerButton}">鍒犻櫎</Button>
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
+ pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="refreshParameterBtn" Click="Button_Click">鍒锋柊</Button>
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
+ pu:ButtonHelper.Icon="" Margin="0,0,10,0" x:Name="addParameterBtn" Click="Button_Click">鏂板</Button>
+ <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}"
+ VerticalAlignment="Center" HorizontalAlignment="Left" Text="浜у搧鍒楄〃"/>
+ <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}"
+ VerticalAlignment="Center" HorizontalAlignment="Left" Text="浜у搧鍙傛暟"/>
+ </DockPanel>
+
+ <DataGrid x:Name="roleTable" Style="{StaticResource DefaultDataGrid}" SelectionMode="Single"
+ ItemsSource="{Binding Parameters}">
+ <DataGrid.Columns>
+ <DataGridTemplateColumn Header="" Width="Auto" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <CheckBox VerticalAlignment="Center"
+ HorizontalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+
+ <DataGridTextColumn Header="#" Binding="{Binding Converter={StaticResource rowNumber},
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
+ CanUserResize="False"/>
+ <DataGridTextColumn Width="*" Binding="{Binding Name}" Header="鍚嶇О" />
+ <DataGridTextColumn Width="*" Binding="{Binding Value}" Header="鍊�" />
+ <DataGridTextColumn Width="*" Binding="{Binding Unit}" Header="鍗曚綅" />
+ <DataGridTextColumn Width="*" Binding="{Binding Description}" Header="鎻忚堪" />
+ <DataGridTextColumn Width="*" Binding="{Binding PGroup}" Header="鍒嗙粍" />
+ <DataGridTemplateColumn Header="鎿嶄綔" Width="100" IsReadOnly="True" CanUserResize="False">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal">
+ <Button x:Name="editParameterBtn" Style="{StaticResource RowLink}" Margin="0,0,10,0"
+ DataContext="{Binding }"
+ Click="Button_Click">缂栬緫</Button>
+ <Button x:Name="delParameterBtn" Style="{StaticResource DangerLinkButton}"
+ DataContext="{Binding }"
+ Click="Button_Click">鍒犻櫎</Button>
+ </StackPanel>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ </DataGrid.Columns>
+ </DataGrid>
+ </StackPanel>
+ </Border>
+ </Grid>
+</hb:PluginControl>
\ No newline at end of file
diff --git a/HMI.ParameterManage/ParameterManage.xaml.cs b/HMI.ParameterManage/ParameterManage.xaml.cs
new file mode 100644
index 0000000..9a9bc3a
--- /dev/null
+++ b/HMI.ParameterManage/ParameterManage.xaml.cs
@@ -0,0 +1,119 @@
+锘縰sing System.IO;
+using System.Windows;
+using System.Windows.Controls;
+using HMI.Base;
+using HMI.Core.Util;
+using HMI.ParameterManage.Entity;
+using HMI.UI.Util;
+
+namespace HMI.ParameterManage
+{
+ /// <summary>
+ /// UserControl1.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class ParameterManage : PluginControl
+ {
+ private ControlModel Model;
+ private SqliteHelper SqliteHelper;
+
+ public ParameterManage()
+ {
+ InitializeComponent();
+ }
+
+ public override void InitFinish()
+ {
+ string dbpath = Path.Combine(BaseFolder, "ParameterManage.db");
+ if (!File.Exists(dbpath))
+ {
+ SqliteHelper.CreateDatabase(dbpath);
+ }
+ SqliteHelper = new SqliteHelper(dbpath);
+ SqliteHelper.ExecuteSql(@"CREATE TABLE IF NOT EXISTS product (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ name TEXT NOT NULL,
+ isMaster INTEGER,
+ parentId INTEGER,
+ UNIQUE(name)
+ );
+CREATE TABLE IF NOT EXISTS parameter (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ name TEXT NOT NULL,
+ value TEXT,
+ unit TEXT,
+ description TEXT,
+ pGroup TEXT,
+ productName TEXT,
+ UNIQUE(productName,name)
+ );
+");
+ Model = new ControlModel(SqliteHelper);
+ DataContext = Model;
+ }
+
+ private void UserControl_Loaded(object sender, RoutedEventArgs e)
+ {
+ Model.LoadProducts();
+ Loaded -= UserControl_Loaded;
+ }
+
+ private void Button_Click(object sender, RoutedEventArgs e)
+ {
+ var btn = (Button)sender;
+ switch (btn.Name)
+ {
+ case "addBtn":
+ OpenAddDialog();
+ break;
+ case "refrshBtn":
+ Model.LoadProducts();
+ break;
+ case "refreshParameterBtn":
+ Model.LoadParameters();
+ break;
+ case "addParameterBtn":
+ OpenAddParameterDialog(null);
+ break;
+ case "editParameterBtn":
+ OpenAddParameterDialog((ParameterData)btn.DataContext);
+ break;
+ default:
+ break;
+ }
+ }
+
+ private void OpenAddDialog()
+ {
+ var win = new ProductModal
+ {
+ Title = "鏂板浜у搧",
+ Owner = Window.GetWindow(this),
+ sqliteHelper = SqliteHelper
+ };
+ if (win.Open(new ProductData()) == true)
+ {
+ Model.LoadProducts();
+ }
+ }
+
+ private void OpenAddParameterDialog(ParameterData data)
+ {
+ if (Model.SelectedProduct == null)
+ {
+ ToastHelper.Warning(Window.GetWindow(this), "璇峰厛閫夋嫨涓�椤逛骇鍝�");
+ return;
+ }
+ var win = new ParameterModal
+ {
+ Title = data == null ? "鏂板鍙傛暟" : "缂栬緫鍙傛暟",
+ Owner = Window.GetWindow(this),
+ sqliteHelper = SqliteHelper
+ };
+ if (win.Open(data ?? new ParameterData { ProductName = Model.SelectedProduct.Name }) == true)
+ {
+ Model.LoadParameters();
+ }
+ }
+
+ }
+}
diff --git a/HMI.ParameterManage/ParameterModal.xaml b/HMI.ParameterManage/ParameterModal.xaml
new file mode 100644
index 0000000..ba73ce9
--- /dev/null
+++ b/HMI.ParameterManage/ParameterModal.xaml
@@ -0,0 +1,62 @@
+锘�<pu:WindowX x:Class="HMI.ParameterManage.ParameterModal"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:local="clr-namespace:HMI.ParameterManage"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
+ xmlns:ui="clr-namespace:HMI.UI;assembly=HMI.UI"
+ mc:Ignorable="d"
+ Title="Form"
+ SizeToContent="Height"
+ Width="600"
+ WindowStartupLocation="CenterOwner"
+ BorderBrush="#3E3E45"
+ BorderThickness="1"
+ Foreground="Black"
+ pu:WindowXCaption.Background="{StaticResource MainBorder}"
+ pu:WindowXModalDialog.ButtonStyle="{StaticResource ModalButton}"
+ pu:WindowXCaption.Foreground="#FFF"
+ pu:WindowXCaption.Buttons="Close"
+ pu:WindowXModalDialog.Buttons="OKCancel"
+ pu:WindowXModalDialog.CancelButtonContent="鍙栨秷"
+ pu:WindowXModalDialog.OKButtonContent="淇濆瓨"
+ pu:WindowXModalDialog.ButtonPanelMargin="0,30,10,10">
+ <Grid Margin="10">
+ <StackPanel x:Name="formPanel">
+ <pu:FormGroup x:Name="FgProductName" ui:FormGroupHelper.IsRequired="True"
+ Header="浜у搧鍚嶇О" GroupName="MyFormGroup">
+ <TextBox x:Name="TbProductName" IsReadOnly="True" Style="{StaticResource EditorTextBoxStyle}" />
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgName" ui:FormGroupHelper.IsRequired="True"
+ ui:FormGroupHelper.ValidateMethod="ValidateName"
+ Header="鍙傛暟鍚嶇О" GroupName="MyFormGroup">
+ <TextBox x:Name="TbName" Style="{StaticResource EditorTextBoxStyle}" />
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgValue" Style="{StaticResource RequiredInputFormGroupStyle}"
+ ui:FormGroupHelper.IsRequired="True"
+ Header="鍙傛暟鍊�" GroupName="MyFormGroup">
+ <TextBox x:Name="TbValue" Style="{StaticResource EditorTextBoxStyle}" />
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgUnit" Style="{StaticResource InputFormGroupStyle}"
+ Header="鍗曚綅" GroupName="MyFormGroup">
+ <TextBox x:Name="TbUnit" Style="{StaticResource EditorTextBoxStyle}" />
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgDescription" Style="{StaticResource InputFormGroupStyle}"
+Header="鎻忚堪" GroupName="MyFormGroup">
+ <TextBox x:Name="TbDescription" Style="{StaticResource MultilineEditorTextBoxStyle}" />
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgPGroup" Style="{StaticResource InputFormGroupStyle}"
+Header="缁�" GroupName="MyFormGroup">
+ <TextBox x:Name="TbPGroup" Style="{StaticResource EditorTextBoxStyle}" />
+ </pu:FormGroup>
+ </StackPanel>
+ </Grid>
+</pu:WindowX>
diff --git a/HMI.ParameterManage/ParameterModal.xaml.cs b/HMI.ParameterManage/ParameterModal.xaml.cs
new file mode 100644
index 0000000..6824e14
--- /dev/null
+++ b/HMI.ParameterManage/ParameterModal.xaml.cs
@@ -0,0 +1,141 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.ComponentModel;
+using System.Linq;
+using System.Reflection;
+using System.Windows;
+using Microsoft.Win32;
+using Panuon.WPF.UI;
+using HMI.Core.Annotation;
+using HMI.Core.Entity;
+using HMI.Core.Exceptions;
+using HMI.Core.Util;
+using HMI.ParameterManage.Entity;
+using HMI.UI;
+
+namespace HMI.ParameterManage
+{
+ /// <summary>
+ /// ModalWindow.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class ParameterModal : WindowX
+ {
+ public ParameterModal()
+ {
+ this.DataContext = this;
+ InitializeComponent();
+ }
+
+ public ParameterData Data { get; set; }
+
+ public SqliteHelper sqliteHelper { get; set; }
+
+ private bool _isProcessing;
+
+ protected override void OnClosing(CancelEventArgs e)
+ {
+ //Press Continue Button
+ if (DialogResult == true)
+ {
+ if (_isProcessing)
+ {
+ e.Cancel = true;
+ return;
+ }
+ var okButton = WindowXModalDialog.GetOKButton(this);
+ try
+ {
+ _isProcessing = true;
+ ButtonHelper.SetIsPending(okButton, true);
+ if (!ValidateForm())
+ {
+ e.Cancel = true;
+ return;
+ }
+
+ SaveOrUpdateData();
+ }
+ catch (Exception ex)
+ {
+ Panuon.WPF.UI.Toast.Show(this, "Error锛�", ToastPosition.Top);
+ e.Cancel = true;
+ return;
+ }
+ finally
+ {
+ _isProcessing = false;
+ ButtonHelper.SetIsPending(okButton, false);
+ }
+ }
+ base.OnClosing(e);
+ }
+
+ public bool ValidateName(object value, out string err)
+ {
+ err = null;
+ string segment = string.IsNullOrEmpty(Data.Id) ? "" : $" AND id!='{Data.Id}'";
+ string sql = $"SELECT 1 FROM parameter WHERE name='{TbName.Text}' AND productName='{Data.ProductName}'{segment};";
+ if (sqliteHelper.HasData(sql))
+ {
+ err = "鍙傛暟鍚嶇О涓嶈兘閲嶅";
+ return false;
+ }
+ return true;
+ }
+
+ private bool ValidateForm()
+ {
+ bool flag = FormGroupHelper.ValidateForm(formPanel);
+ if (flag)
+ {
+ Data.Name = TbName.Text;
+ Data.Value = TbValue.Text;
+ Data.Unit = TbUnit.Text;
+ Data.Description = TbDescription.Text;
+ Data.ProductName = TbProductName.Text;
+ Data.PGroup = TbPGroup.Text;
+ }
+ return flag;
+ }
+
+ public bool? Open(ParameterData data)
+ {
+ Data = data;
+ TbName.Text = Data.Name;
+ TbValue.Text = Data.Value;
+ TbUnit.Text = Data.Unit;
+ TbProductName.Text = Data.ProductName;
+ TbDescription.Text = Data.Description;
+ TbPGroup.Text = Data.PGroup;
+ return this.ShowDialog();
+ }
+
+ private void SaveOrUpdateData()
+ {
+ if (string.IsNullOrEmpty(Data.Id))
+ {
+ InsertData(Data);
+ }
+ else
+ {
+ UpdateData(Data);
+ }
+ }
+
+ public void InsertData(ParameterData data)
+ {
+ string sql = $@"INSERT INTO parameter (name,value,unit,description,productName,pGroup)
+ VALUES
+ ('{data.Name}','{data.Value}','{data.Unit}','{data.Description}','{data.ProductName}','{data.PGroup}');";
+ sqliteHelper.ExecuteSql(sql);
+ }
+
+ public void UpdateData(ParameterData data)
+ {
+ string sql = $@"UPDATE parameter SET name='{data.Name}',value='{data.Value}',unit='{data.Unit}',
+description='{data.Description}',productName='{data.ProductName}',pGroup='{data.PGroup}' WHERE id='{data.Id}';";
+ sqliteHelper.ExecuteSql(sql);
+ }
+ }
+}
diff --git a/HMI.ParameterManage/ProductModal.xaml b/HMI.ParameterManage/ProductModal.xaml
new file mode 100644
index 0000000..fcaf3df
--- /dev/null
+++ b/HMI.ParameterManage/ProductModal.xaml
@@ -0,0 +1,57 @@
+锘�<pu:WindowX x:Class="HMI.ParameterManage.ProductModal"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:local="clr-namespace:HMI.ParameterManage"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
+ mc:Ignorable="d"
+ Title="Form"
+ SizeToContent="Height"
+ Width="600"
+ WindowStartupLocation="CenterOwner"
+ BorderBrush="#3E3E45"
+ BorderThickness="1"
+ Foreground="Black"
+ pu:WindowXCaption.Background="{StaticResource MainBorder}"
+ pu:WindowXModalDialog.ButtonStyle="{StaticResource ModalButton}"
+ pu:WindowXCaption.Foreground="#FFF"
+ pu:WindowXCaption.Buttons="Close"
+ pu:WindowXModalDialog.Buttons="OKCancel"
+ pu:WindowXModalDialog.CancelButtonContent="鍙栨秷"
+ pu:WindowXModalDialog.OKButtonContent="淇濆瓨"
+ pu:WindowXModalDialog.ButtonPanelMargin="0,30,10,10">
+ <Window.Resources>
+ <ResourceDictionary>
+ <ResourceDictionary.MergedDictionaries>
+ <pu:StyleDictionary Includes="TreeView" />
+ <ResourceDictionary Source="/HMI.UI;component/Style/PanuonResource.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/Colors.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+ <uic:PathImageConverter x:Key="path2Image"/>
+ <uic:DataGridRowNumberConverter x:Key="rowNumber"/>
+ </ResourceDictionary>
+ </Window.Resources>
+
+ <Grid Margin="10">
+ <StackPanel>
+ <pu:FormGroup x:Name="FgName" Style="{StaticResource RequiredInputFormGroupStyle}"
+ Header="浜у搧鍚嶇О" GroupName="MyFormGroup">
+ <TextBox x:Name="TbName" Style="{StaticResource EditorTextBoxStyle}" />
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgIsMaster" Style="{StaticResource InputFormGroupStyle}"
+ Header="鏄惁鏍蜂欢" GroupName="MyFormGroup">
+ <CheckBox x:Name="TbIsMaster" />
+ </pu:FormGroup>
+
+ <pu:FormGroup x:Name="FgParentId" Style="{StaticResource InputFormGroupStyle}"
+ Header="缁ф壙" GroupName="MyFormGroup">
+ <TextBox x:Name="TbParentId" Style="{StaticResource EditorTextBoxStyle}" />
+ </pu:FormGroup>
+ </StackPanel>
+ </Grid>
+</pu:WindowX>
diff --git a/HMI.ParameterManage/ProductModal.xaml.cs b/HMI.ParameterManage/ProductModal.xaml.cs
new file mode 100644
index 0000000..d67793d
--- /dev/null
+++ b/HMI.ParameterManage/ProductModal.xaml.cs
@@ -0,0 +1,159 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.ComponentModel;
+using System.Linq;
+using System.Reflection;
+using System.Windows;
+using Microsoft.Win32;
+using Panuon.WPF.UI;
+using HMI.Core.Annotation;
+using HMI.Core.Entity;
+using HMI.Core.Exceptions;
+using HMI.Core.Util;
+using HMI.ParameterManage.Entity;
+using HMI.UI;
+
+namespace HMI.ParameterManage
+{
+ /// <summary>
+ /// ModalWindow.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class ProductModal : WindowX
+ {
+ public ProductModal()
+ {
+ this.DataContext = this;
+ InitializeComponent();
+ }
+
+ public ProductData Data { get; set; }
+
+ public SqliteHelper sqliteHelper { get; set; }
+
+ private bool _isProcessing;
+
+ protected override void OnClosing(CancelEventArgs e)
+ {
+ //Press Continue Button
+ if (DialogResult == true)
+ {
+ if (_isProcessing)
+ {
+ e.Cancel = true;
+ return;
+ }
+ var okButton = WindowXModalDialog.GetOKButton(this);
+ try
+ {
+ _isProcessing = true;
+ ButtonHelper.SetIsPending(okButton, true);
+ if (!ValidateForm())
+ {
+ e.Cancel = true;
+ return;
+ }
+
+ SaveOrUpdateData();
+ }
+ catch (Exception ex)
+ {
+ Panuon.WPF.UI.Toast.Show(this, "Error锛�", ToastPosition.Top);
+ e.Cancel = true;
+ return;
+ }
+ finally
+ {
+ _isProcessing = false;
+ ButtonHelper.SetIsPending(okButton, false);
+ }
+ }
+ base.OnClosing(e);
+ }
+
+ private bool ValidateForm()
+ {
+ try
+ {
+
+ //
+
+ FormValidateException ex = new FormValidateException();
+ string segment = string.IsNullOrEmpty(Data.Id) ? "" : $" AND id!='{Data.Id}'";
+ string sql = $"SELECT 1 FROM product WHERE name='{TbName.Text}'{segment};";
+ if (string.IsNullOrEmpty(TbName.Text))
+ {
+ ex.Result.Add(new FormGroupValidateResult("璇疯緭鍏ヤ骇鍝佸悕绉�", FgName));
+ }
+ else if (sqliteHelper.HasData(sql))
+ {
+ ex.Result.Add(new FormGroupValidateResult("浜у搧鍚嶇О涓嶈兘閲嶅", FgName));
+ }
+ else
+ {
+ FgName.ValidateResult = ValidateResult.None;
+ FgName.Message = null;
+ }
+
+ if (!ex.Success)
+ {
+ throw ex;
+ }
+ }
+ catch (FormValidateException ex)
+ {
+ foreach (var data in ex.Result)
+ {
+ var fg = (FormGroup)data.Sender;
+ fg.ValidateResult = ValidateResult.Error;
+ fg.Message = data.Message;
+ }
+ return false;
+ }
+
+ Data.Name = TbName.Text;
+ Data.IsMaster = TbIsMaster.IsChecked == true;
+ Data.ParentId = TbParentId.Text;
+ return true;
+ }
+
+ public bool? Open(ProductData data)
+ {
+ Data = data;
+ TbName.Text = Data.Name;
+ TbIsMaster.IsChecked = Data.IsMaster;
+ TbParentId.Text = Data.ParentId;
+
+ return this.ShowDialog();
+ }
+
+ private void SaveOrUpdateData()
+ {
+ if (string.IsNullOrEmpty(Data.Id))
+ {
+ InsertData(Data);
+ }
+ else
+ {
+ UpdateData(Data);
+ }
+ }
+
+ public void InsertData(ProductData data)
+ {
+ string sql = $@"INSERT INTO product (name,isMaster,parentId)
+ VALUES
+ ('{data.Name}',{(data.IsMaster ? 1 : 0)} ,{data.ParentId} );";
+ sqliteHelper.ExecuteSql(sql);
+ }
+
+
+
+ public void UpdateData(ProductData data)
+ {
+ string sql = $@"UPDATE product SET name='{data.Name}',isMaster='{(data.IsMaster ? 1 : 0)}',parentId = {data.ParentId}
+WHERE id='{data.Id}';";
+ sqliteHelper.ExecuteSql(sql);
+ }
+ }
+}
diff --git a/HMI.ParameterManage/Properties/AssemblyInfo.cs b/HMI.ParameterManage/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..7275233
--- /dev/null
+++ b/HMI.ParameterManage/Properties/AssemblyInfo.cs
@@ -0,0 +1,52 @@
+锘縰sing System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// 鏈夊叧绋嬪簭闆嗙殑涓�鑸俊鎭敱浠ヤ笅
+// 鎺у埗銆傛洿鏀硅繖浜涚壒鎬у�煎彲淇敼
+// 涓庣▼搴忛泦鍏宠仈鐨勪俊鎭��
+[assembly: AssemblyTitle("HMI.ParameterManage")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Organization")]
+[assembly: AssemblyProduct("HMI.ParameterManage")]
+[assembly: AssemblyCopyright("Copyright 漏 Organization 2025")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 灏� ComVisible 璁剧疆涓� false 浼氫娇姝ょ▼搴忛泦涓殑绫诲瀷
+//瀵� COM 缁勪欢涓嶅彲瑙併�傚鏋滈渶瑕佷粠 COM 璁块棶姝ょ▼搴忛泦涓殑绫诲瀷
+//璇峰皢姝ょ被鍨嬬殑 ComVisible 鐗规�ц缃负 true銆�
+[assembly: ComVisible(false)]
+
+//鑻ヨ寮�濮嬬敓鎴愬彲鏈湴鍖栫殑搴旂敤绋嬪簭锛岃璁剧疆
+//.csproj 鏂囦欢涓殑 <UICulture>CultureYouAreCodingWith</UICulture>
+//鍦� <PropertyGroup> 涓�備緥濡傦紝濡傛灉浣犱娇鐢ㄧ殑鏄編鍥借嫳璇��
+//浣跨敤鐨勬槸缇庡浗鑻辫锛岃灏� <UICulture> 璁剧疆涓� en-US銆� 鐒跺悗鍙栨秷
+//瀵逛互涓� NeutralResourceLanguage 鐗规�х殑娉ㄩ噴銆� 鏇存柊
+//浠ヤ笅琛屼腑鐨勨�渆n-US鈥濅互鍖归厤椤圭洰鏂囦欢涓殑 UICulture 璁剧疆銆�
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly:ThemeInfo(
+ ResourceDictionaryLocation.None, //涓婚鐗瑰畾璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //鎴栧簲鐢ㄧ▼搴忚祫婧愬瓧鍏镐腑鎵惧埌鏃朵娇鐢�)
+ ResourceDictionaryLocation.SourceAssembly //甯歌璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //銆佸簲鐢ㄧ▼搴忔垨浠讳綍涓婚涓撶敤璧勬簮瀛楀吀涓壘鍒版椂浣跨敤)
+)]
+
+
+// 绋嬪簭闆嗙殑鐗堟湰淇℃伅鐢变笅鍒楀洓涓�肩粍鎴�:
+//
+// 涓荤増鏈�
+// 娆$増鏈�
+// 鐢熸垚鍙�
+// 淇鍙�
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/HMI.ParameterManage/Properties/Resources.Designer.cs b/HMI.ParameterManage/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..c0bcce5
--- /dev/null
+++ b/HMI.ParameterManage/Properties/Resources.Designer.cs
@@ -0,0 +1,62 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// 姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+// 杩愯鏃剁増鏈�: 4.0.30319.42000
+//
+// 瀵规鏂囦欢鐨勬洿鏀瑰彲鑳藉鑷翠笉姝g‘鐨勮涓猴紝濡傛灉
+// 閲嶆柊鐢熸垚浠g爜锛屽垯鎵�鍋氭洿鏀瑰皢涓㈠け銆�
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.ParameterManage.Properties {
+
+
+ /// <summary>
+ /// 寮虹被鍨嬭祫婧愮被锛岀敤浜庢煡鎵炬湰鍦板寲瀛楃涓茬瓑銆�
+ /// </summary>
+ // 姝ょ被鏄敱 StronglyTypedResourceBuilder
+ // 绫婚�氳繃绫讳技浜� ResGen 鎴� Visual Studio 鐨勫伐鍏疯嚜鍔ㄧ敓鎴愮殑銆�
+ // 鑻ヨ娣诲姞鎴栫Щ闄ゆ垚鍛橈紝璇风紪杈� .ResX 鏂囦欢锛岀劧鍚庨噸鏂拌繍琛� ResGen
+ // (浠� /str 浣滀负鍛戒护閫夐」)锛屾垨閲嶆柊鐢熸垚 VS 椤圭洰銆�
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// 杩斿洖姝ょ被浣跨敤鐨勭紦瀛� ResourceManager 瀹炰緥銆�
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if ((resourceMan == null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HMI.ParameterManage.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// 閲嶅啓褰撳墠绾跨▼鐨� CurrentUICulture 灞炴�э紝瀵�
+ /// 浣跨敤姝ゅ己绫诲瀷璧勬簮绫荤殑鎵�鏈夎祫婧愭煡鎵炬墽琛岄噸鍐欍��
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/HMI.ParameterManage/Properties/Resources.resx b/HMI.ParameterManage/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/HMI.ParameterManage/Properties/Resources.resx
@@ -0,0 +1,117 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
diff --git a/HMI.ParameterManage/Properties/Settings.Designer.cs b/HMI.ParameterManage/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..6ff41e5
--- /dev/null
+++ b/HMI.ParameterManage/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.ParameterManage.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/HMI.ParameterManage/Properties/Settings.settings b/HMI.ParameterManage/Properties/Settings.settings
new file mode 100644
index 0000000..033d7a5
--- /dev/null
+++ b/HMI.ParameterManage/Properties/Settings.settings
@@ -0,0 +1,7 @@
+锘�<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile>
\ No newline at end of file
diff --git a/HMI.SettingControl/HMI.SettingControl.csproj b/HMI.SettingControl/HMI.SettingControl.csproj
new file mode 100644
index 0000000..305b3ca
--- /dev/null
+++ b/HMI.SettingControl/HMI.SettingControl.csproj
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{3DD748AC-9708-49AD-B846-659214035588}</ProjectGuid>
+ <OutputType>library</OutputType>
+ <RootNamespace>HMI.SettingControl</RootNamespace>
+ <AssemblyName>HMI.SettingControl</AssemblyName>
+ <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <WarningLevel>4</WarningLevel>
+ <Deterministic>true</Deterministic>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>bin\x64\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <DebugType>full</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ <OutputPath>bin\x64\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <Optimize>true</Optimize>
+ <DebugType>pdbonly</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="log4net, Version=3.0.3.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\log4net.3.0.3\lib\net462\log4net.dll</HintPath>
+ </Reference>
+ <Reference Include="Panuon.WPF, Version=1.1.2.2, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\Panuon.WPF.1.1.2.2\lib\net472\Panuon.WPF.dll</HintPath>
+ </Reference>
+ <Reference Include="Panuon.WPF.UI, Version=1.2.4.8, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\Panuon.WPF.UI.1.2.4.9\lib\net472\Panuon.WPF.UI.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Configuration" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Web" />
+ <Reference Include="System.Xml" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Xaml">
+ <RequiredTargetFramework>4.0</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="WindowsBase" />
+ <Reference Include="PresentationCore" />
+ <Reference Include="PresentationFramework" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="SystemConfig.xaml.cs">
+ <DependentUpon>SystemConfig.xaml</DependentUpon>
+ </Compile>
+ <Page Include="SettingControl.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Compile Include="SettingControl.xaml.cs">
+ <DependentUpon>SettingControl.xaml</DependentUpon>
+ <SubType>Code</SubType>
+ </Compile>
+ <Page Include="SystemConfig.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Properties\AssemblyInfo.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ </EmbeddedResource>
+ <None Include="packages.config" />
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\HMI.Base\HMI.Base.csproj">
+ <Project>{2a6f9720-a890-4036-9d73-41a0dae28341}</Project>
+ <Name>HMI.Base</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.Core\HMI.Core.csproj">
+ <Project>{3e3bf44a-0b69-45c5-9512-528cb48a7106}</Project>
+ <Name>HMI.Core</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.UI\HMI.UI.csproj">
+ <Project>{f17de6b5-af1d-48c6-94a0-6b763a6546a6}</Project>
+ <Name>HMI.UI</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <PropertyGroup>
+ <PostBuildEvent>copy /Y "$(TargetPath)" "$(SolutionDir)bin\$(PlatformName)\$(ConfigurationName)\Plugin\$(TargetFileName)"
+copy /Y "$(TargetDir)$(TargetName).pdb" "$(SolutionDir)bin\$(PlatformName)\$(ConfigurationName)\Plugin\$(TargetName).pdb"</PostBuildEvent>
+ </PropertyGroup>
+</Project>
\ No newline at end of file
diff --git a/HMI.SettingControl/Properties/AssemblyInfo.cs b/HMI.SettingControl/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..630e0c8
--- /dev/null
+++ b/HMI.SettingControl/Properties/AssemblyInfo.cs
@@ -0,0 +1,52 @@
+锘縰sing System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// 鏈夊叧绋嬪簭闆嗙殑涓�鑸俊鎭敱浠ヤ笅
+// 鎺у埗銆傛洿鏀硅繖浜涚壒鎬у�煎彲淇敼
+// 涓庣▼搴忛泦鍏宠仈鐨勪俊鎭��
+[assembly: AssemblyTitle("HMI.SettingControl")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Organization")]
+[assembly: AssemblyProduct("HMI.SettingControl")]
+[assembly: AssemblyCopyright("Copyright 漏 Organization 2025")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 灏� ComVisible 璁剧疆涓� false 浼氫娇姝ょ▼搴忛泦涓殑绫诲瀷
+//瀵� COM 缁勪欢涓嶅彲瑙併�傚鏋滈渶瑕佷粠 COM 璁块棶姝ょ▼搴忛泦涓殑绫诲瀷
+//璇峰皢姝ょ被鍨嬬殑 ComVisible 鐗规�ц缃负 true銆�
+[assembly: ComVisible(false)]
+
+//鑻ヨ寮�濮嬬敓鎴愬彲鏈湴鍖栫殑搴旂敤绋嬪簭锛岃璁剧疆
+//.csproj 鏂囦欢涓殑 <UICulture>CultureYouAreCodingWith</UICulture>
+//鍦� <PropertyGroup> 涓�備緥濡傦紝濡傛灉浣犱娇鐢ㄧ殑鏄編鍥借嫳璇��
+//浣跨敤鐨勬槸缇庡浗鑻辫锛岃灏� <UICulture> 璁剧疆涓� en-US銆� 鐒跺悗鍙栨秷
+//瀵逛互涓� NeutralResourceLanguage 鐗规�х殑娉ㄩ噴銆� 鏇存柊
+//浠ヤ笅琛屼腑鐨勨�渆n-US鈥濅互鍖归厤椤圭洰鏂囦欢涓殑 UICulture 璁剧疆銆�
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly:ThemeInfo(
+ ResourceDictionaryLocation.None, //涓婚鐗瑰畾璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //鎴栧簲鐢ㄧ▼搴忚祫婧愬瓧鍏镐腑鎵惧埌鏃朵娇鐢�)
+ ResourceDictionaryLocation.SourceAssembly //甯歌璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //銆佸簲鐢ㄧ▼搴忔垨浠讳綍涓婚涓撶敤璧勬簮瀛楀吀涓壘鍒版椂浣跨敤)
+)]
+
+
+// 绋嬪簭闆嗙殑鐗堟湰淇℃伅鐢变笅鍒楀洓涓�肩粍鎴�:
+//
+// 涓荤増鏈�
+// 娆$増鏈�
+// 鐢熸垚鍙�
+// 淇鍙�
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/HMI.SettingControl/Properties/Resources.Designer.cs b/HMI.SettingControl/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..0a8001f
--- /dev/null
+++ b/HMI.SettingControl/Properties/Resources.Designer.cs
@@ -0,0 +1,62 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// 姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+// 杩愯鏃剁増鏈�: 4.0.30319.42000
+//
+// 瀵规鏂囦欢鐨勬洿鏀瑰彲鑳藉鑷翠笉姝g‘鐨勮涓猴紝濡傛灉
+// 閲嶆柊鐢熸垚浠g爜锛屽垯鎵�鍋氭洿鏀瑰皢涓㈠け銆�
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.SettingControl.Properties {
+
+
+ /// <summary>
+ /// 寮虹被鍨嬭祫婧愮被锛岀敤浜庢煡鎵炬湰鍦板寲瀛楃涓茬瓑銆�
+ /// </summary>
+ // 姝ょ被鏄敱 StronglyTypedResourceBuilder
+ // 绫婚�氳繃绫讳技浜� ResGen 鎴� Visual Studio 鐨勫伐鍏疯嚜鍔ㄧ敓鎴愮殑銆�
+ // 鑻ヨ娣诲姞鎴栫Щ闄ゆ垚鍛橈紝璇风紪杈� .ResX 鏂囦欢锛岀劧鍚庨噸鏂拌繍琛� ResGen
+ // (浠� /str 浣滀负鍛戒护閫夐」)锛屾垨閲嶆柊鐢熸垚 VS 椤圭洰銆�
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// 杩斿洖姝ょ被浣跨敤鐨勭紦瀛� ResourceManager 瀹炰緥銆�
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if ((resourceMan == null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HMI.SettingControl.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// 閲嶅啓褰撳墠绾跨▼鐨� CurrentUICulture 灞炴�э紝瀵�
+ /// 浣跨敤姝ゅ己绫诲瀷璧勬簮绫荤殑鎵�鏈夎祫婧愭煡鎵炬墽琛岄噸鍐欍��
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/HMI.SettingControl/Properties/Resources.resx b/HMI.SettingControl/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/HMI.SettingControl/Properties/Resources.resx
@@ -0,0 +1,117 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
diff --git a/HMI.SettingControl/Properties/Settings.Designer.cs b/HMI.SettingControl/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..80ac4ab
--- /dev/null
+++ b/HMI.SettingControl/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.SettingControl.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/HMI.SettingControl/Properties/Settings.settings b/HMI.SettingControl/Properties/Settings.settings
new file mode 100644
index 0000000..033d7a5
--- /dev/null
+++ b/HMI.SettingControl/Properties/Settings.settings
@@ -0,0 +1,7 @@
+锘�<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile>
\ No newline at end of file
diff --git a/HMI.SettingControl/SettingControl.xaml b/HMI.SettingControl/SettingControl.xaml
new file mode 100644
index 0000000..3116895
--- /dev/null
+++ b/HMI.SettingControl/SettingControl.xaml
@@ -0,0 +1,77 @@
+锘�<hb:PluginControl x:Class="HMI.SettingControl.SettingControl"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:hb="clr-namespace:HMI.Base;assembly=HMI.Base"
+ xmlns:local="clr-namespace:HMI.SettingControl"
+ mc:Ignorable="d"
+ xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ xmlns:dp="clr-namespace:HMI.UI;assembly=HMI.UI"
+ Loaded="UserControl_Loaded"
+ Background="{StaticResource WorkspaceBackground}"
+ d:DesignHeight="450" d:DesignWidth="800">
+ <UserControl.Resources>
+ <ResourceDictionary>
+ <ResourceDictionary.MergedDictionaries>
+ <pu:StyleDictionary Includes="TabControl" />
+ <ResourceDictionary Source="/HMI.UI;component/Style/PanuonResource.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+
+ <uic:PathImageConverter x:Key="path2Image"/>
+ <uic:DataGridRowNumberConverter x:Key="rowNumber"/>
+ </ResourceDictionary>
+ </UserControl.Resources>
+
+ <Grid>
+ <Border Style="{StaticResource CardBoarder}">
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition />
+ </Grid.RowDefinitions>
+ <TextBlock VerticalAlignment="Center" Text="绯荤粺璁剧疆" Margin="0,0,0,10"
+ FontSize="{StaticResource TitleFontSize}" />
+ <TabControl Grid.Row="1"
+pu:TabControlHelper.HeaderPanelAlignment="Front"
+pu:TabControlHelper.ItemsBackground="{StaticResource PrimaryColorContract}"
+pu:TabControlHelper.ItemsForeground="{StaticResource PrimaryColor}"
+
+pu:TabControlHelper.ItemsHeight="40"
+pu:TabControlHelper.ItemsHorizontalHeaderAlignment="Left"
+pu:TabControlHelper.ItemsHoverBackground="{StaticResource SecondPrimaryColor}"
+pu:TabControlHelper.ItemsHoverForeground="{StaticResource SecondPrimaryColorContract}"
+pu:TabControlHelper.ItemsRibbonLineMargin="0,5,0,5"
+pu:TabControlHelper.ItemsRibbonLineThickness="4"
+pu:TabControlHelper.ItemsRibbonLineVisibility="Visible"
+pu:TabControlHelper.ItemsSelectedBackground="{StaticResource PrimaryColor}"
+pu:TabControlHelper.ItemsSelectedForeground="{StaticResource PrimaryColorContract}"
+pu:TabControlHelper.ItemsSelectedRibbonLineBrush="#FFFFFF"
+pu:TabControlHelper.ItemsSelectedRibbonLineThickness="2"
+TabStripPlacement="Left"
+ BorderThickness="0"
+ BorderBrush="{StaticResource CommonBoarder}"
+ ItemsSource="{Binding TabItems}">
+
+ <TabControl.Resources>
+ <Style TargetType="TabControl" BasedOn="{StaticResource {x:Static pu:StyleKeys.TabControlStyle}}">
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="TabControl">
+ <Border BorderBrush="Black" BorderThickness="1">
+ <ContentPresenter/>
+ </Border>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+ </TabControl.Resources>
+
+ </TabControl>
+ </Grid>
+ </Border>
+ </Grid>
+</hb:PluginControl>
diff --git a/HMI.SettingControl/SettingControl.xaml.cs b/HMI.SettingControl/SettingControl.xaml.cs
new file mode 100644
index 0000000..6390b40
--- /dev/null
+++ b/HMI.SettingControl/SettingControl.xaml.cs
@@ -0,0 +1,104 @@
+锘縰sing System.Collections.ObjectModel;
+using System.ComponentModel;
+using System.Runtime.CompilerServices;
+using System.Windows;
+using System.Windows.Controls;
+using HMI.Base;
+using HMI.Core.Api;
+using log4net;
+
+namespace HMI.SettingControl
+{
+ /// <summary>
+ /// UserControl1.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class SettingControl : PluginControl
+ {
+ #region ...
+ public virtual event PropertyChangedEventHandler PropertyChanged;
+
+ protected virtual void Set(string name)
+ {
+
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
+ }
+
+ protected void Set<T>(ref T old, T @new, [CallerMemberName] string propertyName = null)
+ {
+ old = @new;
+ if (propertyName != null)
+ {
+ Set(propertyName);
+ }
+ }
+ #endregion
+
+ #region 灞炴��
+ private ILog log;
+ private ObservableCollection<TabItem> tabItems;
+
+ public ObservableCollection<TabItem> TabItems
+ {
+ get { return tabItems; }
+ set { Set(ref tabItems, value); }
+ }
+
+ #endregion
+
+ #region PluginApi
+
+ public object Init()
+ {
+ return null;
+ }
+
+ public object Active()
+ {
+ return null;
+ }
+
+ public object DeActive()
+ {
+ return null;
+ }
+
+ public void OnTabChange(object sender, object args)
+ {
+
+ }
+
+ public void SetLogger(ILog logger)
+ {
+ log = logger;
+ }
+ #endregion
+
+ public SettingControl()
+ {
+ DataContext = this;
+ InitializeComponent();
+ }
+
+ private void UserControl_Loaded(object sender, RoutedEventArgs e)
+ {
+ TabItems = new ObservableCollection<TabItem>() {
+ new TabItem
+ {
+ Header = "绯荤粺璁剧疆",
+ Content = new SystemConfig()
+ }
+ };
+ foreach (var d in PluginLoader.Instance.Plugins)
+ {
+ if (d.SettingControl == null) continue;
+ TabItems.Add(new TabItem
+ {
+ Header = d.Name,
+ Tag = d,
+ Content = d.SettingControl
+ });
+ }
+ Loaded -= UserControl_Loaded;
+ }
+ }
+}
diff --git a/HMI.SettingControl/SystemConfig.xaml b/HMI.SettingControl/SystemConfig.xaml
new file mode 100644
index 0000000..27114f5
--- /dev/null
+++ b/HMI.SettingControl/SystemConfig.xaml
@@ -0,0 +1,46 @@
+锘�<UserControl x:Class="HMI.SettingControl.SystemConfig"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:local="clr-namespace:HMI.SettingControl"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
+ mc:Ignorable="d"
+ Background="#FFF"
+ d:DesignHeight="450" d:DesignWidth="800">
+ <UserControl.Resources>
+ <ResourceDictionary>
+ <ResourceDictionary.MergedDictionaries>
+ <pu:StyleDictionary Includes="TabControl" />
+ <ResourceDictionary Source="/HMI.UI;component/Style/PanuonResource.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+
+ <uic:PathImageConverter x:Key="path2Image"/>
+ <uic:DataGridRowNumberConverter x:Key="rowNumber"/>
+ </ResourceDictionary>
+ </UserControl.Resources>
+
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition/>
+ <RowDefinition Height="Auto"/>
+ </Grid.RowDefinitions>
+ <GroupBox Header="绋嬪簭璁剧疆" Padding="10">
+ <StackPanel>
+ <pu:FormGroup Header="Logo" GroupName="MyFormGroup">
+ <TextBox Text="{Binding LogoPath}"/>
+ </pu:FormGroup>
+
+ <pu:FormGroup Header="鏍囬" GroupName="MyFormGroup">
+ <TextBox Text="{Binding WindowTitle}"/>
+ </pu:FormGroup>
+ </StackPanel>
+ </GroupBox>
+ <DockPanel Grid.Row="1" LastChildFill="False">
+ <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}" Click="Button_Click">淇濆瓨</Button>
+ </DockPanel>
+ </Grid>
+</UserControl>
diff --git a/HMI.SettingControl/SystemConfig.xaml.cs b/HMI.SettingControl/SystemConfig.xaml.cs
new file mode 100644
index 0000000..cb7ec96
--- /dev/null
+++ b/HMI.SettingControl/SystemConfig.xaml.cs
@@ -0,0 +1,27 @@
+锘縰sing System.Windows.Controls;
+using HMI.Core.Setting;
+using HMI.Core.Util;
+
+namespace HMI.SettingControl
+{
+ /// <summary>
+ /// SystemConfig.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class SystemConfig : UserControl
+ {
+ public SystemConfig()
+ {
+ var model = new SystemSettingModel();
+ BeanUtil.Copy(SystemSetting.Instance, model);
+ DataContext = model;
+ InitializeComponent();
+ }
+
+ private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
+ {
+ SystemSettingModel settingModel = (SystemSettingModel)DataContext;
+ XmlHelper.SerializeToXml(PathHelper.ConfigFolder + "\\SystemConfig.xml",settingModel);
+ SystemSetting.ReLoad();
+ }
+ }
+}
diff --git a/HMI.SettingControl/packages.config b/HMI.SettingControl/packages.config
new file mode 100644
index 0000000..63cdc53
--- /dev/null
+++ b/HMI.SettingControl/packages.config
@@ -0,0 +1,6 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="log4net" version="3.0.3" targetFramework="net472" />
+ <package id="Panuon.WPF" version="1.1.2.2" targetFramework="net472" />
+ <package id="Panuon.WPF.UI" version="1.2.4.9" targetFramework="net472" />
+</packages>
\ No newline at end of file
diff --git a/HMI.UI/Converter/DataGridRowNumberConverter.cs b/HMI.UI/Converter/DataGridRowNumberConverter.cs
new file mode 100644
index 0000000..d6922a2
--- /dev/null
+++ b/HMI.UI/Converter/DataGridRowNumberConverter.cs
@@ -0,0 +1,24 @@
+锘縰sing System;
+using System.Globalization;
+using System.Windows.Controls;
+using System.Windows.Data;
+
+namespace HMI.UI.Converter
+{
+ public class DataGridRowNumberConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (value is DataGridRow row)
+ {
+ return row.GetIndex() + 1;
+ }
+ return -1;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return value;
+ }
+ }
+}
diff --git a/HMI.UI/Converter/PathImageConverter.cs b/HMI.UI/Converter/PathImageConverter.cs
new file mode 100644
index 0000000..b940837
--- /dev/null
+++ b/HMI.UI/Converter/PathImageConverter.cs
@@ -0,0 +1,29 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+using System.Windows.Media.Imaging;
+using HMI.Core.Util;
+
+namespace HMI.UI.Converter
+{
+ public class PathImageConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (value == null) return null;
+ string imagePath = Path.Combine(PathHelper.IconFolder, value.ToString());
+ if (!File.Exists(imagePath)) return null;
+ return new BitmapImage(new Uri(imagePath));
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return value;
+ }
+ }
+}
diff --git a/HMI.UI/DpUtil/DpPlugin.cs b/HMI.UI/DpUtil/DpPlugin.cs
new file mode 100644
index 0000000..50d4bce
--- /dev/null
+++ b/HMI.UI/DpUtil/DpPlugin.cs
@@ -0,0 +1,22 @@
+锘縰sing System.Windows.Media;
+using System.Windows;
+using System.Windows.Controls;
+
+namespace HMI.UI
+{
+ public class DpPlugin
+ {
+ public static Brush GetHoverColor(Button button)
+ {
+ return (Brush)button.GetValue(HoverColorProperty);
+ }
+
+ public static void SetHoverColor(Button button, Brush value)
+ {
+ button.SetValue(HoverColorProperty, value);
+ }
+
+ public static readonly DependencyProperty HoverColorProperty = DependencyProperty.RegisterAttached("HoverColor", typeof(Brush), typeof(DpPlugin),
+ new PropertyMetadata(new SolidColorBrush(Color.FromRgb(255, 255, 255))));
+ }
+}
diff --git a/HMI.UI/DpUtil/FormGroupHelper.cs b/HMI.UI/DpUtil/FormGroupHelper.cs
new file mode 100644
index 0000000..245a054
--- /dev/null
+++ b/HMI.UI/DpUtil/FormGroupHelper.cs
@@ -0,0 +1,99 @@
+锘縰sing System;
+using System.ComponentModel;
+using System.Windows;
+using System.Windows.Controls;
+using Panuon.WPF.UI;
+using Panuon.WPF.UI.Configurations;
+
+namespace HMI.UI
+{
+ public class FormGroupHelper
+ {
+ public static bool GetIsRequired(FormGroup fg)
+ {
+ return (bool)fg.GetValue(IsRequiredProperty);
+ }
+
+ public static void SetIsRequired(FormGroup fg, bool value)
+ {
+ fg.SetValue(IsRequiredProperty, value);
+ }
+
+ public static readonly DependencyProperty IsRequiredProperty =
+ DependencyProperty.RegisterAttached("IsRequired", typeof(bool), typeof(FormGroupHelper),
+ new PropertyMetadata(false, (d, e) =>
+ {
+ if (!(d is FormGroup fg)) return;
+ if ((bool)e.NewValue)
+ {
+ var style = Application.Current.FindResource("RequiredInputFormGroupStyle") as Style;
+ fg.Style = style;
+ }
+ else
+ {
+ var style = Application.Current.FindResource("RequiredInputFormGroupStyle") as Style;
+ fg.Style = style;
+ }
+ }));
+
+
+ public delegate bool ValidateMethodDelegate(object value, out string msg);
+ public static ValidateMethodDelegate GetValidateMethod(FormGroup fg)
+ {
+ return (ValidateMethodDelegate)fg.GetValue(ValidateMethodProperty);
+ }
+
+ public static void SetValidateMethod(FormGroup fg, ValidateMethodDelegate value)
+ {
+ fg.SetValue(ValidateMethodProperty, value);
+ }
+
+ public static readonly DependencyProperty ValidateMethodProperty =
+ DependencyProperty.RegisterAttached("ValidateMethod", typeof(ValidateMethodDelegate), typeof(FormGroupHelper),
+ new PropertyMetadata(null));
+
+ public static bool ValidateForm(StackPanel fgPanel)
+ {
+ if (fgPanel.Children == null) return true;
+ bool res = true;
+ foreach (var child in fgPanel.Children)
+ {
+ if (child is FormGroup fg)
+ {
+ object content = fg.Content;
+ object value = GetValidateValue(content);
+ if (GetIsRequired(fg) && string.IsNullOrEmpty(value.ToString()))
+ {
+ fg.ValidateResult = ValidateResult.Error;
+ fg.Message = $"{fg.Header}涓嶈兘涓虹┖";
+ res = false;
+ }
+ else
+ {
+ ValidateMethodDelegate method = GetValidateMethod(fg);
+ if (method != null && !method(value, out string err))
+ {
+ fg.ValidateResult = ValidateResult.Error;
+ fg.Message = err;
+ res = false;
+ }
+ }
+ }
+ }
+ return res;
+ }
+
+ private static object GetValidateValue(object content)
+ {
+ if (content == null) return null;
+ if (content is UIElementCollection elementCollection)
+ return elementCollection.Count > 0 ? GetValidateValue(elementCollection[0]) : null;
+ if (content is TextBox tb) return tb.Text;
+ if (content is CheckBox cb) return cb.IsChecked;
+ if (content is ComboBox cBox) return cBox.Text;
+
+ if (content is Panel panel) return GetValidateValue(panel.Children);
+ return null;
+ }
+ }
+}
diff --git a/HMI.UI/DpUtil/StackPanelHelper.cs b/HMI.UI/DpUtil/StackPanelHelper.cs
new file mode 100644
index 0000000..3c5c84a
--- /dev/null
+++ b/HMI.UI/DpUtil/StackPanelHelper.cs
@@ -0,0 +1,38 @@
+锘縰sing System.Windows;
+using System.Windows.Controls;
+
+namespace HMI.UI
+{
+ public class StackPanelHelper
+ {
+ public static double GetChildSpace(StackPanel sp)
+ {
+ return (double)sp.GetValue(ChildSpaceProperty);
+ }
+
+ public static void SetChildSpace(StackPanel sp, double value)
+ {
+ sp.SetValue(ChildSpaceProperty, value);
+ }
+
+ public static readonly DependencyProperty ChildSpaceProperty =
+ DependencyProperty.RegisterAttached("ChildSpace", typeof(double), typeof(StackPanelHelper),
+ new PropertyMetadata(0d, (d, e) =>
+ {
+ if (!(d is StackPanel sp)) return;
+ if (sp.Children == null) return;
+ var children = sp.Children;
+ double space = (double)e.NewValue;
+ if (sp.Orientation == Orientation.Horizontal)
+ {
+ for (int i = 0; i < children.Count; i++)
+ {
+ if (children[i] is FrameworkElement ui)
+ {
+ ui.Margin = new Thickness(0, 0, (i == children.Count - 1) ? 0 : space, 0);
+ }
+ }
+ }
+ }));
+ }
+}
diff --git a/HMI.UI/DpUtil/TreeViewHelper.cs b/HMI.UI/DpUtil/TreeViewHelper.cs
new file mode 100644
index 0000000..e29c50a
--- /dev/null
+++ b/HMI.UI/DpUtil/TreeViewHelper.cs
@@ -0,0 +1,90 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Controls;
+using System.Windows.Media;
+using System.Windows;
+using System.ComponentModel;
+
+namespace HMI.UI
+{
+ public class TreeViewHelper
+ {
+ public static bool GetAutoExpand(TreeView treeView)
+ {
+ return (bool)treeView.GetValue(AutoExpandProperty);
+ }
+
+ public static void SetAutoExpand(TreeView treeView, bool value)
+ {
+ treeView.SetValue(AutoExpandProperty, value);
+ }
+
+ public static readonly DependencyProperty AutoExpandProperty =
+ DependencyProperty.RegisterAttached("AutoExpand", typeof(bool), typeof(TreeViewHelper),
+ new PropertyMetadata(false, (d, e) =>
+ {
+ if (!(d is TreeView treeView)) return;
+ if ((bool)e.NewValue)
+ {
+ var dpd = DependencyPropertyDescriptor.FromProperty(ItemsControl.ItemsSourceProperty, typeof(DataGrid));
+ dpd?.AddValueChanged(treeView, TreeView_ItemSourceChanged);
+ }
+ else
+ {
+ var dpd = DependencyPropertyDescriptor.FromProperty(ItemsControl.ItemsSourceProperty, typeof(DataGrid));
+ dpd?.RemoveValueChanged(treeView, TreeView_ItemSourceChanged);
+ }
+ }));
+
+ private static void TreeView_ItemSourceChanged(object sender, EventArgs e)
+ {
+ TreeView tree = sender as TreeView;
+ if (!tree.IsLoaded)
+ {
+ tree.Loaded += Tree_Loaded;
+ }
+ else
+ {
+ ExpandAll(tree);
+ }
+ }
+
+ private static void Tree_Loaded(object sender, RoutedEventArgs e)
+ {
+ TreeView tree = sender as TreeView;
+ ExpandAll(tree);
+ tree.Loaded -= Tree_Loaded;
+ }
+
+ public static void ExpandAll(TreeView treeView)
+ {
+ foreach (var item in treeView.Items)
+ {
+ var temp = treeView.ItemContainerGenerator.ContainerFromItem(item);
+ if (temp is TreeViewItem treeViewItem)
+ {
+ ExpandTreeViewItem(treeViewItem);
+ }
+ }
+ }
+ public static void ExpandTreeViewItem(TreeViewItem item)
+ {
+ item.IsExpanded = true;
+ // 纭繚瀛愰」宸茬粡鐢熸垚
+ item.ApplyTemplate();
+ if (item.Items.Count > 0)
+ {
+ foreach (var subItem in item.Items)
+ {
+ if (item.ItemContainerGenerator.ContainerFromItem(subItem) is TreeViewItem childItem)
+ {
+ ExpandTreeViewItem(childItem);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/HMI.UI/Entity/NotifyBase.cs b/HMI.UI/Entity/NotifyBase.cs
new file mode 100644
index 0000000..e401957
--- /dev/null
+++ b/HMI.UI/Entity/NotifyBase.cs
@@ -0,0 +1,97 @@
+锘縰sing System;
+using System.ComponentModel;
+using System.Runtime.CompilerServices;
+using System.Windows.Input;
+
+namespace HMI.UI.Entity
+{
+
+ public class RelayCommand<T> : ICommand
+ {
+ /// <summary>
+ /// 鍛戒护鑳藉惁鎵ц
+ /// </summary>
+ readonly Func<bool> _canExecute;
+ /// <summary>
+ /// 鍛戒护鎵ц鐨勬柟娉�
+ /// </summary>
+ readonly Action<T> _execute;
+
+ /// <summary>
+ /// 鍛戒护鐨勬瀯閫犲嚱鏁�
+ /// </summary>
+ /// <param name="action">鍛戒护闇�鎵ц鐨勬柟娉�</param>
+ /// <param name="canExecute">鍛戒护鏄惁鍙互鎵ц鐨勬柟娉�</param>
+ public RelayCommand(Action<T> action, Func<bool> canExecute)
+ {
+ _execute = action;
+ _canExecute = canExecute;
+ }
+
+ public RelayCommand(Action<T> action)
+ {
+ _execute = action;
+ }
+
+ /// <summary>
+ /// 鍒ゆ柇鍛戒护鏄惁鍙互鎵ц
+ /// </summary>
+ /// <param name="parameter"></param>
+ /// <returns></returns>
+ public bool CanExecute(Object parameter)
+ {
+ if (_canExecute == null)
+ return true;
+ return _canExecute();
+ }
+
+ /// <summary>
+ /// 鎵ц鍛戒护
+ /// </summary>
+ /// <param name="parameter"></param>
+ public void Execute(Object parameter)
+ {
+ _execute((T)parameter);
+ }
+
+ /// <summary>
+ /// 浜嬩欢杩藉姞銆佺Щ闄�
+ /// </summary>
+ public event EventHandler CanExecuteChanged
+ {
+ add
+ {
+ if (_canExecute != null)
+ CommandManager.RequerySuggested += value;
+ }
+ remove
+ {
+ if (_canExecute != null)
+ CommandManager.RequerySuggested -= value;
+ }
+ }
+
+ }
+
+ public class NotifyBase : INotifyPropertyChanged
+ {
+ #region ...
+ public virtual event PropertyChangedEventHandler PropertyChanged;
+
+ protected virtual void RaisePropertyChanged(string name)
+ {
+
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
+ }
+
+ protected void RaiseAndSetIfChanged<T>(ref T old, T @new, [CallerMemberName] string propertyName = null)
+ {
+ old = @new;
+ if (propertyName != null)
+ {
+ RaisePropertyChanged(propertyName);
+ }
+ }
+ #endregion
+ }
+}
diff --git a/HMI.UI/HMI.UI.csproj b/HMI.UI/HMI.UI.csproj
new file mode 100644
index 0000000..9032440
--- /dev/null
+++ b/HMI.UI/HMI.UI.csproj
@@ -0,0 +1,169 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{F17DE6B5-AF1D-48C6-94A0-6B763A6546A6}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <RootNamespace>HMI.UI</RootNamespace>
+ <AssemblyName>HMI.UI</AssemblyName>
+ <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <WarningLevel>4</WarningLevel>
+ <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+ <Deterministic>true</Deterministic>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup>
+ <StartupObject />
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>bin\x64\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <DebugType>full</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ <Prefer32Bit>true</Prefer32Bit>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ <OutputPath>bin\x64\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <Optimize>true</Optimize>
+ <DebugType>pdbonly</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ <Prefer32Bit>true</Prefer32Bit>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="Panuon.WPF, Version=1.1.2.2, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\Panuon.WPF.1.1.2.2\lib\net472\Panuon.WPF.dll</HintPath>
+ </Reference>
+ <Reference Include="Panuon.WPF.UI, Version=1.2.4.8, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\Panuon.WPF.UI.1.2.4.9\lib\net472\Panuon.WPF.UI.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Xaml">
+ <RequiredTargetFramework>4.0</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="WindowsBase" />
+ <Reference Include="PresentationCore" />
+ <Reference Include="PresentationFramework" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Converter\DataGridRowNumberConverter.cs" />
+ <Compile Include="Converter\PathImageConverter.cs" />
+ <Compile Include="DpUtil\FormGroupHelper.cs" />
+ <Compile Include="DpUtil\StackPanelHelper.cs" />
+ <Compile Include="DpUtil\TreeViewHelper.cs" />
+ <Compile Include="Style\BaseWindow.xaml.cs">
+ <DependentUpon>BaseWindow.xaml</DependentUpon>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Compile>
+ <Compile Include="DpUtil\DpPlugin.cs" />
+ <Compile Include="Util\IValueValidator.cs" />
+ <Compile Include="Util\MsgBoxHelper.cs" />
+ <Compile Include="Util\ToastHelper.cs" />
+ <Resource Include="Resources\Font\Font.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Resource>
+ <Page Include="Style\MsgBoxStyle.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
+ <Page Include="Style\PanuonResource.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Page>
+ <Page Include="Style\BaseWindow.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Page>
+ <Page Include="Style\Colors.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Page>
+ <Page Include="Style\FormStyle.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Page>
+ <Page Include="Style\WindowResources.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Page>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Properties\AssemblyInfo.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ </EmbeddedResource>
+ <None Include="packages.config" />
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ <Resource Include="Resources\Font\iconfont.ttf">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Resource>
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Resources\Icon\xinzeng_1.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\HMI.Core\HMI.Core.csproj">
+ <Project>{3e3bf44a-0b69-45c5-9512-528cb48a7106}</Project>
+ <Name>HMI.Core</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup />
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/HMI.UI/Properties/AssemblyInfo.cs b/HMI.UI/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..b14ab95
--- /dev/null
+++ b/HMI.UI/Properties/AssemblyInfo.cs
@@ -0,0 +1,52 @@
+锘縰sing System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// 鏈夊叧绋嬪簭闆嗙殑涓�鑸俊鎭敱浠ヤ笅
+// 鎺у埗銆傛洿鏀硅繖浜涚壒鎬у�煎彲淇敼
+// 涓庣▼搴忛泦鍏宠仈鐨勪俊鎭��
+[assembly: AssemblyTitle("HMI.UI")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HMI.UI")]
+[assembly: AssemblyCopyright("Copyright 漏 2025")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 灏� ComVisible 璁剧疆涓� false 浼氫娇姝ょ▼搴忛泦涓殑绫诲瀷
+//瀵� COM 缁勪欢涓嶅彲瑙併�傚鏋滈渶瑕佷粠 COM 璁块棶姝ょ▼搴忛泦涓殑绫诲瀷
+//璇峰皢姝ょ被鍨嬬殑 ComVisible 鐗规�ц缃负 true銆�
+[assembly: ComVisible(false)]
+
+//鑻ヨ寮�濮嬬敓鎴愬彲鏈湴鍖栫殑搴旂敤绋嬪簭锛岃璁剧疆
+//.csproj 鏂囦欢涓殑 <UICulture>CultureYouAreCodingWith</UICulture>
+//鍦� <PropertyGroup> 涓�備緥濡傦紝濡傛灉浣犱娇鐢ㄧ殑鏄編鍥借嫳璇��
+//浣跨敤鐨勬槸缇庡浗鑻辫锛岃灏� <UICulture> 璁剧疆涓� en-US銆� 鐒跺悗鍙栨秷
+//瀵逛互涓� NeutralResourceLanguage 鐗规�х殑娉ㄩ噴銆� 鏇存柊
+//浠ヤ笅琛屼腑鐨勨�渆n-US鈥濅互鍖归厤椤圭洰鏂囦欢涓殑 UICulture 璁剧疆銆�
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+ ResourceDictionaryLocation.None, //涓婚鐗瑰畾璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //鎴栧簲鐢ㄧ▼搴忚祫婧愬瓧鍏镐腑鎵惧埌鏃朵娇鐢�)
+ ResourceDictionaryLocation.SourceAssembly //甯歌璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //銆佸簲鐢ㄧ▼搴忔垨浠讳綍涓婚涓撶敤璧勬簮瀛楀吀涓壘鍒版椂浣跨敤)
+)]
+
+
+// 绋嬪簭闆嗙殑鐗堟湰淇℃伅鐢变笅鍒楀洓涓�肩粍鎴�:
+//
+// 涓荤増鏈�
+// 娆$増鏈�
+// 鐢熸垚鍙�
+// 淇鍙�
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/HMI.UI/Properties/Resources.Designer.cs b/HMI.UI/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..b245f52
--- /dev/null
+++ b/HMI.UI/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// 姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+// 杩愯鏃剁増鏈�:4.0.30319.42000
+//
+// 瀵规鏂囦欢鐨勬洿鏀瑰彲鑳戒細瀵艰嚧涓嶆纭殑琛屼负锛屽苟涓斿鏋�
+// 閲嶆柊鐢熸垚浠g爜锛岃繖浜涙洿鏀瑰皢浼氫涪澶便��
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.UI.Properties {
+ using System;
+
+
+ /// <summary>
+ /// 涓�涓己绫诲瀷鐨勮祫婧愮被锛岀敤浜庢煡鎵炬湰鍦板寲鐨勫瓧绗︿覆绛夈��
+ /// </summary>
+ // 姝ょ被鏄敱 StronglyTypedResourceBuilder
+ // 绫婚�氳繃绫讳技浜� ResGen 鎴� Visual Studio 鐨勫伐鍏疯嚜鍔ㄧ敓鎴愮殑銆�
+ // 鑻ヨ娣诲姞鎴栫Щ闄ゆ垚鍛橈紝璇风紪杈� .ResX 鏂囦欢锛岀劧鍚庨噸鏂拌繍琛� ResGen
+ // (浠� /str 浣滀负鍛戒护閫夐」)锛屾垨閲嶆柊鐢熸垚 VS 椤圭洰銆�
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// 杩斿洖姝ょ被浣跨敤鐨勭紦瀛樼殑 ResourceManager 瀹炰緥銆�
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HMI.UI.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// 閲嶅啓褰撳墠绾跨▼鐨� CurrentUICulture 灞炴�э紝瀵�
+ /// 浣跨敤姝ゅ己绫诲瀷璧勬簮绫荤殑鎵�鏈夎祫婧愭煡鎵炬墽琛岄噸鍐欍��
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/HMI.UI/Properties/Resources.resx b/HMI.UI/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/HMI.UI/Properties/Resources.resx
@@ -0,0 +1,117 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
diff --git a/HMI.UI/Properties/Settings.Designer.cs b/HMI.UI/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..72fac73
--- /dev/null
+++ b/HMI.UI/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// 姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+// 杩愯鏃剁増鏈�:4.0.30319.42000
+//
+// 瀵规鏂囦欢鐨勬洿鏀瑰彲鑳戒細瀵艰嚧涓嶆纭殑琛屼负锛屽苟涓斿鏋�
+// 閲嶆柊鐢熸垚浠g爜锛岃繖浜涙洿鏀瑰皢浼氫涪澶便��
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.UI.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.12.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/HMI.UI/Properties/Settings.settings b/HMI.UI/Properties/Settings.settings
new file mode 100644
index 0000000..033d7a5
--- /dev/null
+++ b/HMI.UI/Properties/Settings.settings
@@ -0,0 +1,7 @@
+锘�<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile>
\ No newline at end of file
diff --git a/HMI.UI/Resources/Font/Font.xaml b/HMI.UI/Resources/Font/Font.xaml
new file mode 100644
index 0000000..0884140
--- /dev/null
+++ b/HMI.UI/Resources/Font/Font.xaml
@@ -0,0 +1,6 @@
+锘�<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
+ <FontFamily x:Key="iconfont">
+ /WPFProject;component/Resources/Font/#iconfont
+ </FontFamily>
+</ResourceDictionary>
\ No newline at end of file
diff --git a/HMI.UI/Resources/Font/iconfont.ttf b/HMI.UI/Resources/Font/iconfont.ttf
new file mode 100644
index 0000000..927cfcc
--- /dev/null
+++ b/HMI.UI/Resources/Font/iconfont.ttf
Binary files differ
diff --git a/HMI.UI/Resources/Icon/xinzeng_1.png b/HMI.UI/Resources/Icon/xinzeng_1.png
new file mode 100644
index 0000000..0b16aa2
--- /dev/null
+++ b/HMI.UI/Resources/Icon/xinzeng_1.png
Binary files differ
diff --git a/HMI.UI/Style/BaseWindow.xaml b/HMI.UI/Style/BaseWindow.xaml
new file mode 100644
index 0000000..340ee2e
--- /dev/null
+++ b/HMI.UI/Style/BaseWindow.xaml
@@ -0,0 +1,62 @@
+锘�<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:ui="clr-namespace:HMI.UI"
+ x:Class="HMI.UI.BaseWindowTemplate">
+ <ResourceDictionary.MergedDictionaries>
+ <ResourceDictionary Source="/HMI.UI;component/Style/Colors.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/WindowResources.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+
+ <Style TargetType="ui:BaseWindow" x:Key="BaseWindow">
+ <Setter Property="WindowChrome.WindowChrome">
+ <Setter.Value>
+ <WindowChrome CornerRadius="0" CaptionHeight="40" GlassFrameThickness="0"
+ UseAeroCaptionButtons="False" NonClientFrameEdges="None" />
+ </Setter.Value>
+ </Setter>
+
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="ui:BaseWindow">
+ <Border BorderThickness="1" BorderBrush="Gray">
+ <Grid x:Name="mainGrid" Background="#FFF">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="40"/>
+ <RowDefinition/>
+ </Grid.RowDefinitions>
+
+ <Grid Grid.Row="0" Background="{StaticResource MainBorder}">
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition/>
+ <ColumnDefinition Width="Auto"/>
+ </Grid.ColumnDefinitions>
+ <StackPanel x:Name="LeftPanel" Orientation="Horizontal" Grid.Column="0">
+ <Border x:Name="TitlePanel">
+ <Label VerticalContentAlignment="Center" Foreground="#FFF" Content="{TemplateBinding Title}"/>
+ </Border>
+ </StackPanel>
+ <StackPanel x:Name="RightPanel" Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right">
+ <Button Style="{StaticResource WindowButton}" Click="Min_Click"></Button>
+ <Button Style="{StaticResource WindowButton}" Click="Max_Click"></Button>
+ <Button Style="{StaticResource WindowCloseButton}" Click="Close_Click"></Button>
+ </StackPanel>
+ </Grid>
+ <AdornerDecorator Grid.Row="1">
+ <ContentPresenter Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}"
+ContentTemplate="{TemplateBinding ContentTemplate}" />
+ </AdornerDecorator>
+ </Grid>
+ </Border>
+
+ <ControlTemplate.Triggers>
+ <Trigger Property="WindowState" Value="Maximized">
+ <Setter TargetName="mainGrid" Property="Margin" Value="8,8,8,8"></Setter>
+ </Trigger>
+ </ControlTemplate.Triggers>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+</ResourceDictionary>
\ No newline at end of file
diff --git a/HMI.UI/Style/BaseWindow.xaml.cs b/HMI.UI/Style/BaseWindow.xaml.cs
new file mode 100644
index 0000000..af8d802
--- /dev/null
+++ b/HMI.UI/Style/BaseWindow.xaml.cs
@@ -0,0 +1,45 @@
+锘�
+using System.Windows;
+using System.Windows.Controls;
+
+namespace HMI.UI
+{
+ /// <summary>
+ /// MainWindow.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class BaseWindowTemplate
+ {
+ void Min_Click(object sender, RoutedEventArgs e)
+ {
+ Window.GetWindow(sender as FrameworkElement).WindowState = WindowState.Minimized;
+ }
+
+ void Max_Click(object sender, RoutedEventArgs e)
+ {
+ var temp = Window.GetWindow(sender as FrameworkElement).WindowState;
+ Window.GetWindow(sender as FrameworkElement).WindowState = temp == WindowState.Maximized ? WindowState.Normal : WindowState.Maximized;
+ }
+
+ void Close_Click(object sender, RoutedEventArgs e)
+ {
+ Window.GetWindow(sender as FrameworkElement).Close();
+ }
+ }
+
+ public partial class BaseWindow : Window
+ {
+ public void AddButton(Button button)
+ {
+ var panelsda = Template.FindName("RightPanel", this);
+ var panel = (StackPanel)this.Template.FindName("RightPanel", this);
+ panel?.Children.Add(button);
+ }
+
+ public void InsertButton(Button button,int index)
+ {
+ var panelsda = Template.FindName("RightPanel", this);
+ var panel = (StackPanel)this.Template.FindName("RightPanel", this);
+ panel?.Children.Insert(index, button);
+ }
+ }
+}
diff --git a/HMI.UI/Style/Colors.xaml b/HMI.UI/Style/Colors.xaml
new file mode 100644
index 0000000..c9a7668
--- /dev/null
+++ b/HMI.UI/Style/Colors.xaml
@@ -0,0 +1,39 @@
+锘�<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
+ <Brush x:Key="WorkspaceBackground">#f0f2f5</Brush>
+ <Brush x:Key="TableHeaderBackground">#fafafa</Brush>
+ <Brush x:Key="TableBoarder">#e8e8e8</Brush>
+ <Brush x:Key="CommonBoarder">#e8e8e8</Brush>
+
+
+ <Brush x:Key="PrimaryColor">#0d4d84</Brush>
+ <Brush x:Key="PrimaryColorContract">#FFF</Brush>
+
+ <Brush x:Key="SecondPrimaryColor">#3692e1</Brush>
+ <Brush x:Key="SecondPrimaryColorContract">#FFF</Brush>
+
+ <Brush x:Key="DangerColor">#d64343</Brush>
+ <Brush x:Key="DangerColorContrast">#FFF</Brush>
+
+ <Brush x:Key="SuccessColor">Green</Brush>
+ <Brush x:Key="SuccessColorContrast">#FFF</Brush>
+
+ <Brush x:Key="WarningColor">#e17933</Brush>
+ <Brush x:Key="WarningColorContract">#FFF</Brush>
+
+ <Brush x:Key="WindowBar">#0d4d84</Brush>
+ <Brush x:Key="MainBorder">#0d4d84</Brush>
+ <Brush x:Key="MainMenu">#1d6eb2</Brush>
+ <Brush x:Key="ChildBorder">#3692e1</Brush>
+ <Brush x:Key="MainStatusBar">#1d6eb2</Brush>
+
+ <Brush x:Key="SecondaryImportant">Orange</Brush>
+ <Brush x:Key="Important">#e17933</Brush>
+ <Brush x:Key="ImportantFont">#FFF</Brush>
+
+
+ <Brush x:Key="ButtonColor">#103156</Brush>
+ <Brush x:Key="ButtonSelected">#02579E</Brush>
+ <Brush x:Key="ButtonFont">White</Brush>
+ <Brush x:Key="ButtonFontSelected">White</Brush>
+</ResourceDictionary>
\ No newline at end of file
diff --git a/HMI.UI/Style/FormStyle.xaml b/HMI.UI/Style/FormStyle.xaml
new file mode 100644
index 0000000..9056d01
--- /dev/null
+++ b/HMI.UI/Style/FormStyle.xaml
@@ -0,0 +1,148 @@
+锘�<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui">
+
+ <ResourceDictionary.MergedDictionaries>
+ <pu:StyleDictionary Includes="TextBox,ComboBox,Button" />
+ </ResourceDictionary.MergedDictionaries>
+
+ <Style x:Key="ModalButton" TargetType="Button" BasedOn="{StaticResource {x:Static pu:WindowXModalDialog.ButtonStyleKey}}">
+ <Setter Property="pu:ButtonHelper.PendingSpinStyle">
+ <Setter.Value>
+ <Style TargetType="pu:Spin" BasedOn="{StaticResource {x:Static pu:ButtonHelper.PendingSpinStyleKey}}">
+ <Setter Property="SpinStyle" Value="Ring2" />
+ </Style>
+ </Setter.Value>
+ </Setter>
+ <Style.Triggers>
+ <Trigger Property="pu:ButtonHelper.IsPending" Value="True">
+ <Setter Property="pu:ButtonHelper.ClickEffect" Value="Shake" />
+ <Setter Property="ContentTemplate">
+ <Setter.Value>
+ <DataTemplate>
+ <TextBlock Text="璇风◢鍚�..." />
+ </DataTemplate>
+ </Setter.Value>
+ </Setter>
+ </Trigger>
+ <Trigger Property="Tag" Value="OK">
+ <Setter Property="Background" Value="{StaticResource PrimaryColor}" />
+ <Setter Property="Foreground" Value="{StaticResource PrimaryColorContract}" />
+ <Setter Property="Padding" Value="20,0" />
+ <Setter Property="Height" Value="35" />
+ </Trigger>
+ <Trigger Property="Tag" Value="Cancel">
+ <Setter Property="Background" Value="{x:Null}" />
+ <Setter Property="Foreground" Value="Gray" />
+ <Setter Property="Cursor" Value="Hand" />
+ <Setter Property="Padding" Value="10,0" />
+ <Setter Property="ContentTemplate">
+ <Setter.Value>
+ <DataTemplate>
+ <TextBlock Text="{Binding}" TextDecorations="Underline" />
+ </DataTemplate>
+ </Setter.Value>
+ </Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+
+
+ <Style x:Key="SearchButton" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
+ <Setter Property="pu:ButtonHelper.CornerRadius" Value="0" />
+ <Setter Property="Background" Value="{StaticResource PrimaryColor}" />
+ <Setter Property="Foreground" Value="{StaticResource PrimaryColorContract}" />
+ <Setter Property="FontFamily" Value="{StaticResource iconfont}" />
+ <Setter Property="Height" Value="35" />
+ <Setter Property="Content" Value=""/>
+ <Setter Property="pu:ButtonHelper.PendingSpinStyle">
+ <Setter.Value>
+ <Style TargetType="pu:Spin" BasedOn="{StaticResource {x:Static pu:ButtonHelper.PendingSpinStyleKey}}">
+ <Setter Property="SpinStyle" Value="Ring2" />
+ </Style>
+ </Setter.Value>
+ </Setter>
+ <Style.Triggers>
+ <Trigger Property="pu:ButtonHelper.IsPending" Value="True">
+ <Setter Property="pu:ButtonHelper.ClickEffect" Value="Shake" />
+ <Setter Property="ContentTemplate">
+ <Setter.Value>
+ <DataTemplate>
+ <TextBlock Text="Click again ?" />
+ </DataTemplate>
+ </Setter.Value>
+ </Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+
+ <Style x:Key="EditorTextBoxStyle" TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">
+ <Setter Property="pu:TextBoxHelper.FocusedBorderBrush" Value="#6CBCEA" />
+ <Setter Property="pu:TextBoxHelper.FocusedShadowColor" Value="#6CBCEA" />
+ <Setter Property="pu:TextBoxHelper.CornerRadius" Value="0" />
+ <Setter Property="pu:TextBoxHelper.WatermarkForeground" Value="#4A4A4A" />
+ <Setter Property="pu:TextBoxHelper.FocusedWatermarkForeground" Value="#AAAAAA" />
+ <Setter Property="Height" Value="35" />
+ <Setter Property="Padding" Value="5,0" />
+ <Setter Property="Background" Value="Transparent" />
+ <Setter Property="Foreground" Value="Black" />
+ <Setter Property="VerticalContentAlignment" Value="Center"/>
+ <Style.Triggers>
+ <Trigger Property="IsReadOnly" Value="True">
+ <Setter Property="Background" Value="LightGray"/>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+
+ <Style x:Key="MultilineEditorTextBoxStyle" TargetType="TextBox" BasedOn="{StaticResource EditorTextBoxStyle}">
+ <Setter Property="Height" Value="100" />
+ <Setter Property="Padding" Value="5,10" />
+ <Setter Property="AcceptsReturn" Value="True" />
+ <Setter Property="TextWrapping" Value="Wrap" />
+ <Setter Property="VerticalContentAlignment" Value="Top" />
+ </Style>
+
+ <Style x:Key="InputFormGroupStyle" TargetType="pu:FormGroup">
+ <Style.Resources>
+ <Style TargetType="TextBox" BasedOn="{StaticResource EditorTextBoxStyle}">
+
+ </Style>
+ </Style.Resources>
+ <Setter Property="HeaderWidth" Value="70" />
+ <Setter Property="HeaderHeight" Value="35" />
+ <Setter Property="Orientation" Value="Horizontal" />
+ <Setter Property="Margin" Value="0,10,0,0" />
+ </Style>
+
+ <Style x:Key="RequiredInputFormGroupStyle" TargetType="pu:FormGroup" BasedOn="{StaticResource InputFormGroupStyle}">
+ <Setter Property="HeaderTemplate">
+ <Setter.Value>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal">
+ <TextBlock Text="*" Foreground="Red" />
+ <ContentControl Content="{Binding}" />
+ </StackPanel>
+ </DataTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+ <Style x:Key="FormComboxStyle" TargetType="ComboBox" BasedOn="{StaticResource {x:Type ComboBox}}">
+ <Setter Property="pu:ComboBoxHelper.CornerRadius" Value="0"/>
+ <Setter Property="pu:ComboBoxHelper.ItemsHoverBackground" Value="{StaticResource WindowBar}"/>
+ <Setter Property="pu:ComboBoxHelper.ItemsHoverForeground" Value="#FFF"/>
+ <Setter Property="pu:ComboBoxHelper.ItemsSelectedForeground" Value="Black"/>
+ <Setter Property="pu:ComboBoxHelper.HoverBorderBrush" Value="#007ACC" />
+ <Setter Property="pu:ComboBoxHelper.FocusedBorderBrush" Value="#007ACC" />
+ <Setter Property="Height" Value="35" />
+ <Setter Property="Margin" Value="0" />
+ <Setter Property="Background" Value="#FFF" />
+ <Setter Property="VerticalContentAlignment" Value="Center"/>
+ <Setter Property="VerticalAlignment" Value="Center"/>
+ <Setter Property="HorizontalContentAlignment" Value="Left"/>
+ <Setter Property="HorizontalAlignment" Value="Stretch"/>
+ <Setter Property="Foreground" Value="Black" />
+ <Setter Property="SelectedValuePath" Value="Content"/>
+ </Style>
+</ResourceDictionary>
\ No newline at end of file
diff --git a/HMI.UI/Style/MsgBoxStyle.xaml b/HMI.UI/Style/MsgBoxStyle.xaml
new file mode 100644
index 0000000..f782ed6
--- /dev/null
+++ b/HMI.UI/Style/MsgBoxStyle.xaml
@@ -0,0 +1,133 @@
+锘�<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+xmlns:puconfig="clr-namespace:Panuon.WPF.UI.Configurations;assembly=Panuon.WPF.UI">
+
+ <pu:MessageBoxXSettings x:Key="MsgBoxWarn"
+ InteropOwnersMask="True"
+ InverseButtonsSequence="False">
+ <pu:MessageBoxXSettings.WindowXStyle>
+ <Style TargetType="pu:WindowX" BasedOn="{StaticResource {x:Static pu:MessageBoxX.WindowXStyleKey}}">
+ <Setter Property="pu:WindowXCaption.Background" Value="{StaticResource WarningColor}" />
+ <Setter Property="pu:WindowXCaption.Foreground" Value="{StaticResource WarningColorContract}" />
+ </Style>
+ </pu:MessageBoxXSettings.WindowXStyle>
+
+ <pu:MessageBoxXSettings.ButtonStyle>
+ <Style TargetType="Button" BasedOn="{StaticResource {x:Static pu:MessageBoxX.ButtonStyleKey}}">
+
+ <Style.Triggers>
+ <Trigger Property="Tag" Value="OK">
+ <Setter Property="Foreground" Value="{StaticResource WarningColorContract}" />
+ <Setter Property="Background" Value="{StaticResource WarningColor}" />
+ </Trigger>
+
+ <Trigger Property="Tag" Value="Cancel">
+ <Setter Property="Background" Value="{x:Null}" />
+ <Setter Property="Foreground" Value="Gray" />
+ <Setter Property="Cursor" Value="Hand" />
+ <Setter Property="ContentTemplate">
+ <Setter.Value>
+ <DataTemplate>
+ <TextBlock Text="{Binding}" TextDecorations="Underline" />
+ </DataTemplate>
+ </Setter.Value>
+ </Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+ </pu:MessageBoxXSettings.ButtonStyle>
+ </pu:MessageBoxXSettings>
+
+ <pu:MessageBoxXSettings x:Key="MsgBoxError"
+ InteropOwnersMask="True"
+ InverseButtonsSequence="False">
+ <pu:MessageBoxXSettings.WindowXStyle>
+ <Style TargetType="pu:WindowX" BasedOn="{StaticResource {x:Static pu:MessageBoxX.WindowXStyleKey}}">
+ <Setter Property="pu:WindowXCaption.Background" Value="{StaticResource DangerColor}" />
+ <Setter Property="pu:WindowXCaption.Foreground" Value="{StaticResource DangerColorContrast}" />
+ </Style>
+ </pu:MessageBoxXSettings.WindowXStyle>
+
+ <pu:MessageBoxXSettings.ButtonStyle>
+ <Style TargetType="Button" BasedOn="{StaticResource {x:Static pu:MessageBoxX.ButtonStyleKey}}">
+
+ <Style.Triggers>
+ <Trigger Property="Tag" Value="OK">
+ <Setter Property="Foreground" Value="{StaticResource DangerColorContrast}" />
+ <Setter Property="Background" Value="{StaticResource DangerColor}" />
+ </Trigger>
+
+ <Trigger Property="Tag" Value="Cancel">
+ <Setter Property="Background" Value="{x:Null}" />
+ <Setter Property="Foreground" Value="Gray" />
+ <Setter Property="Cursor" Value="Hand" />
+ <Setter Property="ContentTemplate">
+ <Setter.Value>
+ <DataTemplate>
+ <TextBlock Text="{Binding}" TextDecorations="Underline" />
+ </DataTemplate>
+ </Setter.Value>
+ </Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+ </pu:MessageBoxXSettings.ButtonStyle>
+ </pu:MessageBoxXSettings>
+
+ <pu:MessageBoxXSettings x:Key="MsgBoxInfo"
+ InteropOwnersMask="True"
+ InverseButtonsSequence="False">
+ <pu:MessageBoxXSettings.WindowXStyle>
+ <Style TargetType="pu:WindowX" BasedOn="{StaticResource {x:Static pu:MessageBoxX.WindowXStyleKey}}">
+ <Setter Property="pu:WindowXCaption.Background" Value="{StaticResource PrimaryColor}" />
+ <Setter Property="pu:WindowXCaption.Foreground" Value="{StaticResource PrimaryColorContract}" />
+ </Style>
+ </pu:MessageBoxXSettings.WindowXStyle>
+
+ <pu:MessageBoxXSettings.ButtonStyle>
+ <Style TargetType="Button" BasedOn="{StaticResource {x:Static pu:MessageBoxX.ButtonStyleKey}}">
+
+ <Style.Triggers>
+ <Trigger Property="Tag" Value="OK">
+ <Setter Property="Foreground" Value="{StaticResource PrimaryColorContract}" />
+ <Setter Property="Background" Value="{StaticResource PrimaryColor}" />
+ </Trigger>
+
+ <Trigger Property="Tag" Value="Cancel">
+ <Setter Property="Background" Value="{x:Null}" />
+ <Setter Property="Foreground" Value="Gray" />
+ <Setter Property="Cursor" Value="Hand" />
+ <Setter Property="ContentTemplate">
+ <Setter.Value>
+ <DataTemplate>
+ <TextBlock Text="{Binding}" TextDecorations="Underline" />
+ </DataTemplate>
+ </Setter.Value>
+ </Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+ </pu:MessageBoxXSettings.ButtonStyle>
+ </pu:MessageBoxXSettings>
+
+ <pu:ToastSettings x:Key="toastSuccess" Spacing="25">
+ <pu:ToastSettings.LabelStyle>
+ <Style TargetType="Label" BasedOn="{StaticResource {x:Static pu:Toast.LabelStyleKey}}">
+ <Setter Property="Background" Value="{StaticResource SuccessColor}" />
+ <Setter Property="Foreground" Value="{StaticResource SuccessColorContrast}" />
+ </Style>
+ </pu:ToastSettings.LabelStyle>
+ </pu:ToastSettings>
+
+ <pu:ToastSettings x:Key="toastWarning" Spacing="25">
+ <pu:ToastSettings.LabelStyle>
+ <Style TargetType="Label" BasedOn="{StaticResource {x:Static pu:Toast.LabelStyleKey}}">
+ <Setter Property="Background" Value="{StaticResource WarningColor}" />
+ <Setter Property="Foreground" Value="{StaticResource SuccessColorContrast}" />
+ </Style>
+ </pu:ToastSettings.LabelStyle>
+ </pu:ToastSettings>
+
+</ResourceDictionary>
\ No newline at end of file
diff --git a/HMI.UI/Style/PanuonResource.xaml b/HMI.UI/Style/PanuonResource.xaml
new file mode 100644
index 0000000..18b061f
--- /dev/null
+++ b/HMI.UI/Style/PanuonResource.xaml
@@ -0,0 +1,133 @@
+锘�<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:ui="clr-namespace:HMI.UI"
+ xmlns:sys="clr-namespace:System;assembly=mscorlib"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ xmlns:dp="clr-namespace:HMI.UI;assembly=HMI.UI">
+ <ResourceDictionary.MergedDictionaries>
+ <ResourceDictionary Source="/HMI.UI;component/Style/Colors.xaml"/>
+ <pu:StyleDictionary Includes="TextBox,ComboBox,Button,DataGrid,TreeView" />
+ <ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+
+ <sys:Double x:Key="TitleFontSize">20</sys:Double>
+ <sys:Double x:Key="ContentFontSize">16</sys:Double>
+
+ <Style x:Key="PrimaryButton" TargetType="Button" BasedOn="{StaticResource {x:Static pu:StyleKeys.ButtonStyle}}">
+ <Setter Property="Background" Value="{StaticResource WindowBar}"/>
+ <Setter Property="Foreground" Value="#FFF"/>
+ <Setter Property="pu:IconHelper.FontFamily" Value="{StaticResource iconfont}"/>
+ <Setter Property="pu:IconHelper.Margin" Value="0,0,10,0"/>
+ <Setter Property="Padding" Value="10"/>
+ <Setter Property="BorderThickness" Value="0"/>
+ <Setter Property="Cursor" Value="Hand"/>
+ </Style>
+
+ <Style x:Key="CommonButton" TargetType="Button" BasedOn="{StaticResource PrimaryButton}">
+ <Setter Property="Background" Value="#FFF"/>
+ <Setter Property="Foreground" Value="Black"/>
+ <Setter Property="BorderBrush" Value="LightGray"/>
+ </Style>
+
+ <Style x:Key="DangerButton" TargetType="Button" BasedOn="{StaticResource PrimaryButton}">
+ <Setter Property="Background" Value="{StaticResource DangerColor}"/>
+ <Setter Property="Foreground" Value="{StaticResource DangerColorContrast}"/>
+ </Style>
+
+ <Style x:Key="LinkButton" TargetType="Button" BasedOn="{StaticResource {x:Static pu:StyleKeys.ButtonStyle}}">
+ <Setter Property="Background" Value="{x:Null}" />
+ <Setter Property="Foreground" Value="{StaticResource PrimaryColor}" />
+ <Setter Property="Cursor" Value="Hand" />
+ <Setter Property="ContentTemplate">
+ <Setter.Value>
+ <DataTemplate>
+ <TextBlock Text="{Binding}" TextDecorations="Underline" />
+ </DataTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+ <Style x:Key="DangerLinkButton" TargetType="Button" BasedOn="{StaticResource LinkButton}">
+ <Setter Property="Foreground" Value="{StaticResource DangerColor}"/>
+ </Style>
+
+ <Style x:Key="CardBoarder" TargetType="Border">
+ <Setter Property="BorderBrush" Value="{StaticResource CommonBoarder}"/>
+ <Setter Property="BorderThickness" Value="2"/>
+ <Setter Property="Background" Value="#FFF"/>
+ <Setter Property="Margin" Value="10"/>
+ <Setter Property="Padding" Value="10"/>
+ </Style>
+
+ <Style x:Key="DefaultDataGrid" TargetType="DataGrid" BasedOn="{StaticResource {x:Static pu:StyleKeys.DataGridStyle}}">
+ <Style.Resources>
+ <Style TargetType="DataGridCell"
+ BasedOn="{StaticResource {x:Static pu:StyleKeys.DataGridCellStyle}}">
+ <Setter Property="Background" Value="Transparent"/>
+ <Setter Property="Padding" Value="0"/>
+ <Setter Property="BorderThickness" Value="0"/>
+ <Setter Property="VerticalAlignment" Value="Stretch"/>
+ <Setter Property="Background" Value="Transparent"/>
+ </Style>
+ <Style TargetType="TextBlock">
+ <Setter Property="VerticalAlignment" Value="Center"/>
+ </Style>
+ </Style.Resources>
+
+ <Setter Property="pu:DataGridHelper.ColumnHeaderBackground" Value="{StaticResource TableHeaderBackground}"/>
+ <Setter Property="pu:DataGridHelper.ColumnHeaderHoverBackground" Value="{StaticResource TableHeaderBackground}"/>
+ <Setter Property="pu:DataGridHelper.ColumnHeaderSeparatorBrush" Value="{StaticResource TableBoarder}"/>
+ <Setter Property="pu:DataGridHelper.ColumnHeaderSeparatorVisibility" Value="Visible"/>
+ <Setter Property="pu:DataGridHelper.ColumnHeaderVerticalContentAlignment" Value="Center"/>
+ <Setter Property="pu:DataGridHelper.RowHeaderBackground" Value="#ffffff"/>
+ <Setter Property="pu:DataGridHelper.RowHeaderSeparatorBrush" Value="{StaticResource PrimaryColor}"/>
+ <Setter Property="pu:DataGridHelper.RowHoverForeground" Value="{StaticResource SecondPrimaryColorContract}"/>
+ <Setter Property="pu:DataGridHelper.RowHoverBackground" Value="{StaticResource SecondPrimaryColor}"/>
+ <Setter Property="pu:DataGridHelper.RowSelectedBackground" Value="{StaticResource PrimaryColor}"/>
+ <Setter Property="pu:DataGridHelper.RowSelectedForeground" Value="#ffffff"/>
+ <Setter Property="HorizontalGridLinesBrush" Value="{StaticResource TableBoarder}"/>
+ <Setter Property="VerticalGridLinesBrush" Value="{StaticResource TableBoarder}"/>
+ <Setter Property="BorderBrush" Value="{StaticResource TableBoarder}" />
+ <Setter Property="AutoGenerateColumns" Value="False"/>
+ <Setter Property="CanUserAddRows" Value="False"/>
+ <Setter Property="CanUserSortColumns" Value="False"/>
+ <Setter Property="CanUserDeleteRows" Value="False"/>
+ <Setter Property="RowHeaderWidth" Value="0"/>
+ <Setter Property="IsReadOnly" Value="True"/>
+ <Setter Property="GridLinesVisibility" Value="All"/>
+ <Setter Property="BorderThickness" Value="1,1,0,0"/>
+ <Setter Property="FontSize" Value="{StaticResource ContentFontSize}"/>
+ <Setter Property="RowHeight" Value="24"/>
+ <Setter Property="ForceCursor" Value="True"/>
+ <Setter Property="SelectionMode" Value="Single"/>
+ </Style>
+
+ <Style x:Key="DefaultTreeView" TargetType="TreeView" BasedOn="{StaticResource {x:Static pu:StyleKeys.TreeViewStyle}}">
+ <Setter Property="pu:TreeViewHelper.ItemsHoverBackground" Value="{StaticResource SecondPrimaryColor}"/>
+ <Setter Property="pu:TreeViewHelper.ItemsHoverForeground" Value="{StaticResource SecondPrimaryColorContract}"/>
+ <Setter Property="pu:TreeViewHelper.ItemsSelectedBackground" Value="{StaticResource PrimaryColor}"/>
+ <Setter Property="pu:TreeViewHelper.ItemsSelectedForeground" Value="{StaticResource PrimaryColorContract}"/>
+ <Setter Property="pu:TreeViewHelper.ItemsMargin" Value="0"/>
+ <Setter Property="pu:TreeViewHelper.ItemsPadding" Value="7,5,7,5"/>
+ <Setter Property="dp:TreeViewHelper.AutoExpand" Value="True"/>
+ <Setter Property="FontSize" Value="{StaticResource ContentFontSize}"/>
+ <Setter Property="Background" Value="Transparent"/>
+ <Setter Property="BorderThickness" Value="0"/>
+ </Style>
+
+ <Style x:Key="RowLink" TargetType="Button" BasedOn="{StaticResource LinkButton}">
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding Path=IsMouseOver,
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
+ Value="True">
+ <Setter Property="Foreground" Value="#FFF"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Path=IsSelected,
+ RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
+Value="True">
+ <Setter Property="Foreground" Value="#FFF"/>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+</ResourceDictionary>
\ No newline at end of file
diff --git a/WPFProject/Style/WindowResources.xaml b/HMI.UI/Style/WindowResources.xaml
similarity index 77%
rename from WPFProject/Style/WindowResources.xaml
rename to HMI.UI/Style/WindowResources.xaml
index b1c0574..46d1925 100644
--- a/WPFProject/Style/WindowResources.xaml
+++ b/HMI.UI/Style/WindowResources.xaml
@@ -1,15 +1,15 @@
锘�<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:ctls="clr-namespace:WPFProject.Controls"
+ xmlns:ui="clr-namespace:HMI.UI"
>
<ResourceDictionary.MergedDictionaries>
- <ResourceDictionary Source="/WPFProject;component/Style/Colors.xaml"/>
- <ResourceDictionary Source="/WPFProject;component/Resources/Font/Font.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/Colors.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style x:Key="WindowButton" TargetType="Button">
<Setter Property="Background" Value="{StaticResource MainBorder}"/>
- <Setter Property="ctls:DpPlugin.HoverColor" Value="{StaticResource ChildBorder}"/>
+ <Setter Property="ui:DpPlugin.HoverColor" Value="{StaticResource ChildBorder}"/>
<Setter Property="FontFamily" Value="{StaticResource iconfont}"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Foreground" Value="White"/>
@@ -17,8 +17,9 @@
<Setter Property="FontSize" Value="20"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="BorderBrush" Value="Transparent"/>
-
-
+ <Setter Property="Cursor" Value="Hand"/>
+ <Setter Property="WindowChrome.IsHitTestVisibleInChrome" Value="True"/>
+
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
@@ -33,7 +34,7 @@
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="Background" Value="{Binding
- Path=(ctls:DpPlugin.HoverColor),RelativeSource={RelativeSource TemplatedParent}}"/>
+ Path=(ui:DpPlugin.HoverColor),RelativeSource={RelativeSource TemplatedParent}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
@@ -42,22 +43,22 @@
</Style>
<Style x:Key="WindowCloseButton" BasedOn="{StaticResource WindowButton}" TargetType="Button">
- <Setter Property="ctls:DpPlugin.HoverColor" Value="Red"/>
+ <Setter Property="ui:DpPlugin.HoverColor" Value="Red"/>
</Style>
<Style x:Key="ChildWindowButton" BasedOn="{StaticResource WindowButton}" TargetType="Button">
<Setter Property="FontSize" Value="15"/>
<Setter Property="Width" Value="30"/>
<Setter Property="Background" Value="{StaticResource ChildBorder}"/>
- <Setter Property="ctls:DpPlugin.HoverColor" Value="{StaticResource MainBorder}"/>
+ <Setter Property="ui:DpPlugin.HoverColor" Value="{StaticResource MainBorder}"/>
</Style>
<Style x:Key="ChildWindowCloseButton" BasedOn="{StaticResource ChildWindowButton}" TargetType="Button">
- <Setter Property="ctls:DpPlugin.HoverColor" Value="Red"/>
+ <Setter Property="ui:DpPlugin.HoverColor" Value="Red"/>
</Style>
<Style x:Key="LinkButton" TargetType="Button">
- <Setter Property="ctls:DpPlugin.HoverColor" Value="{StaticResource ChildBorder}"/>
+ <Setter Property="ui:DpPlugin.HoverColor" Value="{StaticResource ChildBorder}"/>
<Setter Property="FontFamily" Value="{StaticResource iconfont}"/>
<Setter Property="Foreground" Value="{StaticResource ChildBorder}"/>
@@ -71,12 +72,11 @@
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="label" Property="Foreground" Value="{Binding
- Path=(ctls:DpPlugin.HoverColor),RelativeSource={RelativeSource TemplatedParent}}"/>
+ Path=(ui:DpPlugin.HoverColor),RelativeSource={RelativeSource TemplatedParent}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
-
</ResourceDictionary>
\ No newline at end of file
diff --git a/HMI.UI/Util/IValueValidator.cs b/HMI.UI/Util/IValueValidator.cs
new file mode 100644
index 0000000..e93d76d
--- /dev/null
+++ b/HMI.UI/Util/IValueValidator.cs
@@ -0,0 +1,7 @@
+锘縩amespace HMI.UI.Util
+{
+ public interface IValueValidator
+ {
+ bool Validate(object input);
+ }
+}
diff --git a/HMI.UI/Util/MsgBoxHelper.cs b/HMI.UI/Util/MsgBoxHelper.cs
new file mode 100644
index 0000000..2f0e3df
--- /dev/null
+++ b/HMI.UI/Util/MsgBoxHelper.cs
@@ -0,0 +1,48 @@
+锘縰sing Panuon.WPF.UI;
+using System.Windows;
+using Panuon.WPF.UI.Configurations;
+
+namespace HMI.UI.Util
+{
+ public class MsgBoxHelper
+ {
+ #region Warn
+ public static MessageBoxResult WarnMessage(Window owner,
+ string message,
+ string caption = "璀﹀憡",
+ MessageBoxButton button = MessageBoxButton.OKCancel,
+ MessageBoxIcon icon = MessageBoxIcon.Warning,
+ DefaultButton defaultButton = DefaultButton.Unset, int? countdown = null)
+ {
+ var setting = Application.Current.FindResource("MsgBoxWarn") as MessageBoxXSetting;
+ return MessageBoxX.Show(owner, message, caption, button, icon, defaultButton, setting, countdown);
+ }
+ #endregion
+
+ #region Error
+ public static MessageBoxResult ErrorMessage(Window owner,
+ string message,
+ string caption = "閿欒",
+ MessageBoxButton button = MessageBoxButton.OKCancel,
+ MessageBoxIcon icon = MessageBoxIcon.Error,
+ DefaultButton defaultButton = DefaultButton.Unset, int? countdown = null)
+ {
+ var setting = Application.Current.FindResource("MsgBoxError") as MessageBoxXSetting;
+ return MessageBoxX.Show(owner, message, caption, button, icon, defaultButton, setting, countdown);
+ }
+ #endregion
+
+ #region Info
+ public static MessageBoxResult InfoMessage(Window owner,
+ string message,
+ string caption = "鎻愮ず",
+ MessageBoxButton button = MessageBoxButton.OKCancel,
+ MessageBoxIcon icon = MessageBoxIcon.Info,
+ DefaultButton defaultButton = DefaultButton.Unset, int? countdown = null)
+ {
+ var setting = Application.Current.FindResource("MsgBoxInfo") as MessageBoxXSetting;
+ return MessageBoxX.Show(owner, message, caption, button, icon, defaultButton, setting, countdown);
+ }
+ #endregion
+ }
+}
diff --git a/HMI.UI/Util/ToastHelper.cs b/HMI.UI/Util/ToastHelper.cs
new file mode 100644
index 0000000..7f32e02
--- /dev/null
+++ b/HMI.UI/Util/ToastHelper.cs
@@ -0,0 +1,48 @@
+锘縰sing Panuon.WPF.UI;
+using System.Windows;
+
+namespace HMI.UI.Util
+{
+ public interface ToastHandler
+ {
+ void Success(Window window,
+ string message,
+ MessageBoxIcon icon,
+ ToastPosition position, double offset, int durationMs,
+ ToastWindow targetWindow);
+
+ void Warning(Window window,
+ string message,
+ MessageBoxIcon icon,
+ ToastPosition position, double offset, int durationMs,
+ ToastWindow targetWindow);
+ }
+
+ public class ToastHelper
+ {
+ private static ToastHandler Instance;
+
+ public static void Register(ToastHandler helper)
+ {
+ if (Instance == null) { Instance = helper; }
+ }
+
+ public static void Success(Window window,
+ string message,
+ MessageBoxIcon icon = MessageBoxIcon.Success,
+ ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
+ ToastWindow targetWindow = ToastWindow.ActiveWindow)
+ {
+ Instance.Success(window, message, icon, position, offset, durationMs, targetWindow);
+ }
+
+ public static void Warning(Window window,
+ string message,
+ MessageBoxIcon icon = MessageBoxIcon.Warning,
+ ToastPosition position = ToastPosition.Top, double offset = 0, int durationMs = 3000,
+ ToastWindow targetWindow = ToastWindow.ActiveWindow)
+ {
+ Instance.Warning(window, message, icon, position, offset, durationMs, targetWindow);
+ }
+ }
+}
diff --git a/HMI.UI/packages.config b/HMI.UI/packages.config
new file mode 100644
index 0000000..46ff1b7
--- /dev/null
+++ b/HMI.UI/packages.config
@@ -0,0 +1,5 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="Panuon.WPF" version="1.1.2.2" targetFramework="net472" />
+ <package id="Panuon.WPF.UI" version="1.2.4.9" targetFramework="net472" />
+</packages>
\ No newline at end of file
diff --git a/HMI.UnitTest/App.config b/HMI.UnitTest/App.config
new file mode 100644
index 0000000..56efbc7
--- /dev/null
+++ b/HMI.UnitTest/App.config
@@ -0,0 +1,6 @@
+锘�<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+ <startup>
+ <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
+ </startup>
+</configuration>
\ No newline at end of file
diff --git a/HMI.UnitTest/App.xaml b/HMI.UnitTest/App.xaml
new file mode 100644
index 0000000..0976a73
--- /dev/null
+++ b/HMI.UnitTest/App.xaml
@@ -0,0 +1,16 @@
+锘�<Application x:Class="UnitTest.App"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:local="clr-namespace:UnitTest"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ StartupUri="MainWindow.xaml">
+ <Application.Resources>
+ <ResourceDictionary>
+ <ResourceDictionary.MergedDictionaries>
+ <ResourceDictionary Source="/HMI.UI;component/Style/FormStyle.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+ <Style TargetType="{x:Type pu:FormGroup}" BasedOn="{StaticResource InputFormGroupStyle}"></Style>
+ </ResourceDictionary>
+ </Application.Resources>
+</Application>
diff --git a/HMI.UnitTest/App.xaml.cs b/HMI.UnitTest/App.xaml.cs
new file mode 100644
index 0000000..44777f2
--- /dev/null
+++ b/HMI.UnitTest/App.xaml.cs
@@ -0,0 +1,17 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace UnitTest
+{
+ /// <summary>
+ /// App.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class App : Application
+ {
+ }
+}
diff --git a/HMI.UnitTest/HMI.UnitTest.csproj b/HMI.UnitTest/HMI.UnitTest.csproj
new file mode 100644
index 0000000..f91baeb
--- /dev/null
+++ b/HMI.UnitTest/HMI.UnitTest.csproj
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{325A7F52-FE51-44F0-B3AC-5F42F5356605}</ProjectGuid>
+ <OutputType>WinExe</OutputType>
+ <RootNamespace>HMI.UnitTest</RootNamespace>
+ <AssemblyName>HMI.UnitTest</AssemblyName>
+ <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <WarningLevel>4</WarningLevel>
+ <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+ <Deterministic>true</Deterministic>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>bin\x64\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <DebugType>full</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ <Prefer32Bit>true</Prefer32Bit>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ <OutputPath>bin\x64\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <Optimize>true</Optimize>
+ <DebugType>pdbonly</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ <Prefer32Bit>true</Prefer32Bit>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="log4net, Version=3.0.3.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\log4net.3.0.3\lib\net462\log4net.dll</HintPath>
+ </Reference>
+ <Reference Include="Panuon.WPF, Version=1.1.2.2, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\Panuon.WPF.1.1.2.2\lib\net472\Panuon.WPF.dll</HintPath>
+ </Reference>
+ <Reference Include="Panuon.WPF.UI, Version=1.2.4.8, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\Panuon.WPF.UI.1.2.4.9\lib\net472\Panuon.WPF.UI.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Configuration" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Web" />
+ <Reference Include="System.Xml" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Xaml">
+ <RequiredTargetFramework>4.0</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="WindowsBase" />
+ <Reference Include="PresentationCore" />
+ <Reference Include="PresentationFramework" />
+ </ItemGroup>
+ <ItemGroup>
+ <ApplicationDefinition Include="App.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </ApplicationDefinition>
+ <Page Include="MainWindow.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Compile Include="App.xaml.cs">
+ <DependentUpon>App.xaml</DependentUpon>
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="MainWindow.xaml.cs">
+ <DependentUpon>MainWindow.xaml</DependentUpon>
+ <SubType>Code</SubType>
+ </Compile>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Properties\AssemblyInfo.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ </EmbeddedResource>
+ <None Include="packages.config" />
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="App.config" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\HMI.Core\HMI.Core.csproj">
+ <Project>{3e3bf44a-0b69-45c5-9512-528cb48a7106}</Project>
+ <Name>HMI.Core</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.SettingControl\HMI.SettingControl.csproj">
+ <Project>{3dd748ac-9708-49ad-b846-659214035588}</Project>
+ <Name>HMI.SettingControl</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.UI\HMI.UI.csproj">
+ <Project>{f17de6b5-af1d-48c6-94a0-6b763a6546a6}</Project>
+ <Name>HMI.UI</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/HMI.UnitTest/MainWindow.xaml b/HMI.UnitTest/MainWindow.xaml
new file mode 100644
index 0000000..cab718c
--- /dev/null
+++ b/HMI.UnitTest/MainWindow.xaml
@@ -0,0 +1,12 @@
+锘�<Window x:Class="UnitTest.MainWindow"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:local="clr-namespace:UnitTest"
+ mc:Ignorable="d"
+ Title="MainWindow" Height="450" Width="800">
+ <Grid x:Name="page">
+
+ </Grid>
+</Window>
diff --git a/HMI.UnitTest/MainWindow.xaml.cs b/HMI.UnitTest/MainWindow.xaml.cs
new file mode 100644
index 0000000..ba897eb
--- /dev/null
+++ b/HMI.UnitTest/MainWindow.xaml.cs
@@ -0,0 +1,31 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using HMI.SettingControl;
+
+namespace UnitTest
+{
+ /// <summary>
+ /// MainWindow.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class MainWindow : Window
+ {
+ public MainWindow()
+ {
+ InitializeComponent();
+ page.Children.Clear();
+ page.Children.Add(new SettingControl());
+ }
+ }
+}
diff --git a/HMI.UnitTest/Properties/AssemblyInfo.cs b/HMI.UnitTest/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..dd3535f
--- /dev/null
+++ b/HMI.UnitTest/Properties/AssemblyInfo.cs
@@ -0,0 +1,52 @@
+锘縰sing System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// 鏈夊叧绋嬪簭闆嗙殑涓�鑸俊鎭敱浠ヤ笅
+// 鎺у埗銆傛洿鏀硅繖浜涚壒鎬у�煎彲淇敼
+// 涓庣▼搴忛泦鍏宠仈鐨勪俊鎭��
+[assembly: AssemblyTitle("UnitTest")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Organization")]
+[assembly: AssemblyProduct("UnitTest")]
+[assembly: AssemblyCopyright("Copyright 漏 Organization 2025")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 灏� ComVisible 璁剧疆涓� false 浼氫娇姝ょ▼搴忛泦涓殑绫诲瀷
+//瀵� COM 缁勪欢涓嶅彲瑙併�傚鏋滈渶瑕佷粠 COM 璁块棶姝ょ▼搴忛泦涓殑绫诲瀷
+//璇峰皢姝ょ被鍨嬬殑 ComVisible 鐗规�ц缃负 true銆�
+[assembly: ComVisible(false)]
+
+//鑻ヨ寮�濮嬬敓鎴愬彲鏈湴鍖栫殑搴旂敤绋嬪簭锛岃璁剧疆
+//.csproj 鏂囦欢涓殑 <UICulture>CultureYouAreCodingWith</UICulture>
+//鍦� <PropertyGroup> 涓�備緥濡傦紝濡傛灉浣犱娇鐢ㄧ殑鏄編鍥借嫳璇��
+//浣跨敤鐨勬槸缇庡浗鑻辫锛岃灏� <UICulture> 璁剧疆涓� en-US銆� 鐒跺悗鍙栨秷
+//瀵逛互涓� NeutralResourceLanguage 鐗规�х殑娉ㄩ噴銆� 鏇存柊
+//浠ヤ笅琛屼腑鐨勨�渆n-US鈥濅互鍖归厤椤圭洰鏂囦欢涓殑 UICulture 璁剧疆銆�
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+ ResourceDictionaryLocation.None, //涓婚鐗瑰畾璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //鎴栧簲鐢ㄧ▼搴忚祫婧愬瓧鍏镐腑鎵惧埌鏃朵娇鐢�)
+ ResourceDictionaryLocation.SourceAssembly //甯歌璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //銆佸簲鐢ㄧ▼搴忔垨浠讳綍涓婚涓撶敤璧勬簮瀛楀吀涓壘鍒版椂浣跨敤)
+)]
+
+
+// 绋嬪簭闆嗙殑鐗堟湰淇℃伅鐢变笅鍒楀洓涓�肩粍鎴�:
+//
+// 涓荤増鏈�
+// 娆$増鏈�
+// 鐢熸垚鍙�
+// 淇鍙�
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/HMI.UnitTest/Properties/Resources.Designer.cs b/HMI.UnitTest/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..402e669
--- /dev/null
+++ b/HMI.UnitTest/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// 姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+// 杩愯鏃剁増鏈�:4.0.30319.42000
+//
+// 瀵规鏂囦欢鐨勬洿鏀瑰彲鑳戒細瀵艰嚧涓嶆纭殑琛屼负锛屽苟涓斿鏋�
+// 閲嶆柊鐢熸垚浠g爜锛岃繖浜涙洿鏀瑰皢浼氫涪澶便��
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.UnitTest.Properties {
+ using System;
+
+
+ /// <summary>
+ /// 涓�涓己绫诲瀷鐨勮祫婧愮被锛岀敤浜庢煡鎵炬湰鍦板寲鐨勫瓧绗︿覆绛夈��
+ /// </summary>
+ // 姝ょ被鏄敱 StronglyTypedResourceBuilder
+ // 绫婚�氳繃绫讳技浜� ResGen 鎴� Visual Studio 鐨勫伐鍏疯嚜鍔ㄧ敓鎴愮殑銆�
+ // 鑻ヨ娣诲姞鎴栫Щ闄ゆ垚鍛橈紝璇风紪杈� .ResX 鏂囦欢锛岀劧鍚庨噸鏂拌繍琛� ResGen
+ // (浠� /str 浣滀负鍛戒护閫夐」)锛屾垨閲嶆柊鐢熸垚 VS 椤圭洰銆�
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// 杩斿洖姝ょ被浣跨敤鐨勭紦瀛樼殑 ResourceManager 瀹炰緥銆�
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HMI.UnitTest.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// 閲嶅啓褰撳墠绾跨▼鐨� CurrentUICulture 灞炴�э紝瀵�
+ /// 浣跨敤姝ゅ己绫诲瀷璧勬簮绫荤殑鎵�鏈夎祫婧愭煡鎵炬墽琛岄噸鍐欍��
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/HMI.UnitTest/Properties/Resources.resx b/HMI.UnitTest/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/HMI.UnitTest/Properties/Resources.resx
@@ -0,0 +1,117 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
diff --git a/HMI.UnitTest/Properties/Settings.Designer.cs b/HMI.UnitTest/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..c21690e
--- /dev/null
+++ b/HMI.UnitTest/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// 姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+// 杩愯鏃剁増鏈�:4.0.30319.42000
+//
+// 瀵规鏂囦欢鐨勬洿鏀瑰彲鑳戒細瀵艰嚧涓嶆纭殑琛屼负锛屽苟涓斿鏋�
+// 閲嶆柊鐢熸垚浠g爜锛岃繖浜涙洿鏀瑰皢浼氫涪澶便��
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HMI.UnitTest.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.12.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/HMI.UnitTest/Properties/Settings.settings b/HMI.UnitTest/Properties/Settings.settings
new file mode 100644
index 0000000..033d7a5
--- /dev/null
+++ b/HMI.UnitTest/Properties/Settings.settings
@@ -0,0 +1,7 @@
+锘�<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile>
\ No newline at end of file
diff --git a/HMI.UnitTest/packages.config b/HMI.UnitTest/packages.config
new file mode 100644
index 0000000..63cdc53
--- /dev/null
+++ b/HMI.UnitTest/packages.config
@@ -0,0 +1,6 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="log4net" version="3.0.3" targetFramework="net472" />
+ <package id="Panuon.WPF" version="1.1.2.2" targetFramework="net472" />
+ <package id="Panuon.WPF.UI" version="1.2.4.9" targetFramework="net472" />
+</packages>
\ No newline at end of file
diff --git a/Libs/DatabaseHelper.dll b/Libs/DatabaseHelper.dll
new file mode 100644
index 0000000..8398f83
--- /dev/null
+++ b/Libs/DatabaseHelper.dll
Binary files differ
diff --git a/Libs/SQLite.Interop.dll b/Libs/SQLite.Interop.dll
new file mode 100644
index 0000000..f666eab
--- /dev/null
+++ b/Libs/SQLite.Interop.dll
Binary files differ
diff --git a/Libs/System.Data.SQLite.EF6.dll b/Libs/System.Data.SQLite.EF6.dll
new file mode 100644
index 0000000..92a3cf0
--- /dev/null
+++ b/Libs/System.Data.SQLite.EF6.dll
Binary files differ
diff --git a/Libs/System.Data.SQLite.Linq.dll b/Libs/System.Data.SQLite.Linq.dll
new file mode 100644
index 0000000..cb2da5f
--- /dev/null
+++ b/Libs/System.Data.SQLite.Linq.dll
Binary files differ
diff --git a/Libs/System.Data.SQLite.dll b/Libs/System.Data.SQLite.dll
new file mode 100644
index 0000000..4de7b04
--- /dev/null
+++ b/Libs/System.Data.SQLite.dll
Binary files differ
diff --git a/Libs/System.Data.SQLite.dll.config b/Libs/System.Data.SQLite.dll.config
new file mode 100644
index 0000000..b14f7b5
--- /dev/null
+++ b/Libs/System.Data.SQLite.dll.config
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+ *
+ * System.Data.SQLite.dll.config -
+ *
+ * WARNING: This XML configuration file is intended for use within the NuGet
+ * package directories only. Please do not copy this file to any of
+ * the build output directories because it could interfere with the
+ * native library pre-loading feature.
+ *
+ * Written by Joe Mistachkin.
+ * Released to the public domain, use at your own risk!
+ *
+-->
+<configuration>
+ <appSettings>
+ <add key="PreLoadSQLite_BaseDirectory"
+ value="%PreLoadSQLite_AssemblyDirectory%\..\..\build\%PreLoadSQLite_TargetFramework%" />
+ </appSettings>
+
+ <dllmap dll="SQLite.Interop" target="SQLite.Interop.dll" />
+</configuration>
diff --git a/Libs/System.Data.SQLite.xml b/Libs/System.Data.SQLite.xml
new file mode 100644
index 0000000..021d08d
--- /dev/null
+++ b/Libs/System.Data.SQLite.xml
@@ -0,0 +1,21379 @@
+<?xml version="1.0"?>
+<doc>
+ <assembly>
+ <name>System.Data.SQLite</name>
+ </assembly>
+ <members>
+ <member name="T:System.Data.SQLite.AssemblySourceIdAttribute">
+ <summary>
+ Defines a source code identifier custom attribute for an assembly
+ manifest.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.AssemblySourceIdAttribute.#ctor(System.String)">
+ <summary>
+ Constructs an instance of this attribute class using the specified
+ source code identifier value.
+ </summary>
+ <param name="value">
+ The source code identifier value to use.
+ </param>
+ </member>
+ <member name="P:System.Data.SQLite.AssemblySourceIdAttribute.SourceId">
+ <summary>
+ Gets the source code identifier value.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.AssemblySourceTimeStampAttribute">
+ <summary>
+ Defines a source code time-stamp custom attribute for an assembly
+ manifest.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.AssemblySourceTimeStampAttribute.#ctor(System.String)">
+ <summary>
+ Constructs an instance of this attribute class using the specified
+ source code time-stamp value.
+ </summary>
+ <param name="value">
+ The source code time-stamp value to use.
+ </param>
+ </member>
+ <member name="P:System.Data.SQLite.AssemblySourceTimeStampAttribute.SourceTimeStamp">
+ <summary>
+ Gets the source code time-stamp value.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteLogCallback">
+ <summary>
+ This is the method signature for the SQLite core library logging callback
+ function for use with sqlite3_log() and the SQLITE_CONFIG_LOG.
+
+ WARNING: This delegate is used more-or-less directly by native code, do
+ not modify its type signature.
+ </summary>
+ <param name="pUserData">
+ The extra data associated with this message, if any.
+ </param>
+ <param name="errorCode">
+ The error code associated with this message.
+ </param>
+ <param name="pMessage">
+ The message string to be logged.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLite3">
+ <summary>
+ This class implements SQLiteBase completely, and is the guts of the code that interop's SQLite with .NET
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteBase">
+ <summary>
+ This internal class provides the foundation of SQLite support. It defines all the abstract members needed to implement
+ a SQLite data provider, and inherits from SQLiteConvert which allows for simple translations of string to and from SQLite.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteConvert">
+ <summary>
+ This base class provides datatype conversion services for the SQLite provider.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert.EscapeChar">
+ <summary>
+ This character is used to escape other characters, including itself, in
+ connection string property names and values.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert.QuoteChar">
+ <summary>
+ This character can be used to wrap connection string property names and
+ values. Normally, it is optional; however, when used, it must be the
+ first -AND- last character of that connection string property name -OR-
+ value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert.AltQuoteChar">
+ <summary>
+ This character can be used to wrap connection string property names and
+ values. Normally, it is optional; however, when used, it must be the
+ first -AND- last character of that connection string property name -OR-
+ value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert.ValueChar">
+ <summary>
+ The character is used to separate the name and value for a connection
+ string property. This character cannot be present in any connection
+ string property name. This character can be present in a connection
+ string property value; however, this should be avoided unless deemed
+ absolutely necessary.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert.PairChar">
+ <summary>
+ This character is used to separate connection string properties. When
+ the "No_SQLiteConnectionNewParser" setting is enabled, this character
+ may not appear in connection string property names -OR- values.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert.FallbackDefaultDbType">
+ <summary>
+ The fallback default database type when one cannot be obtained from an
+ existing connection instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert.FullFormat">
+ <summary>
+ The format string for DateTime values when using the InvariantCulture or CurrentCulture formats.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert.SpecialChars">
+ <summary>
+ These are the characters that are special to the connection string
+ parser.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert.FallbackDefaultTypeName">
+ <summary>
+ The fallback default database type name when one cannot be obtained from
+ an existing connection instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert.UnixEpoch">
+ <summary>
+ The value for the Unix epoch (e.g. January 1, 1970 at midnight, in UTC).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert.OleAutomationEpochAsJulianDay">
+ <summary>
+ The value of the OLE Automation epoch represented as a Julian day. This
+ field cannot be removed as the test suite relies upon it.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert.MinimumJd">
+ <summary>
+ This is the minimum Julian Day value supported by this library
+ (148731163200000).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert.MaximumJd">
+ <summary>
+ This is the maximum Julian Day value supported by this library
+ (464269060799000).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert._datetimeFormats">
+ <summary>
+ An array of ISO-8601 DateTime formats that we support parsing.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert._datetimeFormatUtc">
+ <summary>
+ The internal default format for UTC DateTime values when converting
+ to a string.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert._datetimeFormatLocal">
+ <summary>
+ The internal default format for local DateTime values when converting
+ to a string.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert._utf8">
+ <summary>
+ An UTF-8 Encoding instance, so we can convert strings to and from UTF-8
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert._datetimeFormat">
+ <summary>
+ The default DateTime format for this instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert._datetimeKind">
+ <summary>
+ The default DateTimeKind for this instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConvert._datetimeFormatString">
+ <summary>
+ The default DateTime format string for this instance.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.#ctor(System.Data.SQLite.SQLiteDateFormats,System.DateTimeKind,System.String)">
+ <summary>
+ Initializes the conversion class
+ </summary>
+ <param name="fmt">The default date/time format to use for this instance</param>
+ <param name="kind">The DateTimeKind to use.</param>
+ <param name="fmtString">The DateTime format string to use.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.ToUTF8(System.String)">
+ <summary>
+ Converts a string to a UTF-8 encoded byte array sized to include a null-terminating character.
+ </summary>
+ <param name="sourceText">The string to convert to UTF-8</param>
+ <returns>A byte array containing the converted string plus an extra 0 terminating byte at the end of the array.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.ToUTF8(System.DateTime)">
+ <summary>
+ Convert a DateTime to a UTF-8 encoded, zero-terminated byte array.
+ </summary>
+ <remarks>
+ This function is a convenience function, which first calls ToString() on the DateTime, and then calls ToUTF8() with the
+ string result.
+ </remarks>
+ <param name="dateTimeValue">The DateTime to convert.</param>
+ <returns>The UTF-8 encoded string, including a 0 terminating byte at the end of the array.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.ToString(System.IntPtr,System.Int32)">
+ <summary>
+ Converts a UTF-8 encoded IntPtr of the specified length into a .NET string
+ </summary>
+ <param name="nativestring">The pointer to the memory where the UTF-8 string is encoded</param>
+ <param name="nativestringlen">The number of bytes to decode</param>
+ <returns>A string containing the translated character(s)</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.UTF8ToString(System.IntPtr,System.Int32)">
+ <summary>
+ Converts a UTF-8 encoded IntPtr of the specified length into a .NET string
+ </summary>
+ <param name="nativestring">The pointer to the memory where the UTF-8 string is encoded</param>
+ <param name="nativestringlen">The number of bytes to decode</param>
+ <returns>A string containing the translated character(s)</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.isValidJd(System.Int64)">
+ <summary>
+ Checks if the specified <see cref="T:System.Int64"/> is within the
+ supported range for a Julian Day value.
+ </summary>
+ <param name="jd">
+ The Julian Day value to check.
+ </param>
+ <returns>
+ Non-zero if the specified Julian Day value is in the supported
+ range; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.DoubleToJd(System.Double)">
+ <summary>
+ Converts a Julian Day value from a <see cref="T:System.Double"/> to an
+ <see cref="T:System.Int64"/>.
+ </summary>
+ <param name="julianDay">
+ The Julian Day <see cref="T:System.Double"/> value to convert.
+ </param>
+ <returns>
+ The resulting Julian Day <see cref="T:System.Int64"/> value.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.JdToDouble(System.Int64)">
+ <summary>
+ Converts a Julian Day value from an <see cref="T:System.Int64"/> to a
+ <see cref="T:System.Double"/>.
+ </summary>
+ <param name="jd">
+ The Julian Day <see cref="T:System.Int64"/> value to convert.
+ </param>
+ <returns>
+ The resulting Julian Day <see cref="T:System.Double"/> value.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.computeYMD(System.Int64,System.Nullable{System.DateTime})">
+ <summary>
+ Converts a Julian Day value to a <see cref="T:System.DateTime"/>.
+ This method was translated from the "computeYMD" function in the
+ "date.c" file belonging to the SQLite core library.
+ </summary>
+ <param name="jd">
+ The Julian Day value to convert.
+ </param>
+ <param name="badValue">
+ The <see cref="T:System.DateTime"/> value to return in the event that the
+ Julian Day is out of the supported range. If this value is null,
+ an exception will be thrown instead.
+ </param>
+ <returns>
+ A <see cref="T:System.DateTime"/> value that contains the year, month, and
+ day values that are closest to the specified Julian Day value.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.computeHMS(System.Int64,System.Nullable{System.DateTime})">
+ <summary>
+ Converts a Julian Day value to a <see cref="T:System.DateTime"/>.
+ This method was translated from the "computeHMS" function in the
+ "date.c" file belonging to the SQLite core library.
+ </summary>
+ <param name="jd">
+ The Julian Day value to convert.
+ </param>
+ <param name="badValue">
+ The <see cref="T:System.DateTime"/> value to return in the event that the
+ Julian Day value is out of the supported range. If this value is
+ null, an exception will be thrown instead.
+ </param>
+ <returns>
+ A <see cref="T:System.DateTime"/> value that contains the hour, minute, and
+ second, and millisecond values that are closest to the specified
+ Julian Day value.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.computeJD(System.DateTime)">
+ <summary>
+ Converts a <see cref="T:System.DateTime"/> to a Julian Day value.
+ This method was translated from the "computeJD" function in
+ the "date.c" file belonging to the SQLite core library.
+ Since the range of Julian Day values supported by this method
+ includes all possible (valid) values of a <see cref="T:System.DateTime"/>
+ value, it should be extremely difficult for this method to
+ raise an exception or return an undefined result.
+ </summary>
+ <param name="dateTime">
+ The <see cref="T:System.DateTime"/> value to convert. This value
+ will be within the range of <see cref="F:System.DateTime.MinValue"/>
+ (00:00:00.0000000, January 1, 0001) to
+ <see cref="F:System.DateTime.MaxValue"/> (23:59:59.9999999, December
+ 31, 9999).
+ </param>
+ <returns>
+ The nearest Julian Day value corresponding to the specified
+ <see cref="T:System.DateTime"/> value.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.ToDateTime(System.String)">
+ <summary>
+ Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind,
+ and DateTimeFormatString specified for the connection when it was opened.
+ </summary>
+ <remarks>
+ Acceptable ISO8601 DateTime formats are:
+ <list type="bullet">
+ <item><description>THHmmssK</description></item>
+ <item><description>THHmmK</description></item>
+ <item><description>HH:mm:ss.FFFFFFFK</description></item>
+ <item><description>HH:mm:ssK</description></item>
+ <item><description>HH:mmK</description></item>
+ <item><description>yyyy-MM-dd HH:mm:ss.FFFFFFFK</description></item>
+ <item><description>yyyy-MM-dd HH:mm:ssK</description></item>
+ <item><description>yyyy-MM-dd HH:mmK</description></item>
+ <item><description>yyyy-MM-ddTHH:mm:ss.FFFFFFFK</description></item>
+ <item><description>yyyy-MM-ddTHH:mmK</description></item>
+ <item><description>yyyy-MM-ddTHH:mm:ssK</description></item>
+ <item><description>yyyyMMddHHmmssK</description></item>
+ <item><description>yyyyMMddHHmmK</description></item>
+ <item><description>yyyyMMddTHHmmssFFFFFFFK</description></item>
+ <item><description>THHmmss</description></item>
+ <item><description>THHmm</description></item>
+ <item><description>HH:mm:ss.FFFFFFF</description></item>
+ <item><description>HH:mm:ss</description></item>
+ <item><description>HH:mm</description></item>
+ <item><description>yyyy-MM-dd HH:mm:ss.FFFFFFF</description></item>
+ <item><description>yyyy-MM-dd HH:mm:ss</description></item>
+ <item><description>yyyy-MM-dd HH:mm</description></item>
+ <item><description>yyyy-MM-ddTHH:mm:ss.FFFFFFF</description></item>
+ <item><description>yyyy-MM-ddTHH:mm</description></item>
+ <item><description>yyyy-MM-ddTHH:mm:ss</description></item>
+ <item><description>yyyyMMddHHmmss</description></item>
+ <item><description>yyyyMMddHHmm</description></item>
+ <item><description>yyyyMMddTHHmmssFFFFFFF</description></item>
+ <item><description>yyyy-MM-dd</description></item>
+ <item><description>yyyyMMdd</description></item>
+ <item><description>yy-MM-dd</description></item>
+ </list>
+ If the string cannot be matched to one of the above formats -OR-
+ the DateTimeFormatString if one was provided, an exception will
+ be thrown.
+ </remarks>
+ <param name="dateText">The string containing either a long integer number of 100-nanosecond units since
+ System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a
+ culture-independent formatted date and time string, a formatted date and time string in the current
+ culture, or an ISO8601-format string.</param>
+ <returns>A DateTime value</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.ToDateTime(System.String,System.Data.SQLite.SQLiteDateFormats,System.DateTimeKind,System.String)">
+ <summary>
+ Converts a string into a DateTime, using the specified DateTimeFormat,
+ DateTimeKind and DateTimeFormatString.
+ </summary>
+ <remarks>
+ Acceptable ISO8601 DateTime formats are:
+ <list type="bullet">
+ <item><description>THHmmssK</description></item>
+ <item><description>THHmmK</description></item>
+ <item><description>HH:mm:ss.FFFFFFFK</description></item>
+ <item><description>HH:mm:ssK</description></item>
+ <item><description>HH:mmK</description></item>
+ <item><description>yyyy-MM-dd HH:mm:ss.FFFFFFFK</description></item>
+ <item><description>yyyy-MM-dd HH:mm:ssK</description></item>
+ <item><description>yyyy-MM-dd HH:mmK</description></item>
+ <item><description>yyyy-MM-ddTHH:mm:ss.FFFFFFFK</description></item>
+ <item><description>yyyy-MM-ddTHH:mmK</description></item>
+ <item><description>yyyy-MM-ddTHH:mm:ssK</description></item>
+ <item><description>yyyyMMddHHmmssK</description></item>
+ <item><description>yyyyMMddHHmmK</description></item>
+ <item><description>yyyyMMddTHHmmssFFFFFFFK</description></item>
+ <item><description>THHmmss</description></item>
+ <item><description>THHmm</description></item>
+ <item><description>HH:mm:ss.FFFFFFF</description></item>
+ <item><description>HH:mm:ss</description></item>
+ <item><description>HH:mm</description></item>
+ <item><description>yyyy-MM-dd HH:mm:ss.FFFFFFF</description></item>
+ <item><description>yyyy-MM-dd HH:mm:ss</description></item>
+ <item><description>yyyy-MM-dd HH:mm</description></item>
+ <item><description>yyyy-MM-ddTHH:mm:ss.FFFFFFF</description></item>
+ <item><description>yyyy-MM-ddTHH:mm</description></item>
+ <item><description>yyyy-MM-ddTHH:mm:ss</description></item>
+ <item><description>yyyyMMddHHmmss</description></item>
+ <item><description>yyyyMMddHHmm</description></item>
+ <item><description>yyyyMMddTHHmmssFFFFFFF</description></item>
+ <item><description>yyyy-MM-dd</description></item>
+ <item><description>yyyyMMdd</description></item>
+ <item><description>yy-MM-dd</description></item>
+ </list>
+ If the string cannot be matched to one of the above formats -OR-
+ the DateTimeFormatString if one was provided, an exception will
+ be thrown.
+ </remarks>
+ <param name="dateText">The string containing either a long integer number of 100-nanosecond units since
+ System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a
+ culture-independent formatted date and time string, a formatted date and time string in the current
+ culture, or an ISO8601-format string.</param>
+ <param name="format">The SQLiteDateFormats to use.</param>
+ <param name="kind">The DateTimeKind to use.</param>
+ <param name="formatString">The DateTime format string to use.</param>
+ <returns>A DateTime value</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.ToDateTime(System.Double)">
+ <summary>
+ Converts a julianday value into a DateTime
+ </summary>
+ <param name="julianDay">The value to convert</param>
+ <returns>A .NET DateTime</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.ToDateTime(System.Double,System.DateTimeKind)">
+ <summary>
+ Converts a julianday value into a DateTime
+ </summary>
+ <param name="julianDay">The value to convert</param>
+ <param name="kind">The DateTimeKind to use.</param>
+ <returns>A .NET DateTime</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.UnixEpochToDateTime(System.Int64,System.DateTimeKind)">
+ <summary>
+ Converts the specified number of seconds from the Unix epoch into a
+ <see cref="T:System.DateTime"/> value.
+ </summary>
+ <param name="seconds">
+ The number of whole seconds since the Unix epoch.
+ </param>
+ <param name="kind">
+ Either Utc or Local time.
+ </param>
+ <returns>
+ The new <see cref="T:System.DateTime"/> value.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.TicksToDateTime(System.Int64,System.DateTimeKind)">
+ <summary>
+ Converts the specified number of ticks since the epoch into a
+ <see cref="T:System.DateTime"/> value.
+ </summary>
+ <param name="ticks">
+ The number of whole ticks since the epoch.
+ </param>
+ <param name="kind">
+ Either Utc or Local time.
+ </param>
+ <returns>
+ The new <see cref="T:System.DateTime"/> value.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.ToJulianDay(System.DateTime)">
+ <summary>
+ Converts a DateTime struct to a JulianDay double
+ </summary>
+ <param name="value">The DateTime to convert</param>
+ <returns>The JulianDay value the Datetime represents</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.ToUnixEpoch(System.DateTime)">
+ <summary>
+ Converts a DateTime struct to the whole number of seconds since the
+ Unix epoch.
+ </summary>
+ <param name="value">The DateTime to convert</param>
+ <returns>The whole number of seconds since the Unix epoch</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.GetDateTimeKindFormat(System.DateTimeKind,System.String)">
+ <summary>
+ Returns the DateTime format string to use for the specified DateTimeKind.
+ If <paramref name="formatString" /> is not null, it will be returned verbatim.
+ </summary>
+ <param name="kind">The DateTimeKind to use.</param>
+ <param name="formatString">The DateTime format string to use.</param>
+ <returns>
+ The DateTime format string to use for the specified DateTimeKind.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.ToString(System.DateTime)">
+ <summary>
+ Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind,
+ and DateTimeFormatString specified for the connection when it was opened.
+ </summary>
+ <param name="dateValue">The DateTime value to convert</param>
+ <returns>Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a
+ Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time
+ string, a formatted date and time string in the current culture, or an ISO8601-format date/time string.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.ToString(System.DateTime,System.Data.SQLite.SQLiteDateFormats,System.DateTimeKind,System.String)">
+ <summary>
+ Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind,
+ and DateTimeFormatString specified for the connection when it was opened.
+ </summary>
+ <param name="dateValue">The DateTime value to convert</param>
+ <param name="format">The SQLiteDateFormats to use.</param>
+ <param name="kind">The DateTimeKind to use.</param>
+ <param name="formatString">The DateTime format string to use.</param>
+ <returns>Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a
+ Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time
+ string, a formatted date and time string in the current culture, or an ISO8601-format date/time string.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.ToDateTime(System.IntPtr,System.Int32)">
+ <summary>
+ Internal function to convert a UTF-8 encoded IntPtr of the specified length to a DateTime.
+ </summary>
+ <remarks>
+ This is a convenience function, which first calls ToString() on the IntPtr to convert it to a string, then calls
+ ToDateTime() on the string to return a DateTime.
+ </remarks>
+ <param name="ptr">A pointer to the UTF-8 encoded string</param>
+ <param name="len">The length in bytes of the string</param>
+ <returns>The parsed DateTime value</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.Split(System.String,System.Char)">
+ <summary>
+ Smart method of splitting a string. Skips quoted elements, removes the quotes.
+ </summary>
+ <remarks>
+ This split function works somewhat like the String.Split() function in that it breaks apart a string into
+ pieces and returns the pieces as an array. The primary differences are:
+ <list type="bullet">
+ <item><description>Only one character can be provided as a separator character</description></item>
+ <item><description>Quoted text inside the string is skipped over when searching for the separator, and the quotes are removed.</description></item>
+ </list>
+ Thus, if splitting the following string looking for a comma:<br/>
+ One,Two, "Three, Four", Five<br/>
+ <br/>
+ The resulting array would contain<br/>
+ [0] One<br/>
+ [1] Two<br/>
+ [2] Three, Four<br/>
+ [3] Five<br/>
+ <br/>
+ Note that the leading and trailing spaces were removed from each item during the split.
+ </remarks>
+ <param name="source">Source string to split apart</param>
+ <param name="separator">Separator character</param>
+ <returns>A string array of the split up elements</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.NewSplit(System.String,System.Char,System.Boolean,System.String@)">
+ <summary>
+ Splits the specified string into multiple strings based on a separator
+ and returns the result as an array of strings.
+ </summary>
+ <param name="value">
+ The string to split into pieces based on the separator character. If
+ this string is null, null will always be returned. If this string is
+ empty, an array of zero strings will always be returned.
+ </param>
+ <param name="separator">
+ The character used to divide the original string into sub-strings.
+ This character cannot be a backslash or a double-quote; otherwise, no
+ work will be performed and null will be returned.
+ </param>
+ <param name="keepQuote">
+ If this parameter is non-zero, all double-quote characters will be
+ retained in the returned list of strings; otherwise, they will be
+ dropped.
+ </param>
+ <param name="error">
+ Upon failure, this parameter will be modified to contain an appropriate
+ error message.
+ </param>
+ <returns>
+ The new array of strings or null if the input string is null -OR- the
+ separator character is a backslash or a double-quote -OR- the string
+ contains an unbalanced backslash or double-quote character.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.ToStringWithProvider(System.Object,System.IFormatProvider)">
+ <summary>
+ Queries and returns the string representation for an object, using the
+ specified (or current) format provider.
+ </summary>
+ <param name="obj">
+ The object instance to return the string representation for.
+ </param>
+ <param name="provider">
+ The format provider to use -OR- null if the current format provider for
+ the thread should be used instead.
+ </param>
+ <returns>
+ The string representation for the object instance -OR- null if the
+ object instance is also null.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.ToBoolean(System.Object,System.IFormatProvider,System.Boolean)">
+ <summary>
+ Attempts to convert an arbitrary object to the Boolean data type.
+ Null object values are converted to false. Throws an exception
+ upon failure.
+ </summary>
+ <param name="obj">
+ The object value to convert.
+ </param>
+ <param name="provider">
+ The format provider to use.
+ </param>
+ <param name="viaFramework">
+ If non-zero, a string value will be converted using the
+ <see cref="M:System.Convert.ToBoolean(System.Object,System.IFormatProvider)"/>
+ method; otherwise, the <see cref="M:System.Data.SQLite.SQLiteConvert.ToBoolean(System.String)"/>
+ method will be used.
+ </param>
+ <returns>
+ The converted boolean value.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.ToBoolean(System.Object)">
+ <summary>
+ Convert a value to true or false.
+ </summary>
+ <param name="source">A string or number representing true or false</param>
+ <returns></returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.ToString(System.Int32)">
+ <summary>
+ Converts an integer to a string that can be round-tripped using the
+ invariant culture.
+ </summary>
+ <param name="value">
+ The integer value to return the string representation for.
+ </param>
+ <returns>
+ The string representation of the specified integer value, using the
+ invariant culture.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.ToBoolean(System.String)">
+ <summary>
+ Attempts to convert a <see cref="T:System.String"/> into a <see cref="T:System.Boolean"/>.
+ </summary>
+ <param name="source">
+ The <see cref="T:System.String"/> to convert, cannot be null.
+ </param>
+ <returns>
+ The converted <see cref="T:System.Boolean"/> value.
+ </returns>
+ <remarks>
+ The supported strings are "yes", "no", "y", "n", "on", "off", "0", "1",
+ as well as any prefix of the strings <see cref="F:System.Boolean.FalseString"/>
+ and <see cref="F:System.Boolean.TrueString"/>. All strings are treated in a
+ case-insensitive manner.
+ </remarks>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.SQLiteTypeToType(System.Data.SQLite.SQLiteType)">
+ <summary>
+ Converts a SQLiteType to a .NET Type object
+ </summary>
+ <param name="t">The SQLiteType to convert</param>
+ <returns>Returns a .NET Type object</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.TypeToDbType(System.Type)">
+ <summary>
+ For a given intrinsic type, return a DbType
+ </summary>
+ <param name="typ">The native type to convert</param>
+ <returns>The corresponding (closest match) DbType</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.DbTypeToColumnSize(System.Data.DbType)">
+ <summary>
+ Returns the ColumnSize for the given DbType
+ </summary>
+ <param name="typ">The DbType to get the size of</param>
+ <returns></returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.GetDefaultTypeName(System.Data.SQLite.SQLiteConnection)">
+ <summary>
+ Determines the default database type name to be used when a
+ per-connection value is not available.
+ </summary>
+ <param name="connection">
+ The connection context for type mappings, if any.
+ </param>
+ <returns>
+ The default database type name to use.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.DefaultTypeNameWarning(System.Data.DbType,System.Data.SQLite.SQLiteConnectionFlags,System.String)">
+ <summary>
+ If applicable, issues a trace log message warning about falling back to
+ the default database type name.
+ </summary>
+ <param name="dbType">
+ The database value type.
+ </param>
+ <param name="flags">
+ The flags associated with the parent connection object.
+ </param>
+ <param name="typeName">
+ The textual name of the database type.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.DefaultDbTypeWarning(System.String,System.Data.SQLite.SQLiteConnectionFlags,System.Nullable{System.Data.DbType})">
+ <summary>
+ If applicable, issues a trace log message warning about falling back to
+ the default database value type.
+ </summary>
+ <param name="typeName">
+ The textual name of the database type.
+ </param>
+ <param name="flags">
+ The flags associated with the parent connection object.
+ </param>
+ <param name="dbType">
+ The database value type.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.DbTypeToTypeName(System.Data.SQLite.SQLiteConnection,System.Data.DbType,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ For a given database value type, return the "closest-match" textual database type name.
+ </summary>
+ <param name="connection">The connection context for custom type mappings, if any.</param>
+ <param name="dbType">The database value type.</param>
+ <param name="flags">The flags associated with the parent connection object.</param>
+ <returns>The type name or an empty string if it cannot be determined.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.DbTypeToType(System.Data.DbType)">
+ <summary>
+ Convert a DbType to a Type
+ </summary>
+ <param name="typ">The DbType to convert from</param>
+ <returns>The closest-match .NET type</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.TypeToAffinity(System.Type,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ For a given type, return the closest-match SQLite TypeAffinity, which only understands a very limited subset of types.
+ </summary>
+ <param name="typ">The type to evaluate</param>
+ <param name="flags">The flags associated with the connection.</param>
+ <returns>The SQLite type affinity for that type.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.GetSQLiteDbTypeMap">
+ <summary>
+ Builds and returns a map containing the database column types
+ recognized by this provider.
+ </summary>
+ <returns>
+ A map containing the database column types recognized by this
+ provider.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.IsStringDbType(System.Data.DbType)">
+ <summary>
+ Determines if a database type is considered to be a string.
+ </summary>
+ <param name="type">
+ The database type to check.
+ </param>
+ <returns>
+ Non-zero if the database type is considered to be a string, zero
+ otherwise.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.SettingValueToString(System.Object)">
+ <summary>
+ Determines and returns the runtime configuration setting string that
+ should be used in place of the specified object value.
+ </summary>
+ <param name="value">
+ The object value to convert to a string.
+ </param>
+ <returns>
+ Either the string to use in place of the object value -OR- null if it
+ cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.GetDefaultDbType(System.Data.SQLite.SQLiteConnection)">
+ <summary>
+ Determines the default <see cref="T:System.Data.DbType"/> value to be used when a
+ per-connection value is not available.
+ </summary>
+ <param name="connection">
+ The connection context for type mappings, if any.
+ </param>
+ <returns>
+ The default <see cref="T:System.Data.DbType"/> value to use.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.GetStringOrNull(System.Object)">
+ <summary>
+ Converts the object value, which is assumed to have originated
+ from a <see cref="T:System.Data.DataRow"/>, to a string value.
+ </summary>
+ <param name="value">
+ The value to be converted to a string.
+ </param>
+ <returns>
+ A null value will be returned if the original value is null -OR-
+ the original value is <see cref="F:System.DBNull.Value"/>. Otherwise,
+ the original value will be converted to a string, using its
+ (possibly overridden) <see cref="M:System.Object.ToString"/> method and
+ then returned.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.LooksLikeNull(System.String)">
+ <summary>
+ Determines if the specified textual value appears to be a
+ <see cref="T:System.DBNull"/> value.
+ </summary>
+ <param name="text">
+ The textual value to inspect.
+ </param>
+ <returns>
+ Non-zero if the text looks like a <see cref="T:System.DBNull"/> value,
+ zero otherwise.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.LooksLikeInt64(System.String)">
+ <summary>
+ Determines if the specified textual value appears to be an
+ <see cref="T:System.Int64"/> value.
+ </summary>
+ <param name="text">
+ The textual value to inspect.
+ </param>
+ <returns>
+ Non-zero if the text looks like an <see cref="T:System.Int64"/> value,
+ zero otherwise.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.LooksLikeDouble(System.String)">
+ <summary>
+ Determines if the specified textual value appears to be a
+ <see cref="T:System.Double"/> value.
+ </summary>
+ <param name="text">
+ The textual value to inspect.
+ </param>
+ <returns>
+ Non-zero if the text looks like a <see cref="T:System.Double"/> value,
+ zero otherwise.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.LooksLikeDateTime(System.Data.SQLite.SQLiteConvert,System.String)">
+ <summary>
+ Determines if the specified textual value appears to be a
+ <see cref="T:System.DateTime"/> value.
+ </summary>
+ <param name="convert">
+ The <see cref="T:System.Data.SQLite.SQLiteConvert"/> object instance configured with
+ the chosen <see cref="T:System.DateTime"/> format.
+ </param>
+ <param name="text">
+ The textual value to inspect.
+ </param>
+ <returns>
+ Non-zero if the text looks like a <see cref="T:System.DateTime"/> in the
+ configured format, zero otherwise.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConvert.TypeNameToDbType(System.Data.SQLite.SQLiteConnection,System.String,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ For a given textual database type name, return the "closest-match" database type.
+ This method is called during query result processing; therefore, its performance
+ is critical.
+ </summary>
+ <param name="connection">The connection context for custom type mappings, if any.</param>
+ <param name="typeName">The textual name of the database type to match.</param>
+ <param name="flags">The flags associated with the parent connection object.</param>
+ <returns>The .NET DBType the text evaluates to.</returns>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteBase.COR_E_EXCEPTION">
+ <summary>
+ The error code used for logging exceptions caught in user-provided
+ code.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.IsReadOnly(System.String)">
+ <summary>
+ Returns non-zero if this connection to the database is read-only.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.SetMemoryStatus(System.Boolean)">
+ <summary>
+ Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled.
+ If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is
+ global to the process.
+ </summary>
+ <param name="value">Non-zero to enable memory usage tracking, zero otherwise.</param>
+ <returns>A standard SQLite return code (i.e. zero for success and non-zero for failure).</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.ReleaseMemory">
+ <summary>
+ Attempts to free as much heap memory as possible for the database connection.
+ </summary>
+ <returns>A standard SQLite return code (i.e. zero for success and non-zero for failure).</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.Shutdown">
+ <summary>
+ Shutdown the SQLite engine so that it can be restarted with different config options.
+ We depend on auto initialization to recover.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.IsOpen">
+ <summary>
+ Determines if the associated native connection handle is open.
+ </summary>
+ <returns>
+ Non-zero if a database connection is open.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.GetFileName(System.String)">
+ <summary>
+ Returns the fully qualified path and file name for the currently open
+ database, if any.
+ </summary>
+ <param name="dbName">
+ The name of the attached database to query.
+ </param>
+ <returns>
+ The fully qualified path and file name for the currently open database,
+ if any.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.Open(System.String,System.String,System.Data.SQLite.SQLiteConnectionFlags,System.Data.SQLite.SQLiteOpenFlagsEnum,System.Int32,System.Boolean)">
+ <summary>
+ Opens a database.
+ </summary>
+ <remarks>
+ Implementers should call SQLiteFunction.BindFunctions() and save the array after opening a connection
+ to bind all attributed user-defined functions and collating sequences to the new connection.
+ </remarks>
+ <param name="strFilename">The filename of the database to open. SQLite automatically creates it if it doesn't exist.</param>
+ <param name="vfsName">The name of the VFS to use -OR- null to use the default VFS.</param>
+ <param name="connectionFlags">The flags associated with the parent connection object</param>
+ <param name="openFlags">The open flags to use when creating the connection</param>
+ <param name="maxPoolSize">The maximum size of the pool for the given filename</param>
+ <param name="usePool">If true, the connection can be pulled from the connection pool</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.Close(System.Boolean)">
+ <summary>
+ Closes the currently-open database.
+ </summary>
+ <remarks>
+ After the database has been closed implemeters should call SQLiteFunction.UnbindFunctions() to deallocate all interop allocated
+ memory associated with the user-defined functions and collating sequences tied to the closed connection.
+ </remarks>
+ <param name="disposing">Non-zero if connection is being disposed, zero otherwise.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.SetTimeout(System.Int32)">
+ <summary>
+ Sets the busy timeout on the connection. SQLiteCommand will call this before executing any command.
+ </summary>
+ <param name="nTimeoutMS">The number of milliseconds to wait before returning SQLITE_BUSY</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.GetLastError">
+ <summary>
+ Returns the text of the last error issued by SQLite
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.GetLastError(System.String)">
+ <summary>
+ Returns the text of the last error issued by SQLite -OR- the specified default error text if
+ none is available from the SQLite core library.
+ </summary>
+ <param name="defValue">
+ The error text to return in the event that one is not available from the SQLite core library.
+ </param>
+ <returns>
+ The error text.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.ClearPool">
+ <summary>
+ When pooling is enabled, force this connection to be disposed rather than returned to the pool
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.CountPool">
+ <summary>
+ When pooling is enabled, returns the number of pool entries matching the current file name.
+ </summary>
+ <returns>The number of pool entries matching the current file name.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.Prepare(System.Data.SQLite.SQLiteConnection,System.String,System.Data.SQLite.SQLiteStatement,System.UInt32,System.String@)">
+ <summary>
+ Prepares a SQL statement for execution.
+ </summary>
+ <param name="cnn">The source connection preparing the command. Can be null for any caller except LINQ</param>
+ <param name="strSql">The SQL command text to prepare</param>
+ <param name="previous">The previous statement in a multi-statement command, or null if no previous statement exists</param>
+ <param name="timeoutMS">The timeout to wait before aborting the prepare</param>
+ <param name="strRemain">The remainder of the statement that was not processed. Each call to prepare parses the
+ SQL up to to either the end of the text or to the first semi-colon delimiter. The remaining text is returned
+ here for a subsequent call to Prepare() until all the text has been processed.</param>
+ <returns>Returns an initialized SQLiteStatement.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.Step(System.Data.SQLite.SQLiteStatement)">
+ <summary>
+ Steps through a prepared statement.
+ </summary>
+ <param name="stmt">The SQLiteStatement to step through</param>
+ <returns>True if a row was returned, False if not.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.IsReadOnly(System.Data.SQLite.SQLiteStatement)">
+ <summary>
+ Returns non-zero if the specified statement is read-only in nature.
+ </summary>
+ <param name="stmt">The statement to check.</param>
+ <returns>True if the outer query is read-only.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.Reset(System.Data.SQLite.SQLiteStatement)">
+ <summary>
+ Resets a prepared statement so it can be executed again. If the error returned is SQLITE_SCHEMA,
+ transparently attempt to rebuild the SQL statement and throw an error if that was not possible.
+ </summary>
+ <param name="stmt">The statement to reset</param>
+ <returns>Returns -1 if the schema changed while resetting, 0 if the reset was sucessful or 6 (SQLITE_LOCKED) if the reset failed due to a lock</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.Cancel">
+ <summary>
+ Attempts to interrupt the query currently executing on the associated
+ native database connection.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.BindFunction(System.Data.SQLite.SQLiteFunctionAttribute,System.Data.SQLite.SQLiteFunction,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ This function binds a user-defined function to the connection.
+ </summary>
+ <param name="functionAttribute">
+ The <see cref="T:System.Data.SQLite.SQLiteFunctionAttribute"/> object instance containing
+ the metadata for the function to be bound.
+ </param>
+ <param name="function">
+ The <see cref="T:System.Data.SQLite.SQLiteFunction"/> object instance that implements the
+ function to be bound.
+ </param>
+ <param name="flags">
+ The flags associated with the parent connection object.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.UnbindFunction(System.Data.SQLite.SQLiteFunctionAttribute,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ This function unbinds a user-defined function from the connection.
+ </summary>
+ <param name="functionAttribute">
+ The <see cref="T:System.Data.SQLite.SQLiteFunctionAttribute"/> object instance containing
+ the metadata for the function to be unbound.
+ </param>
+ <param name="flags">
+ The flags associated with the parent connection object.
+ </param>
+ <returns>Non-zero if the function was unbound.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.CreateModule(System.Data.SQLite.SQLiteModule,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Calls the native SQLite core library in order to create a disposable
+ module containing the implementation of a virtual table.
+ </summary>
+ <param name="module">
+ The module object to be used when creating the native disposable module.
+ </param>
+ <param name="flags">
+ The flags for the associated <see cref="T:System.Data.SQLite.SQLiteConnection"/> object instance.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.DisposeModule(System.Data.SQLite.SQLiteModule,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Calls the native SQLite core library in order to cleanup the resources
+ associated with a module containing the implementation of a virtual table.
+ </summary>
+ <param name="module">
+ The module object previously passed to the <see cref="M:System.Data.SQLite.SQLiteBase.CreateModule(System.Data.SQLite.SQLiteModule,System.Data.SQLite.SQLiteConnectionFlags)"/>
+ method.
+ </param>
+ <param name="flags">
+ The flags for the associated <see cref="T:System.Data.SQLite.SQLiteConnection"/> object instance.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.DeclareVirtualTable(System.Data.SQLite.SQLiteModule,System.String,System.String@)">
+ <summary>
+ Calls the native SQLite core library in order to declare a virtual table
+ in response to a call into the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/>
+ or <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> virtual table methods.
+ </summary>
+ <param name="module">
+ The virtual table module that is to be responsible for the virtual table
+ being declared.
+ </param>
+ <param name="strSql">
+ The string containing the SQL statement describing the virtual table to
+ be declared.
+ </param>
+ <param name="error">
+ Upon success, the contents of this parameter are undefined. Upon failure,
+ it should contain an appropriate error message.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.DeclareVirtualFunction(System.Data.SQLite.SQLiteModule,System.Int32,System.String,System.String@)">
+ <summary>
+ Calls the native SQLite core library in order to declare a virtual table
+ function in response to a call into the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/>
+ or <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> virtual table methods.
+ </summary>
+ <param name="module">
+ The virtual table module that is to be responsible for the virtual table
+ function being declared.
+ </param>
+ <param name="argumentCount">
+ The number of arguments to the function being declared.
+ </param>
+ <param name="name">
+ The name of the function being declared.
+ </param>
+ <param name="error">
+ Upon success, the contents of this parameter are undefined. Upon failure,
+ it should contain an appropriate error message.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.GetStatusParameter(System.Data.SQLite.SQLiteStatusOpsEnum,System.Boolean,System.Int32@,System.Int32@)">
+ <summary>
+ Returns the current and/or highwater values for the specified database status parameter.
+ </summary>
+ <param name="option">
+ The database status parameter to query.
+ </param>
+ <param name="reset">
+ Non-zero to reset the highwater value to the current value.
+ </param>
+ <param name="current">
+ If applicable, receives the current value.
+ </param>
+ <param name="highwater">
+ If applicable, receives the highwater value.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.SetLimitOption(System.Data.SQLite.SQLiteLimitOpsEnum,System.Int32)">
+ <summary>
+ Change a limit value for the database.
+ </summary>
+ <param name="option">
+ The database limit to change.
+ </param>
+ <param name="value">
+ The new value for the specified limit.
+ </param>
+ <returns>
+ The old value for the specified limit -OR- negative one if an error
+ occurs.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.SetConfigurationOption(System.Data.SQLite.SQLiteConfigDbOpsEnum,System.Object)">
+ <summary>
+ Change a configuration option value for the database.
+ </summary>
+ <param name="option">
+ The database configuration option to change.
+ </param>
+ <param name="value">
+ The new value for the specified configuration option.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.SetLoadExtension(System.Boolean)">
+ <summary>
+ Enables or disables extension loading by SQLite.
+ </summary>
+ <param name="bOnOff">
+ True to enable loading of extensions, false to disable.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.LoadExtension(System.String,System.String)">
+ <summary>
+ Loads a SQLite extension library from the named file.
+ </summary>
+ <param name="fileName">
+ The name of the dynamic link library file containing the extension.
+ </param>
+ <param name="procName">
+ The name of the exported function used to initialize the extension.
+ If null, the default "sqlite3_extension_init" will be used.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.SetExtendedResultCodes(System.Boolean)">
+ <summary>
+ Enables or disables extened result codes returned by SQLite
+ </summary>
+ <param name="bOnOff">true to enable extended result codes, false to disable.</param>
+ <returns></returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.ResultCode">
+ <summary>
+ Returns the numeric result code for the most recent failed SQLite API call
+ associated with the database connection.
+ </summary>
+ <returns>Result code</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.ExtendedResultCode">
+ <summary>
+ Returns the extended numeric result code for the most recent failed SQLite API call
+ associated with the database connection.
+ </summary>
+ <returns>Extended result code</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.LogMessage(System.Data.SQLite.SQLiteErrorCode,System.String)">
+ <summary>
+ Add a log message via the SQLite sqlite3_log interface.
+ </summary>
+ <param name="iErrCode">Error code to be logged with the message.</param>
+ <param name="zMessage">String to be logged. Unlike the SQLite sqlite3_log()
+ interface, this should be pre-formatted. Consider using the
+ String.Format() function.</param>
+ <returns></returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.IsInitialized">
+ <summary>
+ Checks if the SQLite core library has been initialized in the current process.
+ </summary>
+ <returns>
+ Non-zero if the SQLite core library has been initialized in the current process,
+ zero otherwise.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.InitializeBackup(System.Data.SQLite.SQLiteConnection,System.String,System.String)">
+ <summary>
+ Creates a new SQLite backup object based on the provided destination
+ database connection. The source database connection is the one
+ associated with this object. The source and destination database
+ connections cannot be the same.
+ </summary>
+ <param name="destCnn">The destination database connection.</param>
+ <param name="destName">The destination database name.</param>
+ <param name="sourceName">The source database name.</param>
+ <returns>The newly created backup object.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.StepBackup(System.Data.SQLite.SQLiteBackup,System.Int32,System.Boolean@)">
+ <summary>
+ Copies up to N pages from the source database to the destination
+ database associated with the specified backup object.
+ </summary>
+ <param name="backup">The backup object to use.</param>
+ <param name="nPage">
+ The number of pages to copy or negative to copy all remaining pages.
+ </param>
+ <param name="retry">
+ Set to true if the operation needs to be retried due to database
+ locking issues.
+ </param>
+ <returns>
+ True if there are more pages to be copied, false otherwise.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.RemainingBackup(System.Data.SQLite.SQLiteBackup)">
+ <summary>
+ Returns the number of pages remaining to be copied from the source
+ database to the destination database associated with the specified
+ backup object.
+ </summary>
+ <param name="backup">The backup object to check.</param>
+ <returns>The number of pages remaining to be copied.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.PageCountBackup(System.Data.SQLite.SQLiteBackup)">
+ <summary>
+ Returns the total number of pages in the source database associated
+ with the specified backup object.
+ </summary>
+ <param name="backup">The backup object to check.</param>
+ <returns>The total number of pages in the source database.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.FinishBackup(System.Data.SQLite.SQLiteBackup)">
+ <summary>
+ Destroys the backup object, rolling back any backup that may be in
+ progess.
+ </summary>
+ <param name="backup">The backup object to destroy.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBase.FallbackGetErrorString(System.Data.SQLite.SQLiteErrorCode)">
+ <summary>
+ Returns the error message for the specified SQLite return code using
+ the internal static lookup table.
+ </summary>
+ <param name="rc">The SQLite return code.</param>
+ <returns>The error message or null if it cannot be found.</returns>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteBase.Version">
+ <summary>
+ Returns a string representing the active version of SQLite
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteBase.VersionNumber">
+ <summary>
+ Returns an integer representing the active version of SQLite
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteBase.LastInsertRowId">
+ <summary>
+ Returns the rowid of the most recent successful INSERT into the database from this connection.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteBase.Changes">
+ <summary>
+ Returns the number of changes the last executing insert/update caused.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteBase.MemoryUsed">
+ <summary>
+ Returns the amount of memory (in bytes) currently in use by the SQLite core library. This is not really a per-connection
+ value, it is global to the process.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteBase.MemoryHighwater">
+ <summary>
+ Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset.
+ This is not really a per-connection value, it is global to the process.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteBase.OwnHandle">
+ <summary>
+ Returns non-zero if the underlying native connection handle is owned by this instance.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteBase.Functions">
+ <summary>
+ Returns the logical list of functions associated with this connection.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteBase.AutoCommit">
+ <summary>
+ Returns non-zero if the given database connection is in autocommit mode.
+ Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN
+ statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLite3.dbName">
+ <summary>
+ This field is used to refer to memory allocated for the
+ SQLITE_DBCONFIG_MAINDBNAME value used with the native
+ "sqlite3_db_config" API. If allocated, the associated
+ memeory will be freed when the underlying connection is
+ closed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLite3._sql">
+ <summary>
+ The opaque pointer returned to us by the sqlite provider
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLite3._functions">
+ <summary>
+ The user-defined functions registered on this connection
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLite3._shimExtensionFileName">
+ <summary>
+ This is the name of the native library file that contains the
+ "vtshim" extension [wrapper].
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLite3._shimIsLoadNeeded">
+ <summary>
+ This is the flag indicate whether the native library file that
+ contains the "vtshim" extension must be dynamically loaded by
+ this class prior to use.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLite3._shimExtensionProcName">
+ <summary>
+ This is the name of the native entry point for the "vtshim"
+ extension [wrapper].
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLite3._modules">
+ <summary>
+ The modules created using this connection.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.#ctor(System.Data.SQLite.SQLiteDateFormats,System.DateTimeKind,System.String,System.IntPtr,System.String,System.Boolean)">
+ <summary>
+ Constructs the object used to interact with the SQLite core library
+ using the UTF-8 text encoding.
+ </summary>
+ <param name="fmt">
+ The DateTime format to be used when converting string values to a
+ DateTime and binding DateTime parameters.
+ </param>
+ <param name="kind">
+ The <see cref="T:System.DateTimeKind"/> to be used when creating DateTime
+ values.
+ </param>
+ <param name="fmtString">
+ The format string to be used when parsing and formatting DateTime
+ values.
+ </param>
+ <param name="db">
+ The native handle to be associated with the database connection.
+ </param>
+ <param name="fileName">
+ The fully qualified file name associated with <paramref name="db "/>.
+ </param>
+ <param name="ownHandle">
+ Non-zero if the newly created object instance will need to dispose
+ of <paramref name="db"/> when it is no longer needed.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.DisposeModules">
+ <summary>
+ This method attempts to dispose of all the <see cref="T:System.Data.SQLite.SQLiteModule"/> derived
+ object instances currently associated with the native database connection.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.GetCancelCount">
+ <summary>
+ Returns the number of times the <see cref="M:System.Data.SQLite.SQLite3.Cancel"/> method has been
+ called.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.ShouldThrowForCancel">
+ <summary>
+ This method determines whether or not a <see cref="T:System.Data.SQLite.SQLiteException"/>
+ with a return code of <see cref="F:System.Data.SQLite.SQLiteErrorCode.Interrupt"/> should
+ be thrown after making a call into the SQLite core library.
+ </summary>
+ <returns>
+ Non-zero if a <see cref="T:System.Data.SQLite.SQLiteException"/> to be thrown. This method
+ will only return non-zero if the <see cref="M:System.Data.SQLite.SQLite3.Cancel"/> method was called
+ one or more times during a call into the SQLite core library (e.g. when
+ the sqlite3_prepare*() or sqlite3_step() APIs are used).
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.ResetCancelCount">
+ <summary>
+ Resets the value of the <see cref="F:System.Data.SQLite.SQLite3._cancelCount"/> field.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.Cancel">
+ <summary>
+ Attempts to interrupt the query currently executing on the associated
+ native database connection.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.BindFunction(System.Data.SQLite.SQLiteFunctionAttribute,System.Data.SQLite.SQLiteFunction,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ This function binds a user-defined function to the connection.
+ </summary>
+ <param name="functionAttribute">
+ The <see cref="T:System.Data.SQLite.SQLiteFunctionAttribute"/> object instance containing
+ the metadata for the function to be bound.
+ </param>
+ <param name="function">
+ The <see cref="T:System.Data.SQLite.SQLiteFunction"/> object instance that implements the
+ function to be bound.
+ </param>
+ <param name="flags">
+ The flags associated with the parent connection object.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.UnbindFunction(System.Data.SQLite.SQLiteFunctionAttribute,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ This function binds a user-defined function to the connection.
+ </summary>
+ <param name="functionAttribute">
+ The <see cref="T:System.Data.SQLite.SQLiteFunctionAttribute"/> object instance containing
+ the metadata for the function to be unbound.
+ </param>
+ <param name="flags">
+ The flags associated with the parent connection object.
+ </param>
+ <returns>Non-zero if the function was unbound and removed.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.ReleaseMemory">
+ <summary>
+ Attempts to free as much heap memory as possible for the database connection.
+ </summary>
+ <returns>A standard SQLite return code (i.e. zero for success and non-zero for failure).</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.StaticReleaseMemory(System.Int32,System.Boolean,System.Boolean,System.Int32@,System.Boolean@,System.UInt32@)">
+ <summary>
+ Attempts to free N bytes of heap memory by deallocating non-essential memory
+ allocations held by the database library. Memory used to cache database pages
+ to improve performance is an example of non-essential memory. This is a no-op
+ returning zero if the SQLite core library was not compiled with the compile-time
+ option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or
+ compact the Win32 native heap, if applicable.
+ </summary>
+ <param name="nBytes">
+ The requested number of bytes to free.
+ </param>
+ <param name="reset">
+ Non-zero to attempt a heap reset.
+ </param>
+ <param name="compact">
+ Non-zero to attempt heap compaction.
+ </param>
+ <param name="nFree">
+ The number of bytes actually freed. This value may be zero.
+ </param>
+ <param name="resetOk">
+ This value will be non-zero if the heap reset was successful.
+ </param>
+ <param name="nLargest">
+ The size of the largest committed free block in the heap, in bytes.
+ This value will be zero unless heap compaction is enabled.
+ </param>
+ <returns>
+ A standard SQLite return code (i.e. zero for success and non-zero
+ for failure).
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.Shutdown">
+ <summary>
+ Shutdown the SQLite engine so that it can be restarted with different
+ configuration options. We depend on auto initialization to recover.
+ </summary>
+ <returns>Returns a standard SQLite result code.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.StaticShutdown(System.Boolean)">
+ <summary>
+ Shutdown the SQLite engine so that it can be restarted with different
+ configuration options. We depend on auto initialization to recover.
+ </summary>
+ <param name="directories">
+ Non-zero to reset the database and temporary directories to their
+ default values, which should be null for both. This parameter has no
+ effect on non-Windows operating systems.
+ </param>
+ <returns>Returns a standard SQLite result code.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.IsOpen">
+ <summary>
+ Determines if the associated native connection handle is open.
+ </summary>
+ <returns>
+ Non-zero if the associated native connection handle is open.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.GetFileName(System.String)">
+ <summary>
+ Returns the fully qualified path and file name for the currently open
+ database, if any.
+ </summary>
+ <param name="dbName">
+ The name of the attached database to query.
+ </param>
+ <returns>
+ The fully qualified path and file name for the currently open database,
+ if any.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.IsAllowedToUsePool(System.Data.SQLite.SQLiteOpenFlagsEnum)">
+ <summary>
+ This method attempts to determine if a database connection opened
+ with the specified <see cref="T:System.Data.SQLite.SQLiteOpenFlagsEnum"/> should be
+ allowed into the connection pool.
+ </summary>
+ <param name="openFlags">
+ The <see cref="T:System.Data.SQLite.SQLiteOpenFlagsEnum"/> that were specified when the
+ connection was opened.
+ </param>
+ <returns>
+ Non-zero if the connection should (eventually) be allowed into the
+ connection pool; otherwise, zero.
+ </returns>
+ </member>
+ <member name="F:System.Data.SQLite.SQLite3.have_errstr">
+ <summary>
+ Has the sqlite3_errstr() core library API been checked for yet?
+ If so, is it present?
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.GetErrorString(System.Data.SQLite.SQLiteErrorCode)">
+ <summary>
+ Returns the error message for the specified SQLite return code using
+ the sqlite3_errstr() function, falling back to the internal lookup
+ table if necessary.
+
+ WARNING: Do not remove this method, it is used via reflection.
+ </summary>
+ <param name="rc">The SQLite return code.</param>
+ <returns>The error message or null if it cannot be found.</returns>
+ </member>
+ <member name="F:System.Data.SQLite.SQLite3.have_stmt_readonly">
+ <summary>
+ Has the sqlite3_stmt_readonly() core library API been checked for yet?
+ If so, is it present?
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.IsReadOnly(System.Data.SQLite.SQLiteStatement)">
+ <summary>
+ Returns non-zero if the specified statement is read-only in nature.
+ </summary>
+ <param name="stmt">The statement to check.</param>
+ <returns>True if the outer query is read-only.</returns>
+ </member>
+ <member name="F:System.Data.SQLite.SQLite3.forceLogPrepare">
+ <summary>
+ This field is used to keep track of whether or not the
+ "SQLite_ForceLogPrepare" environment variable has been queried. If so,
+ it will only be non-zero if the environment variable was present.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLite3.forceLogLifecycle">
+ <summary>
+ This field is used to keep track of whether or not the
+ "SQLite_ForceLogLifecycle" environment variable has been queried. If
+ so, it will only be non-zero if the environment variable was present.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.ForceLogPrepare">
+ <summary>
+ Determines if all calls to prepare a SQL query will be logged,
+ regardless of the flags for the associated connection.
+ </summary>
+ <returns>
+ Non-zero to log all calls to prepare a SQL query.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.ForceLogLifecycle">
+ <summary>
+ Determines if calls into key members pertaining to the lifecycle of
+ connections and their associated classes will be logged, regardless
+ of the flags for the associated connection.
+ </summary>
+ <returns>
+ Non-zero to log calls into key members pertaining to the lifecycle of
+ connections and their associated classes (e.g. LINQ, EF6, etc).
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.GetShimExtensionFileName(System.Boolean@)">
+ <summary>
+ Determines the file name of the native library containing the native
+ "vtshim" extension -AND- whether it should be dynamically loaded by
+ this class.
+ </summary>
+ <param name="isLoadNeeded">
+ This output parameter will be set to non-zero if the returned native
+ library file name should be dynamically loaded prior to attempting
+ the creation of native disposable extension modules.
+ </param>
+ <returns>
+ The file name of the native library containing the native "vtshim"
+ extension -OR- null if it cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.CreateModule(System.Data.SQLite.SQLiteModule,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Calls the native SQLite core library in order to create a disposable
+ module containing the implementation of a virtual table.
+ </summary>
+ <param name="module">
+ The module object to be used when creating the native disposable module.
+ </param>
+ <param name="flags">
+ The flags for the associated <see cref="T:System.Data.SQLite.SQLiteConnection"/> object instance.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.DisposeModule(System.Data.SQLite.SQLiteModule,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Calls the native SQLite core library in order to cleanup the resources
+ associated with a module containing the implementation of a virtual table.
+ </summary>
+ <param name="module">
+ The module object previously passed to the <see cref="M:System.Data.SQLite.SQLite3.CreateModule(System.Data.SQLite.SQLiteModule,System.Data.SQLite.SQLiteConnectionFlags)"/>
+ method.
+ </param>
+ <param name="flags">
+ The flags for the associated <see cref="T:System.Data.SQLite.SQLiteConnection"/> object instance.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.DeclareVirtualTable(System.Data.SQLite.SQLiteModule,System.String,System.String@)">
+ <summary>
+ Calls the native SQLite core library in order to declare a virtual table
+ in response to a call into the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/>
+ or <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> virtual table methods.
+ </summary>
+ <param name="module">
+ The virtual table module that is to be responsible for the virtual table
+ being declared.
+ </param>
+ <param name="strSql">
+ The string containing the SQL statement describing the virtual table to
+ be declared.
+ </param>
+ <param name="error">
+ Upon success, the contents of this parameter are undefined. Upon failure,
+ it should contain an appropriate error message.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.DeclareVirtualFunction(System.Data.SQLite.SQLiteModule,System.Int32,System.String,System.String@)">
+ <summary>
+ Calls the native SQLite core library in order to declare a virtual table
+ function in response to a call into the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/>
+ or <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> virtual table methods.
+ </summary>
+ <param name="module">
+ The virtual table module that is to be responsible for the virtual table
+ function being declared.
+ </param>
+ <param name="argumentCount">
+ The number of arguments to the function being declared.
+ </param>
+ <param name="name">
+ The name of the function being declared.
+ </param>
+ <param name="error">
+ Upon success, the contents of this parameter are undefined. Upon failure,
+ it should contain an appropriate error message.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.GetStatusDbOpsNames">
+ <summary>
+ Builds an error message string fragment containing the
+ defined values of the <see cref="T:System.Data.SQLite.SQLiteStatusOpsEnum"/>
+ enumeration.
+ </summary>
+ <returns>
+ The built string fragment.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.GetLimitOpsNames">
+ <summary>
+ Builds an error message string fragment containing the
+ defined values of the <see cref="T:System.Data.SQLite.SQLiteLimitOpsEnum"/>
+ enumeration.
+ </summary>
+ <returns>
+ The built string fragment.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.GetConfigDbOpsNames">
+ <summary>
+ Builds an error message string fragment containing the
+ defined values of the <see cref="T:System.Data.SQLite.SQLiteConfigDbOpsEnum"/>
+ enumeration.
+ </summary>
+ <returns>
+ The built string fragment.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.GetStatusParameter(System.Data.SQLite.SQLiteStatusOpsEnum,System.Boolean,System.Int32@,System.Int32@)">
+ <summary>
+ Returns the current and/or highwater values for the specified
+ database status parameter.
+ </summary>
+ <param name="option">
+ The database status parameter to query.
+ </param>
+ <param name="reset">
+ Non-zero to reset the highwater value to the current value.
+ </param>
+ <param name="current">
+ If applicable, receives the current value.
+ </param>
+ <param name="highwater">
+ If applicable, receives the highwater value.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.SetLimitOption(System.Data.SQLite.SQLiteLimitOpsEnum,System.Int32)">
+ <summary>
+ Change a limit value for the database.
+ </summary>
+ <param name="option">
+ The database limit to change.
+ </param>
+ <param name="value">
+ The new value for the specified limit.
+ </param>
+ <returns>
+ The old value for the specified limit -OR- negative one if an error
+ occurs.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.SetConfigurationOption(System.Data.SQLite.SQLiteConfigDbOpsEnum,System.Object)">
+ <summary>
+ Change a configuration option value for the database.
+ </summary>
+ <param name="option">
+ The database configuration option to change.
+ </param>
+ <param name="value">
+ The new value for the specified configuration option.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.SetLoadExtension(System.Boolean)">
+ <summary>
+ Enables or disables extension loading by SQLite.
+ </summary>
+ <param name="bOnOff">
+ True to enable loading of extensions, false to disable.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.LoadExtension(System.String,System.String)">
+ <summary>
+ Loads a SQLite extension library from the named file.
+ </summary>
+ <param name="fileName">
+ The name of the dynamic link library file containing the extension.
+ </param>
+ <param name="procName">
+ The name of the exported function used to initialize the extension.
+ If null, the default "sqlite3_extension_init" will be used.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.SetExtendedResultCodes(System.Boolean)">
+ Enables or disables extended result codes returned by SQLite
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.ResultCode">
+ Gets the last SQLite error code
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.ExtendedResultCode">
+ Gets the last SQLite extended error code
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.LogMessage(System.Data.SQLite.SQLiteErrorCode,System.String)">
+ Add a log message via the SQLite sqlite3_log interface.
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.StaticLogMessage(System.Data.SQLite.SQLiteErrorCode,System.String)">
+ Add a log message via the SQLite sqlite3_log interface.
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.SetLogCallback(System.Data.SQLite.SQLiteLogCallback)">
+ <summary>
+ Allows the setting of a logging callback invoked by SQLite when a
+ log event occurs. Only one callback may be set. If NULL is passed,
+ the logging callback is unregistered.
+ </summary>
+ <param name="func">The callback function to invoke.</param>
+ <returns>Returns a result code</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.AppendError(System.Text.StringBuilder,System.String)">
+ <summary>
+ Appends an error message and an appropriate line-ending to a <see cref="T:System.Text.StringBuilder"/>
+ instance. This is useful because the .NET Compact Framework has a slightly different set
+ of supported methods for the <see cref="T:System.Text.StringBuilder"/> class.
+ </summary>
+ <param name="builder">
+ The <see cref="T:System.Text.StringBuilder"/> instance to append to.
+ </param>
+ <param name="message">
+ The message to append. It will be followed by an appropriate line-ending.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.UnhookNativeCallbacks(System.Boolean,System.Boolean)">
+ <summary>
+ This method attempts to cause the SQLite native library to invalidate
+ its function pointers that refer to this instance. This is necessary
+ to prevent calls from native code into delegates that may have been
+ garbage collected. Normally, these types of issues can only arise for
+ connections that are added to the pool; howver, it is good practice to
+ unconditionally invalidate function pointers that may refer to objects
+ being disposed.
+ </summary>
+ <param name="includeGlobal">
+ Non-zero to also invalidate global function pointers (i.e. those that
+ are not directly associated with this connection on the native side).
+ </param>
+ <param name="canThrow">
+ Non-zero if this method is being executed within a context where it can
+ throw an exception in the event of failure; otherwise, zero.
+ </param>
+ <returns>
+ Non-zero if this method was successful; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.FreeDbName(System.Boolean)">
+ <summary>
+ This method attempts to free the cached database name used with the
+ <see cref="M:System.Data.SQLite.SQLite3.SetConfigurationOption(System.Data.SQLite.SQLiteConfigDbOpsEnum,System.Object)"/> method.
+ </summary>
+ <param name="canThrow">
+ Non-zero if this method is being executed within a context where it can
+ throw an exception in the event of failure; otherwise, zero.
+ </param>
+ <returns>
+ Non-zero if this method was successful; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.InitializeBackup(System.Data.SQLite.SQLiteConnection,System.String,System.String)">
+ <summary>
+ Creates a new SQLite backup object based on the provided destination
+ database connection. The source database connection is the one
+ associated with this object. The source and destination database
+ connections cannot be the same.
+ </summary>
+ <param name="destCnn">The destination database connection.</param>
+ <param name="destName">The destination database name.</param>
+ <param name="sourceName">The source database name.</param>
+ <returns>The newly created backup object.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.StepBackup(System.Data.SQLite.SQLiteBackup,System.Int32,System.Boolean@)">
+ <summary>
+ Copies up to N pages from the source database to the destination
+ database associated with the specified backup object.
+ </summary>
+ <param name="backup">The backup object to use.</param>
+ <param name="nPage">
+ The number of pages to copy, negative to copy all remaining pages.
+ </param>
+ <param name="retry">
+ Set to true if the operation needs to be retried due to database
+ locking issues; otherwise, set to false.
+ </param>
+ <returns>
+ True if there are more pages to be copied, false otherwise.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.RemainingBackup(System.Data.SQLite.SQLiteBackup)">
+ <summary>
+ Returns the number of pages remaining to be copied from the source
+ database to the destination database associated with the specified
+ backup object.
+ </summary>
+ <param name="backup">The backup object to check.</param>
+ <returns>The number of pages remaining to be copied.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.PageCountBackup(System.Data.SQLite.SQLiteBackup)">
+ <summary>
+ Returns the total number of pages in the source database associated
+ with the specified backup object.
+ </summary>
+ <param name="backup">The backup object to check.</param>
+ <returns>The total number of pages in the source database.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.FinishBackup(System.Data.SQLite.SQLiteBackup)">
+ <summary>
+ Destroys the backup object, rolling back any backup that may be in
+ progess.
+ </summary>
+ <param name="backup">The backup object to destroy.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.IsInitialized">
+ <summary>
+ Determines if the SQLite core library has been initialized for the
+ current process.
+ </summary>
+ <returns>
+ A boolean indicating whether or not the SQLite core library has been
+ initialized for the current process.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.StaticIsInitialized">
+ <summary>
+ Determines if the SQLite core library has been initialized for the
+ current process.
+ </summary>
+ <returns>
+ A boolean indicating whether or not the SQLite core library has been
+ initialized for the current process.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3.GetValue(System.Data.SQLite.SQLiteStatement,System.Data.SQLite.SQLiteConnectionFlags,System.Int32,System.Data.SQLite.SQLiteType)">
+ <summary>
+ Helper function to retrieve a column of data from an active statement.
+ </summary>
+ <param name="stmt">The statement being step()'d through</param>
+ <param name="flags">The flags associated with the connection.</param>
+ <param name="index">The column index to retrieve</param>
+ <param name="typ">The type of data contained in the column. If Uninitialized, this function will retrieve the datatype information.</param>
+ <returns>Returns the data in the column</returns>
+ </member>
+ <member name="P:System.Data.SQLite.SQLite3.OwnHandle">
+ <summary>
+ Returns non-zero if the underlying native connection handle is owned
+ by this instance.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLite3.Functions">
+ <summary>
+ Returns the logical list of functions associated with this connection.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLite3_UTF16">
+ <summary>
+ Alternate SQLite3 object, overriding many text behaviors to support UTF-16 (Unicode)
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3_UTF16.#ctor(System.Data.SQLite.SQLiteDateFormats,System.DateTimeKind,System.String,System.IntPtr,System.String,System.Boolean)">
+ <summary>
+ Constructs the object used to interact with the SQLite core library
+ using the UTF-8 text encoding.
+ </summary>
+ <param name="fmt">
+ The DateTime format to be used when converting string values to a
+ DateTime and binding DateTime parameters.
+ </param>
+ <param name="kind">
+ The <see cref="T:System.DateTimeKind"/> to be used when creating DateTime
+ values.
+ </param>
+ <param name="fmtString">
+ The format string to be used when parsing and formatting DateTime
+ values.
+ </param>
+ <param name="db">
+ The native handle to be associated with the database connection.
+ </param>
+ <param name="fileName">
+ The fully qualified file name associated with <paramref name="db"/>.
+ </param>
+ <param name="ownHandle">
+ Non-zero if the newly created object instance will need to dispose
+ of <paramref name="db"/> when it is no longer needed.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLite3_UTF16.ToString(System.IntPtr,System.Int32)">
+ <summary>
+ Overrides SQLiteConvert.ToString() to marshal UTF-16 strings instead of UTF-8
+ </summary>
+ <param name="b">A pointer to a UTF-16 string</param>
+ <param name="nbytelen">The length (IN BYTES) of the string</param>
+ <returns>A .NET string</returns>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteBackup">
+ <summary>
+ Represents a single SQL backup in SQLite.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteBackup._sql">
+ <summary>
+ The underlying SQLite object this backup is bound to.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteBackup._sqlite_backup">
+ <summary>
+ The actual backup handle.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteBackup._destDb">
+ <summary>
+ The destination database for the backup.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteBackup._zDestName">
+ <summary>
+ The destination database name for the backup.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteBackup._sourceDb">
+ <summary>
+ The source database for the backup.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteBackup._zSourceName">
+ <summary>
+ The source database name for the backup.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteBackup._stepResult">
+ <summary>
+ The last result from the StepBackup method of the SQLite3 class.
+ This is used to determine if the call to the FinishBackup method of
+ the SQLite3 class should throw an exception when it receives a non-Ok
+ return code from the core SQLite library.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBackup.#ctor(System.Data.SQLite.SQLiteBase,System.Data.SQLite.SQLiteBackupHandle,System.IntPtr,System.Byte[],System.IntPtr,System.Byte[])">
+ <summary>
+ Initializes the backup.
+ </summary>
+ <param name="sqlbase">The base SQLite object.</param>
+ <param name="backup">The backup handle.</param>
+ <param name="destDb">The destination database for the backup.</param>
+ <param name="zDestName">The destination database name for the backup.</param>
+ <param name="sourceDb">The source database for the backup.</param>
+ <param name="zSourceName">The source database name for the backup.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBackup.Dispose">
+ <summary>
+ Disposes and finalizes the backup.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.ISQLiteSchemaExtensions">
+ <summary>
+
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteSchemaExtensions.BuildTempSchema(System.Data.SQLite.SQLiteConnection)">
+ <summary>
+ Creates temporary tables on the connection so schema information can be queried.
+ </summary>
+ <param name="connection">
+ The connection upon which to build the schema tables.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteConnectionFlags">
+ <summary>
+ The extra behavioral flags that can be applied to a connection.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.None">
+ <summary>
+ No extra flags.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.LogPrepare">
+ <summary>
+ Enable logging of all SQL statements to be prepared.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.LogPreBind">
+ <summary>
+ Enable logging of all bound parameter types and raw values.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.LogBind">
+ <summary>
+ Enable logging of all bound parameter strongly typed values.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.LogCallbackException">
+ <summary>
+ Enable logging of all exceptions caught from user-provided
+ managed code called from native code via delegates.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.LogBackup">
+ <summary>
+ Enable logging of backup API errors.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.NoExtensionFunctions">
+ <summary>
+ Skip adding the extension functions provided by the native
+ interop assembly.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.BindUInt32AsInt64">
+ <summary>
+ When binding parameter values with the <see cref="T:System.UInt32"/>
+ type, use the interop method that accepts an <see cref="T:System.Int64"/>
+ value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.BindAllAsText">
+ <summary>
+ When binding parameter values, always bind them as though they were
+ plain text (i.e. no numeric, date/time, or other conversions should
+ be attempted).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.GetAllAsText">
+ <summary>
+ When returning column values, always return them as though they were
+ plain text (i.e. no numeric, date/time, or other conversions should
+ be attempted).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.NoLoadExtension">
+ <summary>
+ Prevent this <see cref="T:System.Data.SQLite.SQLiteConnection"/> object instance from
+ loading extensions.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.NoCreateModule">
+ <summary>
+ Prevent this <see cref="T:System.Data.SQLite.SQLiteConnection"/> object instance from
+ creating virtual table modules.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.NoBindFunctions">
+ <summary>
+ Skip binding any functions provided by other managed assemblies when
+ opening the connection.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.NoLogModule">
+ <summary>
+ Skip setting the logging related properties of the
+ <see cref="T:System.Data.SQLite.SQLiteModule"/> object instance that was passed to
+ the <see cref="M:System.Data.SQLite.SQLiteConnection.CreateModule(System.Data.SQLite.SQLiteModule)"/> method.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.LogModuleError">
+ <summary>
+ Enable logging of all virtual table module errors seen by the
+ <see cref="M:System.Data.SQLite.SQLiteModule.SetTableError(System.IntPtr,System.String)"/> method.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.LogModuleException">
+ <summary>
+ Enable logging of certain virtual table module exceptions that cannot
+ be easily discovered via other means.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.TraceWarning">
+ <summary>
+ Enable tracing of potentially important [non-fatal] error conditions
+ that cannot be easily reported through other means.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.ConvertInvariantText">
+ <summary>
+ When binding parameter values, always use the invariant culture when
+ converting their values from strings.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.BindInvariantText">
+ <summary>
+ When binding parameter values, always use the invariant culture when
+ converting their values to strings.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.NoConnectionPool">
+ <summary>
+ Disable using the connection pool by default. If the "Pooling"
+ connection string property is specified, its value will override
+ this flag. The precise outcome of combining this flag with the
+ <see cref="F:System.Data.SQLite.SQLiteConnectionFlags.UseConnectionPool"/> flag is unspecified; however,
+ one of the flags will be in effect.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.UseConnectionPool">
+ <summary>
+ Enable using the connection pool by default. If the "Pooling"
+ connection string property is specified, its value will override
+ this flag. The precise outcome of combining this flag with the
+ <see cref="F:System.Data.SQLite.SQLiteConnectionFlags.NoConnectionPool"/> flag is unspecified; however,
+ one of the flags will be in effect.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.UseConnectionTypes">
+ <summary>
+ Enable using per-connection mappings between type names and
+ <see cref="T:System.Data.DbType"/> values. Also see the
+ <see cref="M:System.Data.SQLite.SQLiteConnection.ClearTypeMappings"/>,
+ <see cref="M:System.Data.SQLite.SQLiteConnection.GetTypeMappings"/>, and
+ <see cref="M:System.Data.SQLite.SQLiteConnection.AddTypeMapping(System.String,System.Data.DbType,System.Boolean)"/> methods. These
+ per-connection mappings, when present, override the corresponding
+ global mappings.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.NoGlobalTypes">
+ <summary>
+ Disable using global mappings between type names and
+ <see cref="T:System.Data.DbType"/> values. This may be useful in some very narrow
+ cases; however, if there are no per-connection type mappings, the
+ fallback defaults will be used for both type names and their
+ associated <see cref="T:System.Data.DbType"/> values. Therefore, use of this flag
+ is not recommended.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.StickyHasRows">
+ <summary>
+ When the <see cref="P:System.Data.SQLite.SQLiteDataReader.HasRows"/> property is used, it
+ should return non-zero if there were ever any rows in the associated
+ result sets.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.StrictEnlistment">
+ <summary>
+ Enable "strict" transaction enlistment semantics. Setting this flag
+ will cause an exception to be thrown if an attempt is made to enlist
+ in a transaction with an unavailable or unsupported isolation level.
+ In the future, more extensive checks may be enabled by this flag as
+ well.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.MapIsolationLevels">
+ <summary>
+ Enable mapping of unsupported transaction isolation levels to the
+ closest supported transaction isolation level.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.DetectTextAffinity">
+ <summary>
+ When returning column values, attempt to detect the affinity of
+ textual values by checking if they fully conform to those of the
+ <see cref="F:System.Data.SQLite.TypeAffinity.Null"/>,
+ <see cref="F:System.Data.SQLite.TypeAffinity.Int64"/>,
+ <see cref="F:System.Data.SQLite.TypeAffinity.Double"/>,
+ or <see cref="F:System.Data.SQLite.TypeAffinity.DateTime"/> types.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.DetectStringType">
+ <summary>
+ When returning column values, attempt to detect the type of
+ string values by checking if they fully conform to those of
+ the <see cref="F:System.Data.SQLite.TypeAffinity.Null"/>,
+ <see cref="F:System.Data.SQLite.TypeAffinity.Int64"/>,
+ <see cref="F:System.Data.SQLite.TypeAffinity.Double"/>,
+ or <see cref="F:System.Data.SQLite.TypeAffinity.DateTime"/> types.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.NoConvertSettings">
+ <summary>
+ Skip querying runtime configuration settings for use by the
+ <see cref="T:System.Data.SQLite.SQLiteConvert"/> class, including the default
+ <see cref="T:System.Data.DbType"/> value and default database type name.
+ <b>NOTE: If the <see cref="P:System.Data.SQLite.SQLiteConnection.DefaultDbType"/>
+ and/or <see cref="P:System.Data.SQLite.SQLiteConnection.DefaultTypeName"/>
+ properties are not set explicitly nor set via their connection
+ string properties and repeated calls to determine these runtime
+ configuration settings are seen to be a problem, this flag
+ should be set.</b>
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.BindDateTimeWithKind">
+ <summary>
+ When binding parameter values with the <see cref="T:System.DateTime"/>
+ type, take their <see cref="T:System.DateTimeKind"/> into account as
+ well as that of the associated <see cref="T:System.Data.SQLite.SQLiteConnection"/>.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.RollbackOnException">
+ <summary>
+ If an exception is caught when raising the
+ <see cref="E:System.Data.SQLite.SQLiteConnection.Commit"/> event, the transaction
+ should be rolled back. If this is not specified, the transaction
+ will continue the commit process instead.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.DenyOnException">
+ <summary>
+ If an exception is caught when raising the
+ <see cref="E:System.Data.SQLite.SQLiteConnection.Authorize"/> event, the action should
+ should be denied. If this is not specified, the action will be
+ allowed instead.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.InterruptOnException">
+ <summary>
+ If an exception is caught when raising the
+ <see cref="E:System.Data.SQLite.SQLiteConnection.Progress"/> event, the operation
+ should be interrupted. If this is not specified, the operation
+ will simply continue.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.UnbindFunctionsOnClose">
+ <summary>
+ Attempt to unbind all functions provided by other managed assemblies
+ when closing the connection.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.NoVerifyTextAffinity">
+ <summary>
+ When returning column values as a <see cref="T:System.String"/>, skip
+ verifying their affinity.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.UseConnectionBindValueCallbacks">
+ <summary>
+ Enable using per-connection mappings between type names and
+ <see cref="T:System.Data.SQLite.SQLiteBindValueCallback"/> values. Also see the
+ <see cref="M:System.Data.SQLite.SQLiteConnection.ClearTypeCallbacks"/>,
+ <see cref="M:System.Data.SQLite.SQLiteConnection.TryGetTypeCallbacks(System.String,System.Data.SQLite.SQLiteTypeCallbacks@)"/>, and
+ <see cref="M:System.Data.SQLite.SQLiteConnection.SetTypeCallbacks(System.String,System.Data.SQLite.SQLiteTypeCallbacks)"/> methods.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.UseConnectionReadValueCallbacks">
+ <summary>
+ Enable using per-connection mappings between type names and
+ <see cref="T:System.Data.SQLite.SQLiteReadValueCallback"/> values. Also see the
+ <see cref="M:System.Data.SQLite.SQLiteConnection.ClearTypeCallbacks"/>,
+ <see cref="M:System.Data.SQLite.SQLiteConnection.TryGetTypeCallbacks(System.String,System.Data.SQLite.SQLiteTypeCallbacks@)"/>, and
+ <see cref="M:System.Data.SQLite.SQLiteConnection.SetTypeCallbacks(System.String,System.Data.SQLite.SQLiteTypeCallbacks)"/> methods.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.UseParameterNameForTypeName">
+ <summary>
+ If the database type name has not been explicitly set for the
+ parameter specified, fallback to using the parameter name.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.UseParameterDbTypeForTypeName">
+ <summary>
+ If the database type name has not been explicitly set for the
+ parameter specified, fallback to using the database type name
+ associated with the <see cref="T:System.Data.DbType"/> value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.NoVerifyTypeAffinity">
+ <summary>
+ When returning column values, skip verifying their affinity.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.AllowNestedTransactions">
+ <summary>
+ Allow transactions to be nested. The outermost transaction still
+ controls whether or not any changes are ultimately committed or
+ rolled back. All non-outermost transactions are implemented using
+ the SAVEPOINT construct.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.BindDecimalAsText">
+ <summary>
+ When binding parameter values, always bind <see cref="T:System.Decimal"/>
+ values as though they were plain text (i.e. not <see cref="T:System.Decimal"/>,
+ which is the legacy behavior).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.GetDecimalAsText">
+ <summary>
+ When returning column values, always return <see cref="T:System.Decimal"/>
+ values as though they were plain text (i.e. not <see cref="T:System.Double"/>,
+ which is the legacy behavior).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.BindInvariantDecimal">
+ <summary>
+ When binding <see cref="T:System.Decimal"/> parameter values, always use
+ the invariant culture when converting their values to strings.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.GetInvariantDecimal">
+ <summary>
+ When returning <see cref="T:System.Decimal"/> column values, always use
+ the invariant culture when converting their values from strings.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.WaitForEnlistmentReset">
+ <summary>
+ <b>EXPERIMENTAL</b> --
+ Enable waiting for the enlistment to be reset prior to attempting
+ to create a new enlistment. This may be necessary due to the
+ semantics used by distributed transactions, which complete
+ asynchronously.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.GetInvariantInt64">
+ <summary>
+ When returning <see cref="T:System.Int64"/> column values, always use
+ the invariant culture when converting their values from strings.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.GetInvariantDouble">
+ <summary>
+ When returning <see cref="T:System.Double"/> column values, always use
+ the invariant culture when converting their values from strings.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.StrictConformance">
+ <summary>
+ <b>EXPERIMENTAL</b> --
+ Enable strict conformance to the ADO.NET standard, e.g. use of
+ thrown exceptions to indicate common error conditions.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.HidePassword">
+ <summary>
+ <b>EXPERIMENTAL</b> --
+ When opening a connection, attempt to hide the password from the
+ connection string, etc. Given the memory architecture of the CLR,
+ (and P/Invoke) this is not 100% reliable and should not be relied
+ upon for security critical uses or applications.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.BindAndGetAllAsText">
+ <summary>
+ When binding parameter values or returning column values, always
+ treat them as though they were plain text (i.e. no numeric,
+ date/time, or other conversions should be attempted).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.ConvertAndBindInvariantText">
+ <summary>
+ When binding parameter values, always use the invariant culture when
+ converting their values to strings or from strings.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.BindAndGetAllAsInvariantText">
+ <summary>
+ When binding parameter values or returning column values, always
+ treat them as though they were plain text (i.e. no numeric,
+ date/time, or other conversions should be attempted) and always
+ use the invariant culture when converting their values to strings.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.ConvertAndBindAndGetAllAsInvariantText">
+ <summary>
+ When binding parameter values or returning column values, always
+ treat them as though they were plain text (i.e. no numeric,
+ date/time, or other conversions should be attempted) and always
+ use the invariant culture when converting their values to strings
+ or from strings.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.UseConnectionAllValueCallbacks">
+ <summary>
+ Enables use of all per-connection value handling callbacks.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.UseParameterAnythingForTypeName">
+ <summary>
+ Enables use of all applicable <see cref="T:System.Data.SQLite.SQLiteParameter"/>
+ properties as fallbacks for the database type name.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.LogAll">
+ <summary>
+ Enable all logging.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.LogDefault">
+ <summary>
+ The default logging related flags for new connections.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.Default">
+ <summary>
+ The default extra flags for new connections.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionFlags.DefaultAndLogAll">
+ <summary>
+ The default extra flags for new connections with all logging enabled.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteStatusOpsEnum">
+ <summary>
+ These are the supported status parameters for use with the native
+ SQLite library.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatusOpsEnum.SQLITE_DBSTATUS_LOOKASIDE_USED">
+ <summary>
+ This parameter returns the number of lookaside memory slots
+ currently checked out.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatusOpsEnum.SQLITE_DBSTATUS_CACHE_USED">
+ <summary>
+ This parameter returns the approximate number of bytes of
+ heap memory used by all pager caches associated with the
+ database connection. The highwater mark associated with
+ SQLITE_DBSTATUS_CACHE_USED is always 0.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatusOpsEnum.SQLITE_DBSTATUS_SCHEMA_USED">
+ <summary>
+ This parameter returns the approximate number of bytes of
+ heap memory used to store the schema for all databases
+ associated with the connection - main, temp, and any ATTACH-ed
+ databases. The full amount of memory used by the schemas is
+ reported, even if the schema memory is shared with other
+ database connections due to shared cache mode being enabled.
+ The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED
+ is always 0.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatusOpsEnum.SQLITE_DBSTATUS_STMT_USED">
+ <summary>
+ This parameter returns the number malloc attempts that might
+ have been satisfied using lookaside memory but failed due to
+ all lookaside memory already being in use. Only the high-water
+ value is meaningful; the current value is always zero.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatusOpsEnum.SQLITE_DBSTATUS_LOOKASIDE_HIT">
+ <summary>
+ This parameter returns the number malloc attempts that were
+ satisfied using lookaside memory. Only the high-water value
+ is meaningful; the current value is always zero.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatusOpsEnum.SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE">
+ <summary>
+ This parameter returns the number malloc attempts that might
+ have been satisfied using lookaside memory but failed due to
+ the amount of memory requested being larger than the lookaside
+ slot size. Only the high-water value is meaningful; the current
+ value is always zero.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatusOpsEnum.SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL">
+ <summary>
+ This parameter returns the number malloc attempts that might
+ have been satisfied using lookaside memory but failed due to
+ the amount of memory requested being larger than the lookaside
+ slot size. Only the high-water value is meaningful; the current
+ value is always zero.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatusOpsEnum.SQLITE_DBSTATUS_CACHE_HIT">
+ <summary>
+ This parameter returns the number of pager cache hits that
+ have occurred. The highwater mark associated with
+ SQLITE_DBSTATUS_CACHE_HIT is always 0.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatusOpsEnum.SQLITE_DBSTATUS_CACHE_MISS">
+ <summary>
+ This parameter returns the number of pager cache misses that
+ have occurred. The highwater mark associated with
+ SQLITE_DBSTATUS_CACHE_MISS is always 0.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatusOpsEnum.SQLITE_DBSTATUS_CACHE_WRITE">
+ <summary>
+ This parameter returns the number of dirty cache entries that
+ have been written to disk. Specifically, the number of pages
+ written to the wal file in wal mode databases, or the number
+ of pages written to the database file in rollback mode
+ databases. Any pages written as part of transaction rollback
+ or database recovery operations are not included. If an IO or
+ other error occurs while writing a page to disk, the effect
+ on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is
+ undefined. The highwater mark associated with
+ SQLITE_DBSTATUS_CACHE_WRITE is always 0.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatusOpsEnum.SQLITE_DBSTATUS_DEFERRED_FKS">
+ <summary>
+ This parameter returns zero for the current value if and only
+ if all foreign key constraints (deferred or immediate) have
+ been resolved. The highwater mark is always 0.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatusOpsEnum.SQLITE_DBSTATUS_CACHE_USED_SHARED">
+ <summary>
+ This parameter is similar to DBSTATUS_CACHE_USED, except that
+ if a pager cache is shared between two or more connections the
+ bytes of heap memory used by that pager cache is divided evenly
+ between the attached connections. In other words, if none of
+ the pager caches associated with the database connection are
+ shared, this request returns the same value as DBSTATUS_CACHE_USED.
+ Or, if one or more or the pager caches are shared, the value
+ returned by this call will be smaller than that returned by
+ DBSTATUS_CACHE_USED. The highwater mark associated with
+ SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatusOpsEnum.SQLITE_DBSTATUS_CACHE_SPILL">
+ <summary>
+ This parameter returns the number of dirty cache entries that have
+ been written to disk in the middle of a transaction due to the page
+ cache overflowing. Transactions are more efficient if they are
+ written to disk all at once. When pages spill mid-transaction, that
+ introduces additional overhead. This parameter can be used help
+ identify inefficiencies that can be resolved by increasing the cache
+ size.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteConfigDbOpsEnum">
+ <summary>
+ These are the supported configuration verbs for use with the native
+ SQLite library. They are used with the
+ <see cref="M:System.Data.SQLite.SQLiteConnection.SetConfigurationOption(System.Data.SQLite.SQLiteConfigDbOpsEnum,System.Object)"/> method.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_NONE">
+ <summary>
+ This value represents an unknown (or invalid) option, do not use it.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_MAINDBNAME">
+ <summary>
+ This option is used to change the name of the "main" database
+ schema. The sole argument is a pointer to a constant UTF8 string
+ which will become the new schema name in place of "main".
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_LOOKASIDE">
+ <summary>
+ This option is used to configure the lookaside memory allocator.
+ The value must be an array with three elements. The second element
+ must be an <see cref="T:System.Int32"/> containing the size of each buffer
+ slot. The third element must be an <see cref="T:System.Int32"/> containing
+ the number of slots. The first element must be an <see cref="T:System.IntPtr"/>
+ that points to a native memory buffer of bytes equal to or greater
+ than the product of the second and third element values.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_ENABLE_FKEY">
+ <summary>
+ This option is used to enable or disable the enforcement of
+ foreign key constraints.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_ENABLE_TRIGGER">
+ <summary>
+ This option is used to enable or disable triggers.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER">
+ <summary>
+ This option is used to enable or disable the two-argument version
+ of the fts3_tokenizer() function which is part of the FTS3 full-text
+ search engine extension.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION">
+ <summary>
+ This option is used to enable or disable the loading of extensions.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE">
+ <summary>
+ This option is used to enable or disable the automatic checkpointing
+ when a WAL database is closed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_ENABLE_QPSG">
+ <summary>
+ This option is used to enable or disable the query planner stability
+ guarantee (QPSG).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_TRIGGER_EQP">
+ <summary>
+ This option is used to enable or disable the extra EXPLAIN QUERY PLAN
+ output for trigger programs.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_RESET_DATABASE">
+ <summary>
+ This option is used as part of the process to reset a database back
+ to an empty state. Because resetting a database is destructive and
+ irreversible, the process requires the use of this obscure flag and
+ multiple steps to help ensure that it does not happen by accident.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_DEFENSIVE">
+ <summary>
+ This option activates or deactivates the "defensive" flag for a
+ database connection. When the defensive flag is enabled, language
+ features that allow ordinary SQL to deliberately corrupt the database
+ file are disabled. The disabled features include but are not limited
+ to the following:
+ <![CDATA[<ul>]]>
+ <![CDATA[<li>]]>
+ The PRAGMA writable_schema=ON statement.
+ <![CDATA[</li>]]>
+ <![CDATA[<li>]]>
+ The PRAGMA journal_mode=OFF statement.
+ <![CDATA[</li>]]>
+ <![CDATA[<li>]]>
+ Writes to the sqlite_dbpage virtual table.
+ <![CDATA[</li>]]>
+ <![CDATA[<li>]]>
+ Direct writes to shadow tables.
+ <![CDATA[</li>]]>
+ <![CDATA[</ul>]]>
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_WRITABLE_SCHEMA">
+ <summary>
+ This option activates or deactivates the "writable_schema" flag.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_LEGACY_ALTER_TABLE">
+ <summary>
+ This option activates or deactivates the legacy behavior of the ALTER
+ TABLE RENAME command such it behaves as it did prior to version 3.24.0
+ (2018-06-04).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_DQS_DML">
+ <summary>
+ This option activates or deactivates the legacy double-quoted string
+ literal misfeature for DML statement only, that is DELETE, INSERT,
+ SELECT, and UPDATE statements.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_DQS_DDL">
+ <summary>
+ This option activates or deactivates the legacy double-quoted string
+ literal misfeature for DDL statements, such as CREATE TABLE and CREATE
+ INDEX.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_ENABLE_VIEW">
+ <summary>
+ This option is used to enable or disable CREATE VIEW.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_LEGACY_FILE_FORMAT">
+ <summary>
+ This option activates or deactivates the legacy file format flag.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_TRUSTED_SCHEMA">
+ <summary>
+ This option tells SQLite to assume that database schemas (i.e. the
+ contents of the sqlite_master tables) are untainted by malicious
+ content. When the trusted schema option is disabled, SQLite takes
+ additional defensive steps to protect the application from harm
+ including:
+ <![CDATA[<ul>]]>
+ <![CDATA[<li>]]>
+ Prohibit the use of SQL functions inside triggers, views, CHECK
+ constraints, DEFAULT clauses, expression indexes, partial indexes,
+ or generated columns unless those functions are tagged with
+ SQLITE_INNOCUOUS.
+ <![CDATA[</li>]]>
+ <![CDATA[<li>]]>
+ Prohibit the use of virtual tables inside of triggers or views
+ unless those virtual tables are tagged with SQLITE_VTAB_INNOCUOUS.
+ <![CDATA[</ul>]]>
+ This setting defaults to "on" for legacy compatibility, however
+ all applications are advised to turn it off if possible. This
+ setting can also be controlled using the PRAGMA trusted_schema
+ statement.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteTraceFlags">
+ <summary>
+ These constants are used with the sqlite3_trace_v2() API and the
+ callbacks registered by it.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteLimitOpsEnum">
+ <summary>
+ These constants are used with the sqlite3_limit() API.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLimitOpsEnum.SQLITE_LIMIT_NONE">
+ <summary>
+ This value represents an unknown (or invalid) limit, do not use it.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLimitOpsEnum.SQLITE_LIMIT_LENGTH">
+ <summary>
+ The maximum size of any string or BLOB or table row, in bytes.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLimitOpsEnum.SQLITE_LIMIT_SQL_LENGTH">
+ <summary>
+ The maximum length of an SQL statement, in bytes.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLimitOpsEnum.SQLITE_LIMIT_COLUMN">
+ <summary>
+ The maximum number of columns in a table definition or in the
+ result set of a SELECT or the maximum number of columns in an
+ index or in an ORDER BY or GROUP BY clause.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLimitOpsEnum.SQLITE_LIMIT_EXPR_DEPTH">
+ <summary>
+ The maximum depth of the parse tree on any expression.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLimitOpsEnum.SQLITE_LIMIT_COMPOUND_SELECT">
+ <summary>
+ The maximum number of terms in a compound SELECT statement.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLimitOpsEnum.SQLITE_LIMIT_VDBE_OP">
+ <summary>
+ The maximum number of instructions in a virtual machine program
+ used to implement an SQL statement. If sqlite3_prepare_v2() or
+ the equivalent tries to allocate space for more than this many
+ opcodes in a single prepared statement, an SQLITE_NOMEM error
+ is returned.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLimitOpsEnum.SQLITE_LIMIT_FUNCTION_ARG">
+ <summary>
+ The maximum number of arguments on a function.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLimitOpsEnum.SQLITE_LIMIT_ATTACHED">
+ <summary>
+ The maximum number of attached databases.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLimitOpsEnum.SQLITE_LIMIT_LIKE_PATTERN_LENGTH">
+ <summary>
+ The maximum length of the pattern argument to the LIKE or GLOB
+ operators.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLimitOpsEnum.SQLITE_LIMIT_VARIABLE_NUMBER">
+ <summary>
+ The maximum index number of any parameter in an SQL statement.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLimitOpsEnum.SQLITE_LIMIT_TRIGGER_DEPTH">
+ <summary>
+ The maximum depth of recursion for triggers.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLimitOpsEnum.SQLITE_LIMIT_WORKER_THREADS">
+ <summary>
+ The maximum number of auxiliary worker threads that a single
+ prepared statement may start.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteBlob">
+ <summary>
+ Represents a single SQL blob in SQLite.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteBlob._sql">
+ <summary>
+ The underlying SQLite object this blob is bound to.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteBlob._sqlite_blob">
+ <summary>
+ The actual blob handle.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBlob.#ctor(System.Data.SQLite.SQLiteBase,System.Data.SQLite.SQLiteBlobHandle)">
+ <summary>
+ Initializes the blob.
+ </summary>
+ <param name="sqlbase">The base SQLite object.</param>
+ <param name="blob">The blob handle.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBlob.Create(System.Data.SQLite.SQLiteDataReader,System.Int32,System.Boolean)">
+ <summary>
+ Creates a <see cref="T:System.Data.SQLite.SQLiteBlob"/> object. This will not work
+ for tables that were created WITHOUT ROWID -OR- if the query
+ does not include the "rowid" column or one of its aliases -OR-
+ if the <see cref="T:System.Data.SQLite.SQLiteDataReader"/> was not created with the
+ <see cref="F:System.Data.CommandBehavior.KeyInfo"/> flag.
+ </summary>
+ <param name="dataReader">
+ The <see cref="T:System.Data.SQLite.SQLiteDataReader"/> instance with a result set
+ containing the desired blob column.
+ </param>
+ <param name="i">
+ The index of the blob column.
+ </param>
+ <param name="readOnly">
+ Non-zero to open the blob object for read-only access.
+ </param>
+ <returns>
+ The newly created <see cref="T:System.Data.SQLite.SQLiteBlob"/> instance -OR- null
+ if an error occurs.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBlob.Create(System.Data.SQLite.SQLiteConnection,System.String,System.String,System.String,System.Int64,System.Boolean)">
+ <summary>
+ Creates a <see cref="T:System.Data.SQLite.SQLiteBlob"/> object. This will not work
+ for tables that were created WITHOUT ROWID.
+ </summary>
+ <param name="connection">
+ The connection to use when opening the blob object.
+ </param>
+ <param name="databaseName">
+ The name of the database containing the blob object.
+ </param>
+ <param name="tableName">
+ The name of the table containing the blob object.
+ </param>
+ <param name="columnName">
+ The name of the column containing the blob object.
+ </param>
+ <param name="rowId">
+ The integer identifier for the row associated with the desired
+ blob object.
+ </param>
+ <param name="readOnly">
+ Non-zero to open the blob object for read-only access.
+ </param>
+ <returns>
+ The newly created <see cref="T:System.Data.SQLite.SQLiteBlob"/> instance -OR- null
+ if an error occurs.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBlob.CheckOpen">
+ <summary>
+ Throws an exception if the blob object does not appear to be open.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBlob.VerifyParameters(System.Byte[],System.Int32,System.Int32)">
+ <summary>
+ Throws an exception if an invalid read/write parameter is detected.
+ </summary>
+ <param name="buffer">
+ When reading, this array will be populated with the bytes read from
+ the underlying database blob. When writing, this array contains new
+ values for the specified portion of the underlying database blob.
+ </param>
+ <param name="count">
+ The number of bytes to read or write.
+ </param>
+ <param name="offset">
+ The byte offset, relative to the start of the underlying database
+ blob, where the read or write operation will begin.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBlob.Reopen(System.Int64)">
+ <summary>
+ Retargets this object to an underlying database blob for a
+ different row; the database, table, and column remain exactly
+ the same. If this operation fails for any reason, this blob
+ object is automatically disposed.
+ </summary>
+ <param name="rowId">
+ The integer identifier for the new row.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBlob.GetCount">
+ <summary>
+ Queries the total number of bytes for the underlying database blob.
+ </summary>
+ <returns>
+ The total number of bytes for the underlying database blob.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBlob.Read(System.Byte[],System.Int32,System.Int32)">
+ <summary>
+ Reads data from the underlying database blob.
+ </summary>
+ <param name="buffer">
+ This array will be populated with the bytes read from the
+ underlying database blob.
+ </param>
+ <param name="count">
+ The number of bytes to read.
+ </param>
+ <param name="offset">
+ The byte offset, relative to the start of the underlying
+ database blob, where the read operation will begin.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBlob.Write(System.Byte[],System.Int32,System.Int32)">
+ <summary>
+ Writes data into the underlying database blob.
+ </summary>
+ <param name="buffer">
+ This array contains the new values for the specified portion of
+ the underlying database blob.
+ </param>
+ <param name="count">
+ The number of bytes to write.
+ </param>
+ <param name="offset">
+ The byte offset, relative to the start of the underlying
+ database blob, where the write operation will begin.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBlob.Close">
+ <summary>
+ Closes the blob, freeing the associated resources.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBlob.Dispose">
+ <summary>
+ Disposes and finalizes the blob.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBlob.Finalize">
+ <summary>
+ The destructor.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteCommand">
+ <summary>
+ SQLite implementation of DbCommand.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteCommand.DefaultConnectionString">
+ <summary>
+ The default connection string to be used when creating a temporary
+ connection to execute a command via the static
+ <see cref="M:System.Data.SQLite.SQLiteCommand.Execute(System.String,System.Data.SQLite.SQLiteExecuteType,System.String,System.Object[])"/> or
+ <see cref="M:System.Data.SQLite.SQLiteCommand.Execute(System.String,System.Data.SQLite.SQLiteExecuteType,System.Data.CommandBehavior,System.String,System.Object[])"/>
+ methods.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteCommand._commandText">
+ <summary>
+ The command text this command is based on
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteCommand._cnn">
+ <summary>
+ The connection the command is associated with
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteCommand._version">
+ <summary>
+ The version of the connection the command is associated with
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteCommand._activeReader">
+ <summary>
+ Indicates whether or not a DataReader is active on the command.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteCommand._commandTimeout">
+ <summary>
+ The timeout for the command, kludged because SQLite doesn't support per-command timeout values
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteCommand._designTimeVisible">
+ <summary>
+ Designer support
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteCommand._updateRowSource">
+ <summary>
+ Used by DbDataAdapter to determine updating behavior
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteCommand._parameterCollection">
+ <summary>
+ The collection of parameters for the command
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteCommand._statementList">
+ <summary>
+ The SQL command text, broken into individual SQL statements as they are executed
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteCommand._remainingText">
+ <summary>
+ Unprocessed SQL text that has not been executed
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteCommand._transaction">
+ <summary>
+ Transaction associated with this command
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.#ctor">
+ <overloads>
+ Constructs a new SQLiteCommand
+ </overloads>
+ <summary>
+ Default constructor
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.#ctor(System.String)">
+ <summary>
+ Initializes the command with the given command text
+ </summary>
+ <param name="commandText">The SQL command text</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.#ctor(System.String,System.Data.SQLite.SQLiteConnection)">
+ <summary>
+ Initializes the command with the given SQL command text and attach the command to the specified
+ connection.
+ </summary>
+ <param name="commandText">The SQL command text</param>
+ <param name="connection">The connection to associate with the command</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.#ctor(System.Data.SQLite.SQLiteConnection)">
+ <summary>
+ Initializes the command and associates it with the specified connection.
+ </summary>
+ <param name="connection">The connection to associate with the command</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.#ctor(System.String,System.Data.SQLite.SQLiteConnection,System.Data.SQLite.SQLiteTransaction)">
+ <summary>
+ Initializes a command with the given SQL, connection and transaction
+ </summary>
+ <param name="commandText">The SQL command text</param>
+ <param name="connection">The connection to associate with the command</param>
+ <param name="transaction">The transaction the command should be associated with</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.Dispose(System.Boolean)">
+ <summary>
+ Disposes of the command and clears all member variables
+ </summary>
+ <param name="disposing">Whether or not the class is being explicitly or implicitly disposed</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.GetFlags(System.Data.SQLite.SQLiteCommand)">
+ <summary>
+ This method attempts to query the flags associated with the database
+ connection in use. If the database connection is disposed, the default
+ flags will be returned.
+ </summary>
+ <param name="command">
+ The command containing the databse connection to query the flags from.
+ </param>
+ <returns>
+ The connection flags value.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.ClearCommands">
+ <summary>
+ Clears and destroys all statements currently prepared
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.BuildNextCommand">
+ <summary>
+ Builds an array of prepared statements for each complete SQL statement in the command text
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.Cancel">
+ <summary>
+ Not implemented
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.CreateDbParameter">
+ <summary>
+ Forwards to the local CreateParameter() function
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.CreateParameter">
+ <summary>
+ Create a new parameter
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.VerifyOnly">
+ <summary>
+ Verifies that all SQL queries associated with the current command text
+ can be successfully compiled. A <see cref="T:System.Data.SQLite.SQLiteException"/> will be
+ raised if any errors occur.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.InitializeForReader">
+ <summary>
+ This function ensures there are no active readers, that we have a valid connection,
+ that the connection is open, that all statements are prepared and all parameters are assigned
+ in preparation for allocating a data reader.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.ExecuteDbDataReader(System.Data.CommandBehavior)">
+ <summary>
+ Creates a new SQLiteDataReader to execute/iterate the array of SQLite prepared statements
+ </summary>
+ <param name="behavior">The behavior the data reader should adopt</param>
+ <returns>Returns a SQLiteDataReader object</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.Execute(System.String,System.Data.SQLite.SQLiteExecuteType,System.String,System.Object[])">
+ <summary>
+ This method creates a new connection, executes the query using the given
+ execution type, closes the connection, and returns the results. If the
+ connection string is null, a temporary in-memory database connection will
+ be used.
+ </summary>
+ <param name="commandText">
+ The text of the command to be executed.
+ </param>
+ <param name="executeType">
+ The execution type for the command. This is used to determine which method
+ of the command object to call, which then determines the type of results
+ returned, if any.
+ </param>
+ <param name="connectionString">
+ The connection string to the database to be opened, used, and closed. If
+ this parameter is null, a temporary in-memory databse will be used.
+ </param>
+ <param name="args">
+ The SQL parameter values to be used when building the command object to be
+ executed, if any.
+ </param>
+ <returns>
+ The results of the query -OR- null if no results were produced from the
+ given execution type.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.Execute(System.String,System.Data.SQLite.SQLiteExecuteType,System.Data.CommandBehavior,System.String,System.Object[])">
+ <summary>
+ This method creates a new connection, executes the query using the given
+ execution type and command behavior, closes the connection unless a data
+ reader is created, and returns the results. If the connection string is
+ null, a temporary in-memory database connection will be used.
+ </summary>
+ <param name="commandText">
+ The text of the command to be executed.
+ </param>
+ <param name="executeType">
+ The execution type for the command. This is used to determine which method
+ of the command object to call, which then determines the type of results
+ returned, if any.
+ </param>
+ <param name="commandBehavior">
+ The command behavior flags for the command.
+ </param>
+ <param name="connectionString">
+ The connection string to the database to be opened, used, and closed. If
+ this parameter is null, a temporary in-memory databse will be used.
+ </param>
+ <param name="args">
+ The SQL parameter values to be used when building the command object to be
+ executed, if any.
+ </param>
+ <returns>
+ The results of the query -OR- null if no results were produced from the
+ given execution type.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.Execute(System.String,System.Data.SQLite.SQLiteExecuteType,System.Data.CommandBehavior,System.Data.SQLite.SQLiteConnection,System.Object[])">
+ <summary>
+ This method executes a query using the given execution type and command
+ behavior and returns the results.
+ </summary>
+ <param name="commandText">
+ The text of the command to be executed.
+ </param>
+ <param name="executeType">
+ The execution type for the command. This is used to determine which method
+ of the command object to call, which then determines the type of results
+ returned, if any.
+ </param>
+ <param name="commandBehavior">
+ The command behavior flags for the command.
+ </param>
+ <param name="connection">
+ The connection used to create and execute the command.
+ </param>
+ <param name="args">
+ The SQL parameter values to be used when building the command object to be
+ executed, if any.
+ </param>
+ <returns>
+ The results of the query -OR- null if no results were produced from the
+ given execution type.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.ExecuteReader(System.Data.CommandBehavior)">
+ <summary>
+ Overrides the default behavior to return a SQLiteDataReader specialization class
+ </summary>
+ <param name="behavior">The flags to be associated with the reader.</param>
+ <returns>A SQLiteDataReader</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.ExecuteReader">
+ <summary>
+ Overrides the default behavior of DbDataReader to return a specialized SQLiteDataReader class
+ </summary>
+ <returns>A SQLiteDataReader</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.ResetDataReader">
+ <summary>
+ Called by the SQLiteDataReader when the data reader is closed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.ExecuteNonQuery">
+ <summary>
+ Execute the command and return the number of rows inserted/updated affected by it.
+ </summary>
+ <returns>The number of rows inserted/updated affected by it.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.ExecuteNonQuery(System.Data.CommandBehavior)">
+ <summary>
+ Execute the command and return the number of rows inserted/updated affected by it.
+ </summary>
+ <param name="behavior">The flags to be associated with the reader.</param>
+ <returns>The number of rows inserted/updated affected by it.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.ExecuteScalar">
+ <summary>
+ Execute the command and return the first column of the first row of the resultset
+ (if present), or null if no resultset was returned.
+ </summary>
+ <returns>The first column of the first row of the first resultset from the query.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.ExecuteScalar(System.Data.CommandBehavior)">
+ <summary>
+ Execute the command and return the first column of the first row of the resultset
+ (if present), or null if no resultset was returned.
+ </summary>
+ <param name="behavior">The flags to be associated with the reader.</param>
+ <returns>The first column of the first row of the first resultset from the query.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.Reset">
+ <summary>
+ This method resets all the prepared statements held by this instance
+ back to their initial states, ready to be re-executed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.Reset(System.Boolean,System.Boolean)">
+ <summary>
+ This method resets all the prepared statements held by this instance
+ back to their initial states, ready to be re-executed.
+ </summary>
+ <param name="clearBindings">
+ Non-zero if the parameter bindings should be cleared as well.
+ </param>
+ <param name="ignoreErrors">
+ If this is zero, a <see cref="T:System.Data.SQLite.SQLiteException"/> may be thrown for
+ any unsuccessful return codes from the native library; otherwise, a
+ <see cref="T:System.Data.SQLite.SQLiteException"/> will only be thrown if the connection
+ or its state is invalid.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.Prepare">
+ <summary>
+ Does nothing. Commands are prepared as they are executed the first time, and kept in prepared state afterwards.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommand.Clone">
+ <summary>
+ Clones a command, including all its parameters
+ </summary>
+ <returns>A new SQLiteCommand with the same commandtext, connection and parameters</returns>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteCommand.CommandText">
+ <summary>
+ The SQL command text associated with the command
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteCommand.CommandTimeout">
+ <summary>
+ The amount of time to wait for the connection to become available before erroring out
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteCommand.CommandType">
+ <summary>
+ The type of the command. SQLite only supports CommandType.Text
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteCommand.Connection">
+ <summary>
+ The connection associated with this command
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteCommand.DbConnection">
+ <summary>
+ Forwards to the local Connection property
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteCommand.Parameters">
+ <summary>
+ Returns the SQLiteParameterCollection for the given command
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteCommand.DbParameterCollection">
+ <summary>
+ Forwards to the local Parameters property
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteCommand.Transaction">
+ <summary>
+ The transaction associated with this command. SQLite only supports one transaction per connection, so this property forwards to the
+ command's underlying connection.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteCommand.DbTransaction">
+ <summary>
+ Forwards to the local Transaction property
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteCommand.UpdatedRowSource">
+ <summary>
+ Sets the method the SQLiteCommandBuilder uses to determine how to update inserted or updated rows in a DataTable.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteCommand.DesignTimeVisible">
+ <summary>
+ Determines if the command is visible at design time. Defaults to True.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteCommandBuilder">
+ <summary>
+ SQLite implementation of DbCommandBuilder.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommandBuilder.#ctor">
+ <summary>
+ Default constructor
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommandBuilder.#ctor(System.Data.SQLite.SQLiteDataAdapter)">
+ <summary>
+ Initializes the command builder and associates it with the specified data adapter.
+ </summary>
+ <param name="adp"></param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommandBuilder.Dispose(System.Boolean)">
+ <summary>
+ Cleans up resources (native and managed) associated with the current instance.
+ </summary>
+ <param name="disposing">
+ Zero when being disposed via garbage collection; otherwise, non-zero.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommandBuilder.ApplyParameterInfo(System.Data.Common.DbParameter,System.Data.DataRow,System.Data.StatementType,System.Boolean)">
+ <summary>
+ Minimal amount of parameter processing. Primarily sets the DbType for the parameter equal to the provider type in the schema
+ </summary>
+ <param name="parameter">The parameter to use in applying custom behaviors to a row</param>
+ <param name="row">The row to apply the parameter to</param>
+ <param name="statementType">The type of statement</param>
+ <param name="whereClause">Whether the application of the parameter is part of a WHERE clause</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommandBuilder.GetParameterName(System.String)">
+ <summary>
+ Returns a valid named parameter
+ </summary>
+ <param name="parameterName">The name of the parameter</param>
+ <returns>Error</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommandBuilder.GetParameterName(System.Int32)">
+ <summary>
+ Returns a named parameter for the given ordinal
+ </summary>
+ <param name="parameterOrdinal">The i of the parameter</param>
+ <returns>Error</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommandBuilder.GetParameterPlaceholder(System.Int32)">
+ <summary>
+ Returns a placeholder character for the specified parameter i.
+ </summary>
+ <param name="parameterOrdinal">The index of the parameter to provide a placeholder for</param>
+ <returns>Returns a named parameter</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommandBuilder.SetRowUpdatingHandler(System.Data.Common.DbDataAdapter)">
+ <summary>
+ Sets the handler for receiving row updating events. Used by the DbCommandBuilder to autogenerate SQL
+ statements that may not have previously been generated.
+ </summary>
+ <param name="adapter">A data adapter to receive events on.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommandBuilder.GetDeleteCommand">
+ <summary>
+ Returns the automatically-generated SQLite command to delete rows from the database
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommandBuilder.GetDeleteCommand(System.Boolean)">
+ <summary>
+ Returns the automatically-generated SQLite command to delete rows from the database
+ </summary>
+ <param name="useColumnsForParameterNames"></param>
+ <returns></returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommandBuilder.GetUpdateCommand">
+ <summary>
+ Returns the automatically-generated SQLite command to update rows in the database
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommandBuilder.GetUpdateCommand(System.Boolean)">
+ <summary>
+ Returns the automatically-generated SQLite command to update rows in the database
+ </summary>
+ <param name="useColumnsForParameterNames"></param>
+ <returns></returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommandBuilder.GetInsertCommand">
+ <summary>
+ Returns the automatically-generated SQLite command to insert rows into the database
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommandBuilder.GetInsertCommand(System.Boolean)">
+ <summary>
+ Returns the automatically-generated SQLite command to insert rows into the database
+ </summary>
+ <param name="useColumnsForParameterNames"></param>
+ <returns></returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommandBuilder.QuoteIdentifier(System.String)">
+ <summary>
+ Places brackets around an identifier
+ </summary>
+ <param name="unquotedIdentifier">The identifier to quote</param>
+ <returns>The bracketed identifier</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommandBuilder.UnquoteIdentifier(System.String)">
+ <summary>
+ Removes brackets around an identifier
+ </summary>
+ <param name="quotedIdentifier">The quoted (bracketed) identifier</param>
+ <returns>The undecorated identifier</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteCommandBuilder.GetSchemaTable(System.Data.Common.DbCommand)">
+ <summary>
+ Override helper, which can help the base command builder choose the right keys for the given query
+ </summary>
+ <param name="sourceCommand"></param>
+ <returns></returns>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteCommandBuilder.DataAdapter">
+ <summary>
+ Gets/sets the DataAdapter for this CommandBuilder
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteCommandBuilder.CatalogLocation">
+ <summary>
+ Overridden to hide its property from the designer
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteCommandBuilder.CatalogSeparator">
+ <summary>
+ Overridden to hide its property from the designer
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteCommandBuilder.QuotePrefix">
+ <summary>
+ Overridden to hide its property from the designer
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteCommandBuilder.QuoteSuffix">
+ <summary>
+ Overridden to hide its property from the designer
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteCommandBuilder.SchemaSeparator">
+ <summary>
+ Overridden to hide its property from the designer
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteDataReaderValue">
+ <summary>
+ This class represents a single value to be returned
+ from the <see cref="T:System.Data.SQLite.SQLiteDataReader"/> class via
+ its <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBlob(System.Int32,System.Boolean)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBoolean(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetByte(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChar(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetDateTime(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetDecimal(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetDouble(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetFloat(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetGuid(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetInt16(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetInt32(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetInt64(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetString(System.Int32)"/>, or
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetValue(System.Int32)"/> method. If the value of the
+ associated public field of this class is null upon returning from the
+ callback, the null value will only be used if the return type for the
+ <see cref="T:System.Data.SQLite.SQLiteDataReader"/> method called is not a value type.
+ If the value to be returned from the <see cref="T:System.Data.SQLite.SQLiteDataReader"/>
+ method is unsuitable (e.g. null with a value type), an exception will
+ be thrown.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReaderValue.BlobValue">
+ <summary>
+ The value to be returned from the
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBlob(System.Int32,System.Boolean)"/> method -OR- null to
+ indicate an error.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReaderValue.BooleanValue">
+ <summary>
+ The value to be returned from the
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBoolean(System.Int32)"/> method -OR- null to
+ indicate an error.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReaderValue.ByteValue">
+ <summary>
+ The value to be returned from the
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetByte(System.Int32)"/> method -OR- null to
+ indicate an error.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReaderValue.BytesValue">
+ <summary>
+ The value to be returned from the
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/> method.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReaderValue.CharValue">
+ <summary>
+ The value to be returned from the
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChar(System.Int32)"/> method -OR- null to
+ indicate an error.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReaderValue.CharsValue">
+ <summary>
+ The value to be returned from the
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/> method.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReaderValue.DateTimeValue">
+ <summary>
+ The value to be returned from the
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetDateTime(System.Int32)"/> method -OR- null to
+ indicate an error.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReaderValue.DecimalValue">
+ <summary>
+ The value to be returned from the
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetDecimal(System.Int32)"/> method -OR- null to
+ indicate an error.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReaderValue.DoubleValue">
+ <summary>
+ The value to be returned from the
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetDouble(System.Int32)"/> method -OR- null to
+ indicate an error.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReaderValue.FloatValue">
+ <summary>
+ The value to be returned from the
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetFloat(System.Int32)"/> method -OR- null to
+ indicate an error.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReaderValue.GuidValue">
+ <summary>
+ The value to be returned from the
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetGuid(System.Int32)"/> method -OR- null to
+ indicate an error.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReaderValue.Int16Value">
+ <summary>
+ The value to be returned from the
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetInt16(System.Int32)"/> method -OR- null to
+ indicate an error.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReaderValue.Int32Value">
+ <summary>
+ The value to be returned from the
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetInt32(System.Int32)"/> method -OR- null to
+ indicate an error.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReaderValue.Int64Value">
+ <summary>
+ The value to be returned from the
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetInt64(System.Int32)"/> method -OR- null to
+ indicate an error.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReaderValue.StringValue">
+ <summary>
+ The value to be returned from the
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetString(System.Int32)"/> method.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReaderValue.Value">
+ <summary>
+ The value to be returned from the
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetValue(System.Int32)"/> method.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteReadEventArgs">
+ <summary>
+ This class represents the parameters that are provided
+ to the <see cref="T:System.Data.SQLite.SQLiteDataReader"/> methods, with
+ the exception of the column index (provided separately).
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteReadBlobEventArgs">
+ <summary>
+ This class represents the parameters that are provided to
+ the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBlob(System.Int32,System.Boolean)"/> method, with
+ the exception of the column index (provided separately).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteReadBlobEventArgs.readOnly">
+ <summary>
+ Provides the underlying storage for the
+ <see cref="P:System.Data.SQLite.SQLiteReadBlobEventArgs.ReadOnly"/> property.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteReadBlobEventArgs.#ctor(System.Boolean)">
+ <summary>
+ Constructs an instance of this class to pass into a user-defined
+ callback associated with the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBlob(System.Int32,System.Boolean)"/>
+ method.
+ </summary>
+ <param name="readOnly">
+ The value that was originally specified for the "readOnly"
+ parameter to the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBlob(System.Int32,System.Boolean)"/> method.
+ </param>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteReadBlobEventArgs.ReadOnly">
+ <summary>
+ The value that was originally specified for the "readOnly"
+ parameter to the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBlob(System.Int32,System.Boolean)"/> method.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteReadArrayEventArgs">
+ <summary>
+ This class represents the parameters that are provided
+ to the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/> and
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/> methods, with
+ the exception of the column index (provided separately).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteReadArrayEventArgs.dataOffset">
+ <summary>
+ Provides the underlying storage for the
+ <see cref="P:System.Data.SQLite.SQLiteReadArrayEventArgs.DataOffset"/> property.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteReadArrayEventArgs.byteBuffer">
+ <summary>
+ Provides the underlying storage for the
+ <see cref="P:System.Data.SQLite.SQLiteReadArrayEventArgs.ByteBuffer"/> property.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteReadArrayEventArgs.charBuffer">
+ <summary>
+ Provides the underlying storage for the
+ <see cref="P:System.Data.SQLite.SQLiteReadArrayEventArgs.CharBuffer"/> property.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteReadArrayEventArgs.bufferOffset">
+ <summary>
+ Provides the underlying storage for the
+ <see cref="P:System.Data.SQLite.SQLiteReadArrayEventArgs.BufferOffset"/> property.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteReadArrayEventArgs.length">
+ <summary>
+ Provides the underlying storage for the
+ <see cref="P:System.Data.SQLite.SQLiteReadArrayEventArgs.Length"/> property.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteReadArrayEventArgs.#ctor(System.Int64,System.Byte[],System.Int32,System.Int32)">
+ <summary>
+ Constructs an instance of this class to pass into a user-defined
+ callback associated with the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/>
+ method.
+ </summary>
+ <param name="dataOffset">
+ The value that was originally specified for the "dataOffset"
+ parameter to the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/> or
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/> methods.
+ </param>
+ <param name="byteBuffer">
+ The value that was originally specified for the "buffer"
+ parameter to the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/>
+ method.
+ </param>
+ <param name="bufferOffset">
+ The value that was originally specified for the "bufferOffset"
+ parameter to the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/> or
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/> methods.
+ </param>
+ <param name="length">
+ The value that was originally specified for the "length"
+ parameter to the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/> or
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/> methods.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteReadArrayEventArgs.#ctor(System.Int64,System.Char[],System.Int32,System.Int32)">
+ <summary>
+ Constructs an instance of this class to pass into a user-defined
+ callback associated with the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/>
+ method.
+ </summary>
+ <param name="dataOffset">
+ The value that was originally specified for the "dataOffset"
+ parameter to the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/> or
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/> methods.
+ </param>
+ <param name="charBuffer">
+ The value that was originally specified for the "buffer"
+ parameter to the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/>
+ method.
+ </param>
+ <param name="bufferOffset">
+ The value that was originally specified for the "bufferOffset"
+ parameter to the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/> or
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/> methods.
+ </param>
+ <param name="length">
+ The value that was originally specified for the "length"
+ parameter to the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/> or
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/> methods.
+ </param>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteReadArrayEventArgs.DataOffset">
+ <summary>
+ The value that was originally specified for the "dataOffset"
+ parameter to the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/> or
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/> methods.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteReadArrayEventArgs.ByteBuffer">
+ <summary>
+ The value that was originally specified for the "buffer"
+ parameter to the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/>
+ method.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteReadArrayEventArgs.CharBuffer">
+ <summary>
+ The value that was originally specified for the "buffer"
+ parameter to the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/>
+ method.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteReadArrayEventArgs.BufferOffset">
+ <summary>
+ The value that was originally specified for the "bufferOffset"
+ parameter to the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/> or
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/> methods.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteReadArrayEventArgs.Length">
+ <summary>
+ The value that was originally specified for the "length"
+ parameter to the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/> or
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/> methods.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteReadValueEventArgs">
+ <summary>
+ This class represents the parameters and return values for the
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBlob(System.Int32,System.Boolean)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBoolean(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetByte(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChar(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetDateTime(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetDecimal(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetDouble(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetFloat(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetGuid(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetInt16(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetInt32(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetInt64(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetString(System.Int32)"/>, and
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetValue(System.Int32)"/> methods.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteReadValueEventArgs.methodName">
+ <summary>
+ Provides the underlying storage for the
+ <see cref="P:System.Data.SQLite.SQLiteReadValueEventArgs.MethodName"/> property.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteReadValueEventArgs.extraEventArgs">
+ <summary>
+ Provides the underlying storage for the
+ <see cref="P:System.Data.SQLite.SQLiteReadValueEventArgs.ExtraEventArgs"/> property.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteReadValueEventArgs.value">
+ <summary>
+ Provides the underlying storage for the
+ <see cref="P:System.Data.SQLite.SQLiteReadValueEventArgs.Value"/> property.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteReadValueEventArgs.#ctor(System.String,System.Data.SQLite.SQLiteReadEventArgs,System.Data.SQLite.SQLiteDataReaderValue)">
+ <summary>
+ Constructs a new instance of this class. Depending on the method
+ being called, the <paramref name="extraEventArgs"/> and/or
+ <paramref name="value"/> parameters may be null.
+ </summary>
+ <param name="methodName">
+ The name of the <see cref="T:System.Data.SQLite.SQLiteDataReader"/> method that was
+ responsible for invoking this callback.
+ </param>
+ <param name="extraEventArgs">
+ If the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/> or
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/> method is being called,
+ this object will contain the array related parameters for that
+ method. If the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBlob(System.Int32,System.Boolean)"/> method is
+ being called, this object will contain the blob related parameters
+ for that method.
+ </param>
+ <param name="value">
+ This may be used by the callback to set the return value for the
+ called <see cref="T:System.Data.SQLite.SQLiteDataReader"/> method.
+ </param>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteReadValueEventArgs.MethodName">
+ <summary>
+ The name of the <see cref="T:System.Data.SQLite.SQLiteDataReader"/> method that was
+ responsible for invoking this callback.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteReadValueEventArgs.ExtraEventArgs">
+ <summary>
+ If the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)"/> or
+ <see cref="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)"/> method is being called,
+ this object will contain the array related parameters for that
+ method. If the <see cref="M:System.Data.SQLite.SQLiteDataReader.GetBlob(System.Int32,System.Boolean)"/> method is
+ being called, this object will contain the blob related parameters
+ for that method.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteReadValueEventArgs.Value">
+ <summary>
+ This may be used by the callback to set the return value for the
+ called <see cref="T:System.Data.SQLite.SQLiteDataReader"/> method.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteBindValueCallback">
+ <summary>
+ This represents a method that will be called in response to a request to
+ bind a parameter to a command. If an exception is thrown, it will cause
+ the parameter binding operation to fail -AND- it will continue to unwind
+ the call stack.
+ </summary>
+ <param name="convert">
+ The <see cref="T:System.Data.SQLite.SQLiteConvert"/> instance in use.
+ </param>
+ <param name="command">
+ The <see cref="T:System.Data.SQLite.SQLiteCommand"/> instance in use.
+ </param>
+ <param name="flags">
+ The flags associated with the <see cref="T:System.Data.SQLite.SQLiteConnection"/> instance
+ in use.
+ </param>
+ <param name="parameter">
+ The <see cref="T:System.Data.SQLite.SQLiteParameter"/> instance being bound to the command.
+ </param>
+ <param name="typeName">
+ The database type name associated with this callback.
+ </param>
+ <param name="index">
+ The ordinal of the parameter being bound to the command.
+ </param>
+ <param name="userData">
+ The data originally used when registering this callback.
+ </param>
+ <param name="complete">
+ Non-zero if the default handling for the parameter binding call should
+ be skipped (i.e. the parameter should not be bound at all). Great care
+ should be used when setting this to non-zero.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteReadValueCallback">
+ <summary>
+ This represents a method that will be called in response to a request
+ to read a value from a data reader. If an exception is thrown, it will
+ cause the data reader operation to fail -AND- it will continue to unwind
+ the call stack.
+ </summary>
+ <param name="convert">
+ The <see cref="T:System.Data.SQLite.SQLiteConvert"/> instance in use.
+ </param>
+ <param name="dataReader">
+ The <see cref="T:System.Data.SQLite.SQLiteDataReader"/> instance in use.
+ </param>
+ <param name="flags">
+ The flags associated with the <see cref="T:System.Data.SQLite.SQLiteConnection"/> instance
+ in use.
+ </param>
+ <param name="eventArgs">
+ The parameter and return type data for the column being read from the
+ data reader.
+ </param>
+ <param name="typeName">
+ The database type name associated with this callback.
+ </param>
+ <param name="index">
+ The zero based index of the column being read from the data reader.
+ </param>
+ <param name="userData">
+ The data originally used when registering this callback.
+ </param>
+ <param name="complete">
+ Non-zero if the default handling for the data reader call should be
+ skipped. If this is set to non-zero and the necessary return value
+ is unavailable or unsuitable, an exception will be thrown.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteTypeCallbacks">
+ <summary>
+ This class represents the custom data type handling callbacks
+ for a single type name.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteTypeCallbacks.typeName">
+ <summary>
+ Provides the underlying storage for the
+ <see cref="P:System.Data.SQLite.SQLiteTypeCallbacks.TypeName"/> property.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteTypeCallbacks.bindValueCallback">
+ <summary>
+ Provides the underlying storage for the
+ <see cref="P:System.Data.SQLite.SQLiteTypeCallbacks.BindValueCallback"/> property.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteTypeCallbacks.readValueCallback">
+ <summary>
+ Provides the underlying storage for the
+ <see cref="P:System.Data.SQLite.SQLiteTypeCallbacks.ReadValueCallback"/> property.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteTypeCallbacks.bindValueUserData">
+ <summary>
+ Provides the underlying storage for the
+ <see cref="P:System.Data.SQLite.SQLiteTypeCallbacks.BindValueUserData"/> property.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteTypeCallbacks.readValueUserData">
+ <summary>
+ Provides the underlying storage for the
+ <see cref="P:System.Data.SQLite.SQLiteTypeCallbacks.ReadValueUserData"/> property.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTypeCallbacks.#ctor(System.Data.SQLite.SQLiteBindValueCallback,System.Data.SQLite.SQLiteReadValueCallback,System.Object,System.Object)">
+ <summary>
+ Constructs an instance of this class.
+ </summary>
+ <param name="bindValueCallback">
+ The custom paramater binding callback. This parameter may be null.
+ </param>
+ <param name="readValueCallback">
+ The custom data reader value callback. This parameter may be null.
+ </param>
+ <param name="bindValueUserData">
+ The extra data to pass into the parameter binding callback. This
+ parameter may be null.
+ </param>
+ <param name="readValueUserData">
+ The extra data to pass into the data reader value callback. This
+ parameter may be null.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTypeCallbacks.Create(System.Data.SQLite.SQLiteBindValueCallback,System.Data.SQLite.SQLiteReadValueCallback,System.Object,System.Object)">
+ <summary>
+ Creates an instance of the <see cref="T:System.Data.SQLite.SQLiteTypeCallbacks"/> class.
+ </summary>
+ <param name="bindValueCallback">
+ The custom paramater binding callback. This parameter may be null.
+ </param>
+ <param name="readValueCallback">
+ The custom data reader value callback. This parameter may be null.
+ </param>
+ <param name="bindValueUserData">
+ The extra data to pass into the parameter binding callback. This
+ parameter may be null.
+ </param>
+ <param name="readValueUserData">
+ The extra data to pass into the data reader value callback. This
+ parameter may be null.
+ </param>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteTypeCallbacks.TypeName">
+ <summary>
+ The database type name that the callbacks contained in this class
+ will apply to. This value may not be null.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteTypeCallbacks.BindValueCallback">
+ <summary>
+ The custom paramater binding callback. This value may be null.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteTypeCallbacks.ReadValueCallback">
+ <summary>
+ The custom data reader value callback. This value may be null.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteTypeCallbacks.BindValueUserData">
+ <summary>
+ The extra data to pass into the parameter binding callback. This
+ value may be null.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteTypeCallbacks.ReadValueUserData">
+ <summary>
+ The extra data to pass into the data reader value callback. This
+ value may be null.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteTypeCallbacksMap">
+ <summary>
+ This class represents the mappings between database type names
+ and their associated custom data type handling callbacks.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTypeCallbacksMap.#ctor">
+ <summary>
+ Constructs an (empty) instance of this class.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.ConnectionEventArgs">
+ <summary>
+ Event data for connection event handlers.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.ConnectionEventArgs.EventType">
+ <summary>
+ The type of event being raised.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.ConnectionEventArgs.EventArgs">
+ <summary>
+ The <see cref="T:System.Data.StateChangeEventArgs"/> associated with this event, if any.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.ConnectionEventArgs.Transaction">
+ <summary>
+ The transaction associated with this event, if any.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.ConnectionEventArgs.Command">
+ <summary>
+ The command associated with this event, if any.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.ConnectionEventArgs.DataReader">
+ <summary>
+ The data reader associated with this event, if any.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.ConnectionEventArgs.CriticalHandle">
+ <summary>
+ The critical handle associated with this event, if any.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.ConnectionEventArgs.Text">
+ <summary>
+ Command or message text associated with this event, if any.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.ConnectionEventArgs.Data">
+ <summary>
+ Extra data associated with this event, if any.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.ConnectionEventArgs.#ctor(System.Data.SQLite.SQLiteConnectionEventType,System.Data.StateChangeEventArgs,System.Data.IDbTransaction,System.Data.IDbCommand,System.Data.IDataReader,System.Runtime.InteropServices.CriticalHandle,System.String,System.Object)">
+ <summary>
+ Constructs the object.
+ </summary>
+ <param name="eventType">The type of event being raised.</param>
+ <param name="eventArgs">The base <see cref="F:System.Data.SQLite.ConnectionEventArgs.EventArgs"/> associated
+ with this event, if any.</param>
+ <param name="transaction">The transaction associated with this event, if any.</param>
+ <param name="command">The command associated with this event, if any.</param>
+ <param name="dataReader">The data reader associated with this event, if any.</param>
+ <param name="criticalHandle">The critical handle associated with this event, if any.</param>
+ <param name="text">The command or message text, if any.</param>
+ <param name="data">The extra data, if any.</param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteConnectionEventHandler">
+ <summary>
+ Raised when an event pertaining to a connection occurs.
+ </summary>
+ <param name="sender">The connection involved.</param>
+ <param name="e">Extra information about the event.</param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteConnection">
+ <summary>
+ SQLite implentation of DbConnection.
+ </summary>
+ <remarks>
+ The <see cref="P:System.Data.SQLite.SQLiteConnection.ConnectionString"/> property can contain the following parameter(s), delimited with a semi-colon:
+ <list type="table">
+ <listheader>
+ <term>Parameter</term>
+ <term>Values</term>
+ <term>Required</term>
+ <term>Default</term>
+ </listheader>
+ <item>
+ <description>Data Source</description>
+ <description>
+ This may be a file name, the string ":memory:", or any supported URI (starting with SQLite 3.7.7).
+ Starting with release 1.0.86.0, in order to use more than one consecutive backslash (e.g. for a
+ UNC path), each of the adjoining backslash characters must be doubled (e.g. "\\Network\Share\test.db"
+ would become "\\\\Network\Share\test.db").
+ </description>
+ <description>Y</description>
+ <description></description>
+ </item>
+ <item>
+ <description>Uri</description>
+ <description>
+ If specified, this must be a file name that starts with "file://", "file:", or "/". Any leading
+ "file://" or "file:" prefix will be stripped off and the resulting file name will be used to open
+ the database.
+ </description>
+ <description>N</description>
+ <description>null</description>
+ </item>
+ <item>
+ <description>FullUri</description>
+ <description>
+ If specified, this must be a URI in a format recognized by the SQLite core library (starting with
+ SQLite 3.7.7). It will be passed verbatim to the SQLite core library.
+ </description>
+ <description>N</description>
+ <description>null</description>
+ </item>
+ <item>
+ <description>Version</description>
+ <description>3</description>
+ <description>N</description>
+ <description>3</description>
+ </item>
+ <item>
+ <description>UseUTF16Encoding</description>
+ <description>
+ <b>True</b> - The UTF-16 encoding should be used.
+ <br/>
+ <b>False</b> - The UTF-8 encoding should be used.
+ </description>
+ <description>N</description>
+ <description>False</description>
+ </item>
+ <item>
+ <description>DefaultDbType</description>
+ <description>
+ This is the default <see cref="T:System.Data.DbType"/> to use when one cannot be determined based on the
+ column metadata and the configured type mappings.
+ </description>
+ <description>N</description>
+ <description>null</description>
+ </item>
+ <item>
+ <description>DefaultTypeName</description>
+ <description>
+ This is the default type name to use when one cannot be determined based on the column metadata
+ and the configured type mappings.
+ </description>
+ <description>N</description>
+ <description>null</description>
+ </item>
+ <item>
+ <description>NoDefaultFlags</description>
+ <description>
+ <b>True</b> - Do not combine the specified (or existing) connection flags with the value of the
+ <see cref="P:System.Data.SQLite.SQLiteConnection.DefaultFlags"/> property.
+ <br/>
+ <b>False</b> - Combine the specified (or existing) connection flags with the value of the
+ <see cref="P:System.Data.SQLite.SQLiteConnection.DefaultFlags"/> property.
+ </description>
+ <description>N</description>
+ <description>False</description>
+ </item>
+ <item>
+ <description>NoSharedFlags</description>
+ <description>
+ <b>True</b> - Do not combine the specified (or existing) connection flags with the value of the
+ <see cref="P:System.Data.SQLite.SQLiteConnection.SharedFlags"/> property.
+ <br/>
+ <b>False</b> - Combine the specified (or existing) connection flags with the value of the
+ <see cref="P:System.Data.SQLite.SQLiteConnection.SharedFlags"/> property.
+ </description>
+ <description>N</description>
+ <description>False</description>
+ </item>
+ <item>
+ <description>VfsName</description>
+ <description>
+ The name of the VFS to use when opening the database connection.
+ If this is not specified, the default VFS will be used.
+ </description>
+ <description>N</description>
+ <description>null</description>
+ </item>
+ <item>
+ <description>ZipVfsVersion</description>
+ <description>
+ If non-null, this is the "version" of ZipVFS to use. This requires
+ the System.Data.SQLite interop assembly -AND- primary managed assembly
+ to be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this
+ property does nothing. The valid values are "v2" and "v3". Using
+ anyother value will cause an exception to be thrown. Please see the
+ ZipVFS documentation for more information on how to use this parameter.
+ </description>
+ <description>N</description>
+ <description>null</description>
+ </item>
+ <item>
+ <description>DateTimeFormat</description>
+ <description>
+ <b>Ticks</b> - Use the value of DateTime.Ticks.<br/>
+ <b>ISO8601</b> - Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC
+ DateTime values and "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values).<br/>
+ <b>JulianDay</b> - The interval of time in days and fractions of a day since January 1, 4713 BC.<br/>
+ <b>UnixEpoch</b> - The whole number of seconds since the Unix epoch (January 1, 1970).<br/>
+ <b>InvariantCulture</b> - Any culture-independent string value that the .NET Framework can interpret as a valid DateTime.<br/>
+ <b>CurrentCulture</b> - Any string value that the .NET Framework can interpret as a valid DateTime using the current culture.</description>
+ <description>N</description>
+ <description>ISO8601</description>
+ </item>
+ <item>
+ <description>DateTimeKind</description>
+ <description>
+ <b>Unspecified</b> - Not specified as either UTC or local time.
+ <br/>
+ <b>Utc</b> - The time represented is UTC.
+ <br/>
+ <b>Local</b> - The time represented is local time.
+ </description>
+ <description>N</description>
+ <description>Unspecified</description>
+ </item>
+ <item>
+ <description>DateTimeFormatString</description>
+ <description>
+ The exact DateTime format string to use for all formatting and parsing of all DateTime
+ values for this connection.
+ </description>
+ <description>N</description>
+ <description>null</description>
+ </item>
+ <item>
+ <description>BaseSchemaName</description>
+ <description>
+ Some base data classes in the framework (e.g. those that build SQL queries dynamically)
+ assume that an ADO.NET provider cannot support an alternate catalog (i.e. database) without supporting
+ alternate schemas as well; however, SQLite does not fit into this model. Therefore, this value is used
+ as a placeholder and removed prior to preparing any SQL statements that may contain it.
+ </description>
+ <description>N</description>
+ <description>sqlite_default_schema</description>
+ </item>
+ <item>
+ <description>BinaryGUID</description>
+ <description>
+ <b>True</b> - Store GUID columns in binary form
+ <br/>
+ <b>False</b> - Store GUID columns as text
+ </description>
+ <description>N</description>
+ <description>True</description>
+ </item>
+ <item>
+ <description>Cache Size</description>
+ <description>
+ If the argument N is positive then the suggested cache size is set to N.
+ If the argument N is negative, then the number of cache pages is adjusted
+ to use approximately abs(N*4096) bytes of memory. Backwards compatibility
+ note: The behavior of cache_size with a negative N was different in SQLite
+ versions prior to 3.7.10. In version 3.7.9 and earlier, the number of
+ pages in the cache was set to the absolute value of N.
+ </description>
+ <description>N</description>
+ <description>-2000</description>
+ </item>
+ <item>
+ <description>Synchronous</description>
+ <description>
+ <b>Normal</b> - Normal file flushing behavior
+ <br/>
+ <b>Full</b> - Full flushing after all writes
+ <br/>
+ <b>Off</b> - Underlying OS flushes I/O's
+ </description>
+ <description>N</description>
+ <description>Full</description>
+ </item>
+ <item>
+ <description>Page Size</description>
+ <description>{size in bytes}</description>
+ <description>N</description>
+ <description>4096</description>
+ </item>
+ <item>
+ <description>Password</description>
+ <description>
+ {password} - Using this parameter requires that the legacy CryptoAPI based
+ codec (or the SQLite Encryption Extension) be enabled at compile-time for
+ both the native interop assembly and the core managed assemblies; otherwise,
+ using this parameter may result in an exception being thrown when attempting
+ to open the connection.
+ </description>
+ <description>N</description>
+ <description></description>
+ </item>
+ <item>
+ <description>HexPassword</description>
+ <description>
+ {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded
+ byte values without a leading "0x" prefix. Using this parameter requires
+ that the legacy CryptoAPI based codec (or the SQLite Encryption Extension)
+ be enabled at compile-time for both the native interop assembly and the
+ core managed assemblies; otherwise, using this parameter may result in an
+ exception being thrown when attempting to open the connection.
+ </description>
+ <description>N</description>
+ <description></description>
+ </item>
+ <item>
+ <description>Enlist</description>
+ <description>
+ <b>Y</b> - Automatically enlist in distributed transactions
+ <br/>
+ <b>N</b> - No automatic enlistment
+ </description>
+ <description>N</description>
+ <description>Y</description>
+ </item>
+ <item>
+ <description>Pooling</description>
+ <description>
+ <b>True</b> - Use connection pooling.<br/>
+ <b>False</b> - Do not use connection pooling.<br/><br/>
+ <b>WARNING:</b> When using the default connection pool implementation,
+ setting this property to True should be avoided by applications that make
+ use of COM (either directly or indirectly) due to possible deadlocks that
+ can occur during the finalization of some COM objects.
+ </description>
+ <description>N</description>
+ <description>False</description>
+ </item>
+ <item>
+ <description>FailIfMissing</description>
+ <description>
+ <b>True</b> - Don't create the database if it does not exist, throw an error instead
+ <br/>
+ <b>False</b> - Automatically create the database if it does not exist
+ </description>
+ <description>N</description>
+ <description>False</description>
+ </item>
+ <item>
+ <description>Max Page Count</description>
+ <description>{size in pages} - Limits the maximum number of pages (limits the size) of the database</description>
+ <description>N</description>
+ <description>0</description>
+ </item>
+ <item>
+ <description>Legacy Format</description>
+ <description>
+ <b>True</b> - Use the more compatible legacy 3.x database format
+ <br/>
+ <b>False</b> - Use the newer 3.3x database format which compresses numbers more effectively
+ </description>
+ <description>N</description>
+ <description>False</description>
+ </item>
+ <item>
+ <description>Default Timeout</description>
+ <description>{time in seconds}<br/>The default command timeout</description>
+ <description>N</description>
+ <description>30</description>
+ </item>
+ <item>
+ <description>BusyTimeout</description>
+ <description>{time in milliseconds}<br/>Sets the busy timeout for the core library.</description>
+ <description>N</description>
+ <description>0</description>
+ </item>
+ <item>
+ <description>WaitTimeout</description>
+ <description>{time in milliseconds}<br/>
+ <b>EXPERIMENTAL</b> -- The wait timeout to use with
+ <see cref="M:System.Data.SQLite.SQLiteConnection.WaitForEnlistmentReset(System.Int32,System.Nullable{System.Boolean})"/> method. This is only used when
+ waiting for the enlistment to be reset prior to enlisting in a transaction,
+ and then only when the appropriate connection flag is set.</description>
+ <description>N</description>
+ <description>30000</description>
+ </item>
+ <item>
+ <description>Journal Mode</description>
+ <description>
+ <b>Delete</b> - Delete the journal file after a commit.
+ <br/>
+ <b>Persist</b> - Zero out and leave the journal file on disk after a
+ commit.
+ <br/>
+ <b>Off</b> - Disable the rollback journal entirely. This saves disk I/O
+ but at the expense of database safety and integrity. If the application
+ using SQLite crashes in the middle of a transaction when this journaling
+ mode is set, then the database file will very likely go corrupt.
+ <br/>
+ <b>Truncate</b> - Truncate the journal file to zero-length instead of
+ deleting it.
+ <br/>
+ <b>Memory</b> - Store the journal in volatile RAM. This saves disk I/O
+ but at the expense of database safety and integrity. If the application
+ using SQLite crashes in the middle of a transaction when this journaling
+ mode is set, then the database file will very likely go corrupt.
+ <br/>
+ <b>Wal</b> - Use a write-ahead log instead of a rollback journal.
+ </description>
+ <description>N</description>
+ <description>Delete</description>
+ </item>
+ <item>
+ <description>Read Only</description>
+ <description>
+ <b>True</b> - Open the database for read only access
+ <br/>
+ <b>False</b> - Open the database for normal read/write access
+ </description>
+ <description>N</description>
+ <description>False</description>
+ </item>
+ <item>
+ <description>Max Pool Size</description>
+ <description>The maximum number of connections for the given connection string that can be in the connection pool</description>
+ <description>N</description>
+ <description>100</description>
+ </item>
+ <item>
+ <description>Default IsolationLevel</description>
+ <description>The default transaciton isolation level</description>
+ <description>N</description>
+ <description>Serializable</description>
+ </item>
+ <item>
+ <description>Foreign Keys</description>
+ <description>Enable foreign key constraints</description>
+ <description>N</description>
+ <description>False</description>
+ </item>
+ <item>
+ <description>Flags</description>
+ <description>Extra behavioral flags for the connection. See the <see cref="T:System.Data.SQLite.SQLiteConnectionFlags"/> enumeration for possible values.</description>
+ <description>N</description>
+ <description>Default</description>
+ </item>
+ <item>
+ <description>SetDefaults</description>
+ <description>
+ <b>True</b> - Apply the default connection settings to the opened database.<br/>
+ <b>False</b> - Skip applying the default connection settings to the opened database.
+ </description>
+ <description>N</description>
+ <description>True</description>
+ </item>
+ <item>
+ <description>ToFullPath</description>
+ <description>
+ <b>True</b> - Attempt to expand the data source file name to a fully qualified path before opening.
+ <br/>
+ <b>False</b> - Skip attempting to expand the data source file name to a fully qualified path before opening.
+ </description>
+ <description>N</description>
+ <description>True</description>
+ </item>
+ <item>
+ <description>PrepareRetries</description>
+ <description>
+ The maximum number of retries when preparing SQL to be executed. This
+ normally only applies to preparation errors resulting from the database
+ schema being changed.
+ </description>
+ <description>N</description>
+ <description>3</description>
+ </item>
+ <item>
+ <description>ProgressOps</description>
+ <description>
+ The approximate number of virtual machine instructions between progress
+ events. In order for progress events to actually fire, the event handler
+ must be added to the <see cref="E:System.Data.SQLite.SQLiteConnection.Progress"/> event as well.
+ </description>
+ <description>N</description>
+ <description>0</description>
+ </item>
+ <item>
+ <description>Recursive Triggers</description>
+ <description>
+ <b>True</b> - Enable the recursive trigger capability.
+ <b>False</b> - Disable the recursive trigger capability.
+ </description>
+ <description>N</description>
+ <description>False</description>
+ </item>
+ </list>
+ </remarks>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection.BadDbType">
+ <summary>
+ The "invalid value" for the <see cref="T:System.Data.DbType"/> enumeration used
+ by the <see cref="P:System.Data.SQLite.SQLiteConnection.DefaultDbType"/> property. This constant is shared
+ by this class and the SQLiteConnectionStringBuilder class.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection.DefaultBaseSchemaName">
+ <summary>
+ The default "stub" (i.e. placeholder) base schema name to use when
+ returning column schema information. Used as the initial value of
+ the BaseSchemaName property. This should start with "sqlite_*"
+ because those names are reserved for use by SQLite (i.e. they cannot
+ be confused with the names of user objects).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._assembly">
+ <summary>
+ The managed assembly containing this type.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._syncRoot">
+ <summary>
+ Object used to synchronize access to the static instance data
+ for this class.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._sharedFlags">
+ <summary>
+ The extra connection flags to be used for all opened connections.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._lastConnectionInOpen">
+ <summary>
+ The <see cref="T:System.Data.SQLite.SQLiteConnection"/> instance (for this thread) that
+ had the most recent call to <see cref="M:System.Data.SQLite.SQLiteConnection.Open"/>.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._connectionState">
+ <summary>
+ State of the current connection
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._connectionString">
+ <summary>
+ The connection string
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._transactionLevel">
+ <summary>
+ Nesting level of the transactions open on the connection
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._transactionSequence">
+ <summary>
+ Transaction counter for the connection. Currently, this is only used
+ to build SAVEPOINT names.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._noDispose">
+ <summary>
+ If this flag is non-zero, the <see cref="M:System.Data.SQLite.SQLiteConnection.Dispose"/> method will have
+ no effect; however, the <see cref="M:System.Data.SQLite.SQLiteConnection.Close"/> method will continue to
+ behave as normal.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._disposing">
+ <summary>
+ If set, then the connection is currently being disposed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._defaultIsolation">
+ <summary>
+ The default isolation level for new transactions
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._enlistmentSyncRoot">
+ <summary>
+ This object is used with lock statements to synchronize access to the
+ <see cref="F:System.Data.SQLite.SQLiteConnection._enlistment"/> field, below.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._enlistment">
+ <summary>
+ Whether or not the connection is enlisted in a distrubuted transaction
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._typeNames">
+ <summary>
+ The per-connection mappings between type names and <see cref="T:System.Data.DbType"/>
+ values. These mappings override the corresponding global mappings.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._typeCallbacks">
+ <summary>
+ The per-connection mappings between type names and optional callbacks
+ for parameter binding and value reading.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._sql">
+ <summary>
+ The base SQLite object to interop with
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._dataSource">
+ <summary>
+ The database filename minus path and extension
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._baseSchemaName">
+ <summary>
+ The "stub" (i.e. placeholder) base schema name to use when returning
+ column schema information.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._flags">
+ <summary>
+ The extra behavioral flags for this connection, if any. See the
+ <see cref="T:System.Data.SQLite.SQLiteConnectionFlags"/> enumeration for a list of
+ possible values.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._cachedSettings">
+ <summary>
+ The cached values for all settings that have been fetched on behalf
+ of this connection. This cache may be cleared by calling the
+ <see cref="M:System.Data.SQLite.SQLiteConnection.ClearCachedSettings"/> method.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._defaultDbType">
+ <summary>
+ The default databse type for this connection. This value will only
+ be used if the <see cref="F:System.Data.SQLite.SQLiteConnectionFlags.UseConnectionTypes"/>
+ flag is set.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._defaultTypeName">
+ <summary>
+ The default databse type name for this connection. This value will only
+ be used if the <see cref="F:System.Data.SQLite.SQLiteConnectionFlags.UseConnectionTypes"/>
+ flag is set.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._vfsName">
+ <summary>
+ The name of the VFS to be used when opening the database connection.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._defaultTimeout">
+ <summary>
+ Default command timeout
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._busyTimeout">
+ <summary>
+ The default busy timeout to use with the SQLite core library. This is
+ only used when opening a connection.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._waitTimeout">
+ <summary>
+ The default wait timeout to use with <see cref="M:System.Data.SQLite.SQLiteConnection.WaitForEnlistmentReset(System.Int32,System.Nullable{System.Boolean})"/>
+ method. This is only used when waiting for the enlistment to be reset
+ prior to enlisting in a transaction, and then only when the appropriate
+ connection flag is set.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._prepareRetries">
+ <summary>
+ The maximum number of retries when preparing SQL to be executed. This
+ normally only applies to preparation errors resulting from the database
+ schema being changed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._progressOps">
+ <summary>
+ The approximate number of virtual machine instructions between progress
+ events. In order for progress events to actually fire, the event handler
+ must be added to the <see cref="E:System.Data.SQLite.SQLiteConnection.Progress"/> event as
+ well. This value will only be used when opening the database.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnection._parseViaFramework">
+ <summary>
+ Non-zero if the built-in (i.e. framework provided) connection string
+ parser should be used when opening the connection.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.#ctor">
+ <overloads>
+ Constructs a new SQLiteConnection object
+ </overloads>
+ <summary>
+ Default constructor
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.#ctor(System.String)">
+ <summary>
+ Initializes the connection with the specified connection string.
+ </summary>
+ <param name="connectionString">The connection string to use.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.#ctor(System.IntPtr,System.String,System.Boolean)">
+ <summary>
+ Initializes the connection with a pre-existing native connection handle.
+ This constructor overload is intended to be used only by the private
+ <see cref="M:System.Data.SQLite.SQLiteModule.CreateOrConnect(System.Boolean,System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </summary>
+ <param name="db">
+ The native connection handle to use.
+ </param>
+ <param name="fileName">
+ The file name corresponding to the native connection handle.
+ </param>
+ <param name="ownHandle">
+ Non-zero if this instance owns the native connection handle and
+ should dispose of it when it is no longer needed.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.#ctor(System.String,System.Boolean)">
+ <summary>
+ Initializes the connection with the specified connection string.
+ </summary>
+ <param name="connectionString">
+ The connection string to use.
+ </param>
+ <param name="parseViaFramework">
+ Non-zero to parse the connection string using the built-in (i.e.
+ framework provided) parser when opening the connection.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.#ctor(System.Data.SQLite.SQLiteConnection)">
+ <summary>
+ Clones the settings and connection string from an existing connection. If the existing connection is already open, this
+ function will open its own connection, enumerate any attached databases of the original connection, and automatically
+ attach to them.
+ </summary>
+ <param name="connection">The connection to copy the settings from.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.GetNativeHandle(System.Data.SQLite.SQLiteConnection)">
+ <summary>
+ Attempts to lookup the native handle associated with the connection. An exception will
+ be thrown if this cannot be accomplished.
+ </summary>
+ <param name="connection">
+ The connection associated with the desired native handle.
+ </param>
+ <returns>
+ The native handle associated with the connection or <see cref="F:System.IntPtr.Zero"/> if it
+ cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.OnChanged(System.Data.SQLite.SQLiteConnection,System.Data.SQLite.ConnectionEventArgs)">
+ <summary>
+ Raises the <see cref="E:System.Data.SQLite.SQLiteConnection.Changed"/> event.
+ </summary>
+ <param name="connection">
+ The connection associated with this event. If this parameter is not
+ null and the specified connection cannot raise events, then the
+ registered event handlers will not be invoked.
+ </param>
+ <param name="e">
+ A <see cref="T:System.Data.SQLite.ConnectionEventArgs"/> that contains the event data.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.CreateHandle(System.IntPtr)">
+ <summary>
+ Creates and returns a new managed database connection handle. This
+ method is intended to be used by implementations of the
+ <see cref="T:System.Data.SQLite.ISQLiteConnectionPool"/> interface only. In theory, it
+ could be used by other classes; however, that usage is not supported.
+ </summary>
+ <param name="nativeHandle">
+ This must be a native database connection handle returned by the
+ SQLite core library and it must remain valid and open during the
+ entire duration of the calling method.
+ </param>
+ <returns>
+ The new managed database connection handle or null if it cannot be
+ created.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.BackupDatabase(System.Data.SQLite.SQLiteConnection,System.String,System.String,System.Int32,System.Data.SQLite.SQLiteBackupCallback,System.Int32)">
+ <summary>
+ Backs up the database, using the specified database connection as the
+ destination.
+ </summary>
+ <param name="destination">The destination database connection.</param>
+ <param name="destinationName">The destination database name.</param>
+ <param name="sourceName">The source database name.</param>
+ <param name="pages">
+ The number of pages to copy at a time -OR- a negative value to copy all
+ pages. When a negative value is used, the <paramref name="callback" />
+ may never be invoked.
+ </param>
+ <param name="callback">
+ The method to invoke between each step of the backup process. This
+ parameter may be null (i.e. no callbacks will be performed). If the
+ callback returns false -OR- throws an exception, the backup is canceled.
+ </param>
+ <param name="retryMilliseconds">
+ The number of milliseconds to sleep after encountering a locking error
+ during the backup process. A value less than zero means that no sleep
+ should be performed.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ClearCachedSettings">
+ <summary>
+ Clears the per-connection cached settings.
+ </summary>
+ <returns>
+ The total number of per-connection settings cleared.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.TryGetCachedSetting(System.String,System.Object,System.Object@)">
+ <summary>
+ Queries and returns the value of the specified setting, using the
+ cached setting names and values for this connection, when available.
+ </summary>
+ <param name="name">
+ The name of the setting.
+ </param>
+ <param name="default">
+ The value to be returned if the setting has not been set explicitly
+ or cannot be determined.
+ </param>
+ <param name="value">
+ The value of the cached setting is stored here if found; otherwise,
+ the value of <paramref name="default" /> is stored here.
+ </param>
+ <returns>
+ Non-zero if the cached setting was found; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.SetCachedSetting(System.String,System.Object)">
+ <summary>
+ Adds or sets the cached setting specified by <paramref name="name" />
+ to the value specified by <paramref name="value" />.
+ </summary>
+ <param name="name">
+ The name of the cached setting to add or replace.
+ </param>
+ <param name="value">
+ The new value of the cached setting.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ClearTypeMappings">
+ <summary>
+ Clears the per-connection type mappings.
+ </summary>
+ <returns>
+ The total number of per-connection type mappings cleared.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.GetTypeMappings">
+ <summary>
+ Returns the per-connection type mappings.
+ </summary>
+ <returns>
+ The per-connection type mappings -OR- null if they are unavailable.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.AddTypeMapping(System.String,System.Data.DbType,System.Boolean)">
+ <summary>
+ Adds a per-connection type mapping, possibly replacing one or more
+ that already exist.
+ </summary>
+ <param name="typeName">
+ The case-insensitive database type name (e.g. "MYDATE"). The value
+ of this parameter cannot be null. Using an empty string value (or
+ a string value consisting entirely of whitespace) for this parameter
+ is not recommended.
+ </param>
+ <param name="dataType">
+ The <see cref="T:System.Data.DbType"/> value that should be associated with the
+ specified type name.
+ </param>
+ <param name="primary">
+ Non-zero if this mapping should be considered to be the primary one
+ for the specified <see cref="T:System.Data.DbType"/>.
+ </param>
+ <returns>
+ A negative value if nothing was done. Zero if no per-connection type
+ mappings were replaced (i.e. it was a pure add operation). More than
+ zero if some per-connection type mappings were replaced.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ClearTypeCallbacks">
+ <summary>
+ Clears the per-connection type callbacks.
+ </summary>
+ <returns>
+ The total number of per-connection type callbacks cleared.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.TryGetTypeCallbacks(System.String,System.Data.SQLite.SQLiteTypeCallbacks@)">
+ <summary>
+ Attempts to get the per-connection type callbacks for the specified
+ database type name.
+ </summary>
+ <param name="typeName">
+ The database type name.
+ </param>
+ <param name="callbacks">
+ Upon success, this parameter will contain the object holding the
+ callbacks for the database type name. Upon failure, this parameter
+ will be null.
+ </param>
+ <returns>
+ Non-zero upon success; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.SetTypeCallbacks(System.String,System.Data.SQLite.SQLiteTypeCallbacks)">
+ <summary>
+ Sets, resets, or clears the per-connection type callbacks for the
+ specified database type name.
+ </summary>
+ <param name="typeName">
+ The database type name.
+ </param>
+ <param name="callbacks">
+ The object holding the callbacks for the database type name. If
+ this parameter is null, any callbacks for the database type name
+ will be removed if they are present.
+ </param>
+ <returns>
+ Non-zero if callbacks were set or removed; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.BindFunction(System.Data.SQLite.SQLiteFunctionAttribute,System.Data.SQLite.SQLiteFunction)">
+ <summary>
+ Attempts to bind the specified <see cref="T:System.Data.SQLite.SQLiteFunction"/> object
+ instance to this connection.
+ </summary>
+ <param name="functionAttribute">
+ The <see cref="T:System.Data.SQLite.SQLiteFunctionAttribute"/> object instance containing
+ the metadata for the function to be bound.
+ </param>
+ <param name="function">
+ The <see cref="T:System.Data.SQLite.SQLiteFunction"/> object instance that implements the
+ function to be bound.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.BindFunction(System.Data.SQLite.SQLiteFunctionAttribute,System.Delegate,System.Delegate)">
+ <summary>
+ Attempts to bind the specified <see cref="T:System.Data.SQLite.SQLiteFunction"/> object
+ instance to this connection.
+ </summary>
+ <param name="functionAttribute">
+ The <see cref="T:System.Data.SQLite.SQLiteFunctionAttribute"/> object instance containing
+ the metadata for the function to be bound.
+ </param>
+ <param name="callback1">
+ A <see cref="T:System.Delegate"/> object instance that helps implement the
+ function to be bound. For scalar functions, this corresponds to the
+ <see cref="T:System.Data.SQLite.SQLiteInvokeDelegate"/> type. For aggregate functions,
+ this corresponds to the <see cref="T:System.Data.SQLite.SQLiteStepDelegate"/> type. For
+ collation functions, this corresponds to the
+ <see cref="T:System.Data.SQLite.SQLiteCompareDelegate"/> type.
+ </param>
+ <param name="callback2">
+ A <see cref="T:System.Delegate"/> object instance that helps implement the
+ function to be bound. For aggregate functions, this corresponds to the
+ <see cref="T:System.Data.SQLite.SQLiteFinalDelegate"/> type. For other callback types, it
+ is not used and must be null.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.UnbindFunction(System.Data.SQLite.SQLiteFunctionAttribute)">
+ <summary>
+ Attempts to unbind the specified <see cref="T:System.Data.SQLite.SQLiteFunction"/> object
+ instance to this connection.
+ </summary>
+ <param name="functionAttribute">
+ The <see cref="T:System.Data.SQLite.SQLiteFunctionAttribute"/> object instance containing
+ the metadata for the function to be unbound.
+ </param>
+ <returns>Non-zero if the function was unbound.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.UnbindAllFunctions(System.Boolean)">
+ <summary>
+ This method unbinds all registered (known) functions -OR- all previously
+ bound user-defined functions from this connection.
+ </summary>
+ <param name="registered">
+ Non-zero to unbind all registered (known) functions -OR- zero to unbind
+ all functions currently bound to the connection.
+ </param>
+ <returns>
+ Non-zero if all the specified user-defined functions were unbound.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ParseConnectionString(System.String,System.Boolean,System.Boolean)">
+ <summary>
+ Parses a connection string into component parts using the custom
+ connection string parser. An exception may be thrown if the syntax
+ of the connection string is incorrect.
+ </summary>
+ <param name="connectionString">
+ The connection string to parse.
+ </param>
+ <param name="parseViaFramework">
+ Non-zero to parse the connection string using the algorithm provided
+ by the framework itself. This is not applicable when running on the
+ .NET Compact Framework.
+ </param>
+ <param name="allowNameOnly">
+ Non-zero if names are allowed without values.
+ </param>
+ <returns>
+ The list of key/value pairs corresponding to the parameters specified
+ within the connection string.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ParseConnectionString(System.Data.SQLite.SQLiteConnection,System.String,System.Boolean,System.Boolean)">
+ <summary>
+ Parses a connection string into component parts using the custom
+ connection string parser. An exception may be thrown if the syntax
+ of the connection string is incorrect.
+ </summary>
+ <param name="connection">
+ The connection that will be using the parsed connection string.
+ </param>
+ <param name="connectionString">
+ The connection string to parse.
+ </param>
+ <param name="parseViaFramework">
+ Non-zero to parse the connection string using the algorithm provided
+ by the framework itself. This is not applicable when running on the
+ .NET Compact Framework.
+ </param>
+ <param name="allowNameOnly">
+ Non-zero if names are allowed without values.
+ </param>
+ <returns>
+ The list of key/value pairs corresponding to the parameters specified
+ within the connection string.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Dispose">
+ <summary>
+ Disposes and finalizes the connection, if applicable.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Dispose(System.Boolean)">
+ <summary>
+ Cleans up resources (native and managed) associated with the current instance.
+ </summary>
+ <param name="disposing">
+ Zero when being disposed via garbage collection; otherwise, non-zero.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Clone">
+ <summary>
+ Creates a clone of the connection. All attached databases and user-defined functions are cloned. If the existing connection is open, the cloned connection
+ will also be opened.
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.CreateFile(System.String)">
+ <summary>
+ Creates a database file. This just creates a zero-byte file which SQLite
+ will turn into a database when the file is opened properly.
+ </summary>
+ <param name="databaseFileName">The file to create</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.OnStateChange(System.Data.ConnectionState,System.Data.StateChangeEventArgs@)">
+ <summary>
+ Raises the state change event when the state of the connection changes
+ </summary>
+ <param name="newState">The new connection state. If this is different
+ from the previous state, the <see cref="E:System.Data.SQLite.SQLiteConnection.StateChange"/> event is
+ raised.</param>
+ <param name="eventArgs">The event data created for the raised event, if
+ it was actually raised.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.GetFallbackDefaultIsolationLevel">
+ <summary>
+ Determines and returns the fallback default isolation level when one cannot be
+ obtained from an existing connection instance.
+ </summary>
+ <returns>
+ The fallback default isolation level for this connection instance -OR-
+ <see cref="F:System.Data.IsolationLevel.Unspecified"/> if it cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.GetDefaultIsolationLevel">
+ <summary>
+ Determines and returns the default isolation level for this connection instance.
+ </summary>
+ <returns>
+ The default isolation level for this connection instance -OR-
+ <see cref="F:System.Data.IsolationLevel.Unspecified"/> if it cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.BeginTransaction(System.Data.IsolationLevel,System.Boolean)">
+ <summary>
+ OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection.
+ </summary>
+ <param name="isolationLevel">This parameter is ignored.</param>
+ <param name="deferredLock">When TRUE, SQLite defers obtaining a write lock until a write operation is requested.
+ When FALSE, a writelock is obtained immediately. The default is TRUE, but in a multi-threaded multi-writer
+ environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock.</param>
+ <returns>Returns a SQLiteTransaction object.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.BeginTransaction(System.Boolean)">
+ <summary>
+ OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection.
+ </summary>
+ <param name="deferredLock">When TRUE, SQLite defers obtaining a write lock until a write operation is requested.
+ When FALSE, a writelock is obtained immediately. The default is false, but in a multi-threaded multi-writer
+ environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock.</param>
+ <returns>Returns a SQLiteTransaction object.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.BeginTransaction(System.Data.IsolationLevel)">
+ <summary>
+ Creates a new <see cref="T:System.Data.SQLite.SQLiteTransaction"/> if one isn't already active on the connection.
+ </summary>
+ <param name="isolationLevel">Supported isolation levels are Serializable, ReadCommitted and Unspecified.</param>
+ <remarks>
+ Unspecified will use the default isolation level specified in the connection string. If no isolation level is specified in the
+ connection string, Serializable is used.
+ Serializable transactions are the default. In this mode, the engine gets an immediate lock on the database, and no other threads
+ may begin a transaction. Other threads may read from the database, but not write.
+ With a ReadCommitted isolation level, locks are deferred and elevated as needed. It is possible for multiple threads to start
+ a transaction in ReadCommitted mode, but if a thread attempts to commit a transaction while another thread
+ has a ReadCommitted lock, it may timeout or cause a deadlock on both threads until both threads' CommandTimeout's are reached.
+ </remarks>
+ <returns>Returns a SQLiteTransaction object.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.BeginTransaction">
+ <summary>
+ Creates a new <see cref="T:System.Data.SQLite.SQLiteTransaction"/> if one isn't already
+ active on the connection.
+ </summary>
+ <returns>Returns the new transaction object.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.BeginDbTransaction(System.Data.IsolationLevel)">
+ <summary>
+ Forwards to the local <see cref="M:System.Data.SQLite.SQLiteConnection.BeginTransaction(System.Data.IsolationLevel)"/> function
+ </summary>
+ <param name="isolationLevel">Supported isolation levels are Unspecified, Serializable, and ReadCommitted</param>
+ <returns></returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ChangeDatabase(System.String)">
+ <summary>
+ This method is not implemented; however, the <see cref="E:System.Data.SQLite.SQLiteConnection.Changed"/>
+ event will still be raised.
+ </summary>
+ <param name="databaseName"></param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Close">
+ <summary>
+ When the database connection is closed, all commands linked to this connection are automatically reset.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ClearPool(System.Data.SQLite.SQLiteConnection)">
+ <summary>
+ Clears the connection pool associated with the connection. Any other active connections using the same database file
+ will be discarded instead of returned to the pool when they are closed.
+ </summary>
+ <param name="connection"></param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ClearAllPools">
+ <summary>
+ Clears all connection pools. Any active connections will be discarded instead of sent to the pool when they are closed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.CreateCommand">
+ <summary>
+ Create a new <see cref="T:System.Data.SQLite.SQLiteCommand"/> and associate it with this connection.
+ </summary>
+ <returns>Returns a new command object already assigned to this connection.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.CreateDbCommand">
+ <summary>
+ Forwards to the local <see cref="M:System.Data.SQLite.SQLiteConnection.CreateCommand"/> function.
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.CreateSession(System.String)">
+ <summary>
+ Attempts to create a new <see cref="T:System.Data.SQLite.ISQLiteSession"/> object instance
+ using this connection and the specified database name.
+ </summary>
+ <param name="databaseName">
+ The name of the database for the newly created session.
+ </param>
+ <returns>
+ The newly created session -OR- null if it cannot be created.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.CreateChangeSet(System.Byte[])">
+ <summary>
+ Attempts to create a new <see cref="T:System.Data.SQLite.ISQLiteChangeSet"/> object instance
+ using this connection and the specified raw data.
+ </summary>
+ <param name="rawData">
+ The raw data that contains a change set (or patch set).
+ </param>
+ <returns>
+ The newly created change set -OR- null if it cannot be created.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.CreateChangeSet(System.Byte[],System.Data.SQLite.SQLiteChangeSetStartFlags)">
+ <summary>
+ Attempts to create a new <see cref="T:System.Data.SQLite.ISQLiteChangeSet"/> object instance
+ using this connection and the specified raw data.
+ </summary>
+ <param name="rawData">
+ The raw data that contains a change set (or patch set).
+ </param>
+ <param name="flags">
+ The flags used to create the change set iterator.
+ </param>
+ <returns>
+ The newly created change set -OR- null if it cannot be created.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.CreateChangeSet(System.IO.Stream,System.IO.Stream)">
+ <summary>
+ Attempts to create a new <see cref="T:System.Data.SQLite.ISQLiteChangeSet"/> object instance
+ using this connection and the specified stream.
+ </summary>
+ <param name="inputStream">
+ The stream where the raw data that contains a change set (or patch set)
+ may be read.
+ </param>
+ <param name="outputStream">
+ The stream where the raw data that contains a change set (or patch set)
+ may be written.
+ </param>
+ <returns>
+ The newly created change set -OR- null if it cannot be created.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.CreateChangeSet(System.IO.Stream,System.IO.Stream,System.Data.SQLite.SQLiteChangeSetStartFlags)">
+ <summary>
+ Attempts to create a new <see cref="T:System.Data.SQLite.ISQLiteChangeSet"/> object instance
+ using this connection and the specified stream.
+ </summary>
+ <param name="inputStream">
+ The stream where the raw data that contains a change set (or patch set)
+ may be read.
+ </param>
+ <param name="outputStream">
+ The stream where the raw data that contains a change set (or patch set)
+ may be written.
+ </param>
+ <param name="flags">
+ The flags used to create the change set iterator.
+ </param>
+ <returns>
+ The newly created change set -OR- null if it cannot be created.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.CreateChangeGroup">
+ <summary>
+ Attempts to create a new <see cref="T:System.Data.SQLite.ISQLiteChangeGroup"/> object
+ instance using this connection.
+ </summary>
+ <returns>
+ The newly created change group -OR- null if it cannot be created.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ShouldUseLegacyConnectionStringParser(System.Data.SQLite.SQLiteConnection)">
+ <summary>
+ Determines if the legacy connection string parser should be used.
+ </summary>
+ <param name="connection">
+ The connection that will be using the parsed connection string.
+ </param>
+ <returns>
+ Non-zero if the legacy connection string parser should be used.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ParseConnectionString(System.String,System.Boolean)">
+ <summary>
+ Parses a connection string into component parts using the custom
+ connection string parser. An exception may be thrown if the syntax
+ of the connection string is incorrect.
+ </summary>
+ <param name="connectionString">
+ The connection string to parse.
+ </param>
+ <param name="allowNameOnly">
+ Non-zero if names are allowed without values.
+ </param>
+ <returns>
+ The list of key/value pairs corresponding to the parameters specified
+ within the connection string.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ParseConnectionString(System.Data.SQLite.SQLiteConnection,System.String,System.Boolean)">
+ <summary>
+ Parses a connection string into component parts using the custom
+ connection string parser. An exception may be thrown if the syntax
+ of the connection string is incorrect.
+ </summary>
+ <param name="connection">
+ The connection that will be using the parsed connection string.
+ </param>
+ <param name="connectionString">
+ The connection string to parse.
+ </param>
+ <param name="allowNameOnly">
+ Non-zero if names are allowed without values.
+ </param>
+ <returns>
+ The list of key/value pairs corresponding to the parameters specified
+ within the connection string.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ParseConnectionStringViaFramework(System.Data.SQLite.SQLiteConnection,System.String,System.Boolean)">
+ <summary>
+ Parses a connection string using the built-in (i.e. framework provided)
+ connection string parser class and returns the key/value pairs. An
+ exception may be thrown if the connection string is invalid or cannot be
+ parsed. When compiled for the .NET Compact Framework, the custom
+ connection string parser is always used instead because the framework
+ provided one is unavailable there.
+ </summary>
+ <param name="connection">
+ The connection that will be using the parsed connection string.
+ </param>
+ <param name="connectionString">
+ The connection string to parse.
+ </param>
+ <param name="strict">
+ Non-zero to throw an exception if any connection string values are not of
+ the <see cref="T:System.String"/> type. This is not applicable when running on
+ the .NET Compact Framework.
+ </param>
+ <returns>The list of key/value pairs.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.EnlistTransaction(System.Transactions.Transaction)">
+ <summary>
+ Manual distributed transaction enlistment support
+ </summary>
+ <param name="transaction">The distributed transaction to enlist in</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.WaitForEnlistmentReset(System.Int32,System.Nullable{System.Boolean})">
+ <summary>
+ <b>EXPERIMENTAL</b> --
+ Waits for the enlistment associated with this connection to be reset.
+ This method always throws <see cref="T:System.NotImplementedException"/> when
+ running on the .NET Compact Framework.
+ </summary>
+ <param name="timeoutMilliseconds">
+ The approximate maximum number of milliseconds to wait before timing
+ out the wait operation.
+ </param>
+ <param name="returnOnDisposed">
+ The return value to use if the connection has been disposed; if this
+ value is null, <see cref="T:System.ObjectDisposedException"/> will be raised
+ if the connection has been disposed.
+ </param>
+ <returns>
+ Non-zero if the enlistment assciated with this connection was reset;
+ otherwise, zero. It should be noted that this method returning a
+ non-zero value does not necessarily guarantee that the connection
+ can enlist in a new transaction (i.e. due to potentical race with
+ other threads); therefore, callers should generally use try/catch
+ when calling the <see cref="M:System.Data.SQLite.SQLiteConnection.EnlistTransaction(System.Transactions.Transaction)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.FindKey(System.Collections.Generic.SortedList{System.String,System.String},System.String,System.String)">
+ <summary>
+ Looks for a key in the array of key/values of the parameter string. If not found, return the specified default value
+ </summary>
+ <param name="items">The list to look in</param>
+ <param name="key">The key to find</param>
+ <param name="defValue">The default value to return if the key is not found</param>
+ <returns>The value corresponding to the specified key, or the default value if not found.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.TryParseEnum(System.Type,System.String,System.Boolean)">
+ <summary>
+ Attempts to convert the string value to an enumerated value of the specified type.
+ </summary>
+ <param name="type">The enumerated type to convert the string value to.</param>
+ <param name="value">The string value to be converted.</param>
+ <param name="ignoreCase">Non-zero to make the conversion case-insensitive.</param>
+ <returns>The enumerated value upon success or null upon error.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.TryParseByte(System.String,System.Globalization.NumberStyles,System.Byte@)">
+ <summary>
+ Attempts to convert an input string into a byte value.
+ </summary>
+ <param name="value">
+ The string value to be converted.
+ </param>
+ <param name="style">
+ The number styles to use for the conversion.
+ </param>
+ <param name="result">
+ Upon sucess, this will contain the parsed byte value.
+ Upon failure, the value of this parameter is undefined.
+ </param>
+ <returns>
+ Non-zero upon success; zero on failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.SetLimitOption(System.Data.SQLite.SQLiteLimitOpsEnum,System.Int32)">
+ <summary>
+ Change a limit value for the database.
+ </summary>
+ <param name="option">
+ The database limit to change.
+ </param>
+ <param name="value">
+ The new value for the specified limit.
+ </param>
+ <returns>
+ The old value for the specified limit -OR- negative one if an error
+ occurs.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.SetConfigurationOption(System.Data.SQLite.SQLiteConfigDbOpsEnum,System.Object)">
+ <summary>
+ Change a configuration option value for the database.
+ </summary>
+ <param name="option">
+ The database configuration option to change.
+ </param>
+ <param name="value">
+ The new value for the specified configuration option.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.EnableExtensions(System.Boolean)">
+ <summary>
+ Enables or disables extension loading.
+ </summary>
+ <param name="enable">
+ True to enable loading of extensions, false to disable.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.LoadExtension(System.String)">
+ <summary>
+ Loads a SQLite extension library from the named dynamic link library file.
+ </summary>
+ <param name="fileName">
+ The name of the dynamic link library file containing the extension.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.LoadExtension(System.String,System.String)">
+ <summary>
+ Loads a SQLite extension library from the named dynamic link library file.
+ </summary>
+ <param name="fileName">
+ The name of the dynamic link library file containing the extension.
+ </param>
+ <param name="procName">
+ The name of the exported function used to initialize the extension.
+ If null, the default "sqlite3_extension_init" will be used.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.CreateModule(System.Data.SQLite.SQLiteModule)">
+ <summary>
+ Creates a disposable module containing the implementation of a virtual
+ table.
+ </summary>
+ <param name="module">
+ The module object to be used when creating the disposable module.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.FromHexString(System.String)">
+ <summary>
+ Parses a string containing a sequence of zero or more hexadecimal
+ encoded byte values and returns the resulting byte array. The
+ "0x" prefix is not allowed on the input string.
+ </summary>
+ <param name="text">
+ The input string containing zero or more hexadecimal encoded byte
+ values.
+ </param>
+ <returns>
+ A byte array containing the parsed byte values or null if an error
+ was encountered.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ToHexString(System.Byte[])">
+ <summary>
+ Creates and returns a string containing the hexadecimal encoded byte
+ values from the input array.
+ </summary>
+ <param name="array">
+ The input array of bytes.
+ </param>
+ <returns>
+ The resulting string or null upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.FromHexString(System.String,System.String@)">
+ <summary>
+ Parses a string containing a sequence of zero or more hexadecimal
+ encoded byte values and returns the resulting byte array. The
+ "0x" prefix is not allowed on the input string.
+ </summary>
+ <param name="text">
+ The input string containing zero or more hexadecimal encoded byte
+ values.
+ </param>
+ <param name="error">
+ Upon failure, this will contain an appropriate error message.
+ </param>
+ <returns>
+ A byte array containing the parsed byte values or null if an error
+ was encountered.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.GetDefaultPooling">
+ <summary>
+ This method figures out what the default connection pool setting should
+ be based on the connection flags. When present, the "Pooling" connection
+ string property value always overrides the value returned by this method.
+ </summary>
+ <returns>
+ Non-zero if the connection pool should be enabled by default; otherwise,
+ zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.GetEffectiveIsolationLevel(System.Data.IsolationLevel)">
+ <summary>
+ Determines the transaction isolation level that should be used by
+ the caller, primarily based upon the one specified by the caller.
+ If mapping of transaction isolation levels is enabled, the returned
+ transaction isolation level may be significantly different than the
+ originally specified one.
+ </summary>
+ <param name="isolationLevel">
+ The originally specified transaction isolation level.
+ </param>
+ <returns>
+ The transaction isolation level that should be used.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Open">
+ <summary>
+ Opens the connection using the parameters found in the <see cref="P:System.Data.SQLite.SQLiteConnection.ConnectionString"/>.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.OpenAndReturn">
+ <summary>
+ Opens the connection using the parameters found in the <see cref="P:System.Data.SQLite.SQLiteConnection.ConnectionString"/> and then returns it.
+ </summary>
+ <returns>The current connection object.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Cancel">
+ <summary>
+ This method causes any pending database operation to abort and return at
+ its earliest opportunity. This routine is typically called in response
+ to a user action such as pressing "Cancel" or Ctrl-C where the user wants
+ a long query operation to halt immediately. It is safe to call this
+ routine from any thread. However, it is not safe to call this routine
+ with a database connection that is closed or might close before this method
+ returns.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.IsReadOnly(System.String)">
+ <summary>
+ Checks if this connection to the specified database should be considered
+ read-only. An exception will be thrown if the database name specified
+ via <paramref name="name" /> cannot be found.
+ </summary>
+ <param name="name">
+ The name of a database associated with this connection -OR- null for the
+ main database.
+ </param>
+ <returns>
+ Non-zero if this connection to the specified database should be considered
+ read-only.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.GetMemoryStatistics(System.Collections.Generic.IDictionary{System.String,System.Int64}@)">
+ <summary>
+ Returns various global memory statistics for the SQLite core library via
+ a dictionary of key/value pairs. Currently, only the "MemoryUsed" and
+ "MemoryHighwater" keys are returned and they have values that correspond
+ to the values that could be obtained via the <see cref="P:System.Data.SQLite.SQLiteConnection.MemoryUsed"/>
+ and <see cref="P:System.Data.SQLite.SQLiteConnection.MemoryHighwater"/> connection properties.
+ </summary>
+ <param name="statistics">
+ This dictionary will be populated with the global memory statistics. It
+ will be created if necessary.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ReleaseMemory">
+ <summary>
+ Attempts to free as much heap memory as possible for this database connection.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ReleaseMemory(System.Int32,System.Boolean,System.Boolean,System.Int32@,System.Boolean@,System.UInt32@)">
+ <summary>
+ Attempts to free N bytes of heap memory by deallocating non-essential memory
+ allocations held by the database library. Memory used to cache database pages
+ to improve performance is an example of non-essential memory. This is a no-op
+ returning zero if the SQLite core library was not compiled with the compile-time
+ option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or
+ compact the Win32 native heap, if applicable.
+ </summary>
+ <param name="nBytes">
+ The requested number of bytes to free.
+ </param>
+ <param name="reset">
+ Non-zero to attempt a heap reset.
+ </param>
+ <param name="compact">
+ Non-zero to attempt heap compaction.
+ </param>
+ <param name="nFree">
+ The number of bytes actually freed. This value may be zero.
+ </param>
+ <param name="resetOk">
+ This value will be non-zero if the heap reset was successful.
+ </param>
+ <param name="nLargest">
+ The size of the largest committed free block in the heap, in bytes.
+ This value will be zero unless heap compaction is enabled.
+ </param>
+ <returns>
+ A standard SQLite return code (i.e. zero for success and non-zero
+ for failure).
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.SetMemoryStatus(System.Boolean)">
+ <summary>
+ Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled.
+ If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is
+ global to the process.
+ </summary>
+ <param name="value">Non-zero to enable memory usage tracking, zero otherwise.</param>
+ <returns>A standard SQLite return code (i.e. zero for success and non-zero for failure).</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.TryGetLastCachedSetting(System.String,System.Object,System.Object@)">
+ <summary>
+ Queries and returns the value of the specified setting, using the
+ cached setting names and values for the last connection that used
+ the <see cref="M:System.Data.SQLite.SQLiteConnection.Open"/> method, when available.
+ </summary>
+ <param name="name">
+ The name of the setting.
+ </param>
+ <param name="default">
+ The value to be returned if the setting has not been set explicitly
+ or cannot be determined.
+ </param>
+ <param name="value">
+ The value of the cached setting is stored here if found; otherwise,
+ the value of <paramref name="default"/> is stored here.
+ </param>
+ <returns>
+ Non-zero if the cached setting was found; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.SetLastCachedSetting(System.String,System.Object)">
+ <summary>
+ Adds or sets the cached setting specified by <paramref name="name"/>
+ to the value specified by <paramref name="value"/> using the cached
+ setting names and values for the last connection that used the
+ <see cref="M:System.Data.SQLite.SQLiteConnection.Open"/> method, when available.
+ </summary>
+ <param name="name">
+ The name of the cached setting to add or replace.
+ </param>
+ <param name="value">
+ The new value of the cached setting.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Shutdown">
+ <summary>
+ Passes a shutdown request to the SQLite core library. Does not throw
+ an exception if the shutdown request fails.
+ </summary>
+ <returns>
+ A standard SQLite return code (i.e. zero for success and non-zero for
+ failure).
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Shutdown(System.Boolean,System.Boolean)">
+ <summary>
+ Passes a shutdown request to the SQLite core library. Throws an
+ exception if the shutdown request fails and the no-throw parameter
+ is non-zero.
+ </summary>
+ <param name="directories">
+ Non-zero to reset the database and temporary directories to their
+ default values, which should be null for both.
+ </param>
+ <param name="noThrow">
+ When non-zero, throw an exception if the shutdown request fails.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.SetExtendedResultCodes(System.Boolean)">
+ Enables or disables extended result codes returned by SQLite
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ResultCode">
+ Enables or disables extended result codes returned by SQLite
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ExtendedResultCode">
+ Enables or disables extended result codes returned by SQLite
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.LogMessage(System.Data.SQLite.SQLiteErrorCode,System.String)">
+ Add a log message via the SQLite sqlite3_log interface.
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.LogMessage(System.Int32,System.String)">
+ Add a log message via the SQLite sqlite3_log interface.
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.SetAvRetry(System.Int32@,System.Int32@)">
+ <summary>
+ Queries or modifies the number of retries or the retry interval (in milliseconds) for
+ certain I/O operations that may fail due to anti-virus software.
+ </summary>
+ <param name="count">The number of times to retry the I/O operation. A negative value
+ will cause the current count to be queried and replace that negative value.</param>
+ <param name="interval">The number of milliseconds to wait before retrying the I/O
+ operation. This number is multiplied by the number of retry attempts so far to come
+ up with the final number of milliseconds to wait. A negative value will cause the
+ current interval to be queried and replace that negative value.</param>
+ <returns>Zero for success, non-zero for error.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.SetChunkSize(System.Int32)">
+ <summary>
+ Sets the chunk size for the primary file associated with this database
+ connection.
+ </summary>
+ <param name="size">
+ The new chunk size for the main database, in bytes.
+ </param>
+ <returns>
+ Zero for success, non-zero for error.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.UnwrapString(System.String)">
+ <summary>
+ Removes one set of surrounding single -OR- double quotes from the string
+ value and returns the resulting string value. If the string is null, empty,
+ or contains quotes that are not balanced, nothing is done and the original
+ string value will be returned.
+ </summary>
+ <param name="value">The string value to process.</param>
+ <returns>
+ The string value, modified to remove one set of surrounding single -OR-
+ double quotes, if applicable.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.GetDataDirectory">
+ <summary>
+ Determines the directory to be used when dealing with the "|DataDirectory|"
+ macro in a database file name.
+ </summary>
+ <returns>
+ The directory to use in place of the "|DataDirectory|" macro -OR- null if it
+ cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.ExpandFileName(System.String,System.Boolean)">
+ <summary>
+ Expand the filename of the data source, resolving the |DataDirectory|
+ macro as appropriate.
+ </summary>
+ <param name="sourceFile">The database filename to expand</param>
+ <param name="toFullPath">
+ Non-zero if the returned file name should be converted to a full path
+ (except when using the .NET Compact Framework).
+ </param>
+ <returns>The expanded path and filename of the filename</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.GetSchema">
+ <overloads>
+ The following commands are used to extract schema information out of the database. Valid schema types are:
+ <list type="bullet">
+ <item>
+ <description>MetaDataCollections</description>
+ </item>
+ <item>
+ <description>DataSourceInformation</description>
+ </item>
+ <item>
+ <description>Catalogs</description>
+ </item>
+ <item>
+ <description>Columns</description>
+ </item>
+ <item>
+ <description>ForeignKeys</description>
+ </item>
+ <item>
+ <description>Indexes</description>
+ </item>
+ <item>
+ <description>IndexColumns</description>
+ </item>
+ <item>
+ <description>Tables</description>
+ </item>
+ <item>
+ <description>Views</description>
+ </item>
+ <item>
+ <description>ViewColumns</description>
+ </item>
+ </list>
+ </overloads>
+ <summary>
+ Returns the MetaDataCollections schema
+ </summary>
+ <returns>A DataTable of the MetaDataCollections schema</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.GetSchema(System.String)">
+ <summary>
+ Returns schema information of the specified collection
+ </summary>
+ <param name="collectionName">The schema collection to retrieve</param>
+ <returns>A DataTable of the specified collection</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.GetSchema(System.String,System.String[])">
+ <summary>
+ Retrieves schema information using the specified constraint(s) for the specified collection
+ </summary>
+ <param name="collectionName">The collection to retrieve.</param>
+ <param name="restrictionValues">
+ The restrictions to impose. Typically, this may include:
+ <list type="table">
+ <listheader>
+ <term>restrictionValues element index</term>
+ <term>usage</term>
+ </listheader>
+ <item>
+ <description>0</description>
+ <description>The database (or catalog) name, if applicable.</description>
+ </item>
+ <item>
+ <description>1</description>
+ <description>The schema name. This is not used by this provider.</description>
+ </item>
+ <item>
+ <description>2</description>
+ <description>The table name, if applicable.</description>
+ </item>
+ <item>
+ <description>3</description>
+ <description>
+ Depends on <paramref name="collectionName" />.
+ When "IndexColumns", it is the index name; otherwise, it is the column name.
+ </description>
+ </item>
+ <item>
+ <description>4</description>
+ <description>
+ Depends on <paramref name="collectionName" />.
+ When "IndexColumns", it is the column name; otherwise, it is not used.
+ </description>
+ </item>
+ </list>
+ </param>
+ <returns>A DataTable of the specified collection</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Schema_MetaDataCollections">
+ <summary>
+ Builds a MetaDataCollections schema datatable
+ </summary>
+ <returns>DataTable</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Schema_DataSourceInformation">
+ <summary>
+ Builds a DataSourceInformation datatable
+ </summary>
+ <returns>DataTable</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Schema_Columns(System.String,System.String,System.String)">
+ <summary>
+ Build a Columns schema
+ </summary>
+ <param name="strCatalog">The catalog (attached database) to query, can be null</param>
+ <param name="strTable">The table to retrieve schema information for, can be null</param>
+ <param name="strColumn">The column to retrieve schema information for, can be null</param>
+ <returns>DataTable</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Schema_Indexes(System.String,System.String,System.String)">
+ <summary>
+ Returns index information for the given database and catalog
+ </summary>
+ <param name="strCatalog">The catalog (attached database) to query, can be null</param>
+ <param name="strIndex">The name of the index to retrieve information for, can be null</param>
+ <param name="strTable">The table to retrieve index information for, can be null</param>
+ <returns>DataTable</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Schema_Tables(System.String,System.String,System.String)">
+ <summary>
+ Retrieves table schema information for the database and catalog
+ </summary>
+ <param name="strCatalog">The catalog (attached database) to retrieve tables on</param>
+ <param name="strTable">The table to retrieve, can be null</param>
+ <param name="strType">The table type, can be null</param>
+ <returns>DataTable</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Schema_Views(System.String,System.String)">
+ <summary>
+ Retrieves view schema information for the database
+ </summary>
+ <param name="strCatalog">The catalog (attached database) to retrieve views on</param>
+ <param name="strView">The view name, can be null</param>
+ <returns>DataTable</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Schema_Catalogs(System.String)">
+ <summary>
+ Retrieves catalog (attached databases) schema information for the database
+ </summary>
+ <param name="strCatalog">The catalog to retrieve, can be null</param>
+ <returns>DataTable</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Schema_IndexColumns(System.String,System.String,System.String,System.String)">
+ <summary>
+ Returns the base column information for indexes in a database
+ </summary>
+ <param name="strCatalog">The catalog to retrieve indexes for (can be null)</param>
+ <param name="strTable">The table to restrict index information by (can be null)</param>
+ <param name="strIndex">The index to restrict index information by (can be null)</param>
+ <param name="strColumn">The source column to restrict index information by (can be null)</param>
+ <returns>A DataTable containing the results</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Schema_ViewColumns(System.String,System.String,System.String)">
+ <summary>
+ Returns detailed column information for a specified view
+ </summary>
+ <param name="strCatalog">The catalog to retrieve columns for (can be null)</param>
+ <param name="strView">The view to restrict column information by (can be null)</param>
+ <param name="strColumn">The source column to restrict column information by (can be null)</param>
+ <returns>A DataTable containing the results</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnection.Schema_ForeignKeys(System.String,System.String,System.String)">
+ <summary>
+ Retrieves foreign key information from the specified set of filters
+ </summary>
+ <param name="strCatalog">An optional catalog to restrict results on</param>
+ <param name="strTable">An optional table to restrict results on</param>
+ <param name="strKeyName">An optional foreign key name to restrict results on</param>
+ <returns>A DataTable with the results of the query</returns>
+ </member>
+ <member name="E:System.Data.SQLite.SQLiteConnection._handlers">
+ <summary>
+ Static variable to store the connection event handlers to call.
+ </summary>
+ </member>
+ <member name="E:System.Data.SQLite.SQLiteConnection.StateChange">
+ <summary>
+ This event is raised whenever the database is opened or closed.
+ </summary>
+ </member>
+ <member name="E:System.Data.SQLite.SQLiteConnection.Changed">
+ <summary>
+ This event is raised when events related to the lifecycle of a
+ SQLiteConnection object occur.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.ConnectionPool">
+ <summary>
+ This property is used to obtain or set the custom connection pool
+ implementation to use, if any. Setting this property to null will
+ cause the default connection pool implementation to be used.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.PoolCount">
+ <summary>
+ Returns the number of pool entries for the file name associated with this connection.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.ConnectionString">
+ <summary>
+ The connection string containing the parameters for the connection
+ </summary>
+ <remarks>
+ For the complete list of supported connection string properties,
+ please see <see cref="T:System.Data.SQLite.SQLiteConnection"/>.
+ </remarks>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.DataSource">
+ <summary>
+ Returns the data source file name without extension or path.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.FileName">
+ <summary>
+ Returns the fully qualified path and file name for the currently open
+ database, if any.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.Database">
+ <summary>
+ Returns the string "main".
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.DefaultTimeout">
+ <summary>
+ Gets/sets the default command timeout for newly-created commands. This is especially useful for
+ commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible.
+ This can also be set in the ConnectionString with "Default Timeout"
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.BusyTimeout">
+ <summary>
+ Gets/sets the default busy timeout to use with the SQLite core library. This is only used when
+ opening a connection.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.WaitTimeout">
+ <summary>
+ <b>EXPERIMENTAL</b> --
+ The wait timeout to use with <see cref="M:System.Data.SQLite.SQLiteConnection.WaitForEnlistmentReset(System.Int32,System.Nullable{System.Boolean})"/> method.
+ This is only used when waiting for the enlistment to be reset prior to
+ enlisting in a transaction, and then only when the appropriate connection
+ flag is set.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.PrepareRetries">
+ <summary>
+ The maximum number of retries when preparing SQL to be executed. This
+ normally only applies to preparation errors resulting from the database
+ schema being changed.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.ProgressOps">
+ <summary>
+ The approximate number of virtual machine instructions between progress
+ events. In order for progress events to actually fire, the event handler
+ must be added to the <see cref="E:System.Data.SQLite.SQLiteConnection.Progress"/> event as
+ well. This value will only be used when the underlying native progress
+ callback needs to be changed.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.ParseViaFramework">
+ <summary>
+ Non-zero if the built-in (i.e. framework provided) connection string
+ parser should be used when opening the connection.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.Flags">
+ <summary>
+ Gets/sets the extra behavioral flags for this connection. See the
+ <see cref="T:System.Data.SQLite.SQLiteConnectionFlags"/> enumeration for a list of
+ possible values.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.DefaultDbType">
+ <summary>
+ Gets/sets the default database type for this connection. This value
+ will only be used when not null.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.DefaultTypeName">
+ <summary>
+ Gets/sets the default database type name for this connection. This
+ value will only be used when not null.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.VfsName">
+ <summary>
+ Gets/sets the VFS name for this connection. This value will only be
+ used when opening the database.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.OwnHandle">
+ <summary>
+ Returns non-zero if the underlying native connection handle is
+ owned by this instance.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.ServerVersion">
+ <summary>
+ Returns the version of the underlying SQLite database engine
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.LastInsertRowId">
+ <summary>
+ Returns the rowid of the most recent successful INSERT into the database from this connection.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.Changes">
+ <summary>
+ Returns the number of rows changed by the last INSERT, UPDATE, or DELETE statement executed on
+ this connection.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.AutoCommit">
+ <summary>
+ Returns non-zero if the given database connection is in autocommit mode.
+ Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN
+ statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.MemoryUsed">
+ <summary>
+ Returns the amount of memory (in bytes) currently in use by the SQLite core library.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.MemoryHighwater">
+ <summary>
+ Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.DefineConstants">
+ <summary>
+ Returns a string containing the define constants (i.e. compile-time
+ options) used to compile the core managed assembly, delimited with
+ spaces.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.SQLiteVersion">
+ <summary>
+ Returns the version of the underlying SQLite core library.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.SQLiteSourceId">
+ <summary>
+ This method returns the string whose value is the same as the
+ SQLITE_SOURCE_ID C preprocessor macro used when compiling the
+ SQLite core library.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.SQLiteCompileOptions">
+ <summary>
+ Returns a string containing the compile-time options used to
+ compile the SQLite core native library, delimited with spaces.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.InteropVersion">
+ <summary>
+ This method returns the version of the interop SQLite assembly
+ used. If the SQLite interop assembly is not in use or the
+ necessary information cannot be obtained for any reason, a null
+ value may be returned.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.InteropSourceId">
+ <summary>
+ This method returns the string whose value contains the unique
+ identifier for the source checkout used to build the interop
+ assembly. If the SQLite interop assembly is not in use or the
+ necessary information cannot be obtained for any reason, a null
+ value may be returned.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.InteropCompileOptions">
+ <summary>
+ Returns a string containing the compile-time options used to
+ compile the SQLite interop assembly, delimited with spaces.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.ProviderVersion">
+ <summary>
+ This method returns the version of the managed components used
+ to interact with the SQLite core library. If the necessary
+ information cannot be obtained for any reason, a null value may
+ be returned.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.ProviderSourceId">
+ <summary>
+ This method returns the string whose value contains the unique
+ identifier for the source checkout used to build the managed
+ components currently executing. If the necessary information
+ cannot be obtained for any reason, a null value may be returned.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.DefaultFlags">
+ <summary>
+ The default connection flags to be used for all opened connections
+ when they are not present in the connection string.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.SharedFlags">
+ <summary>
+ The extra connection flags to be used for all opened connections.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.State">
+ <summary>
+ Returns the state of the connection.
+ </summary>
+ </member>
+ <member name="E:System.Data.SQLite.SQLiteConnection.Progress">
+ <summary>
+ This event is raised periodically during long running queries. Changing
+ the value of the <see cref="F:System.Data.SQLite.ProgressEventArgs.ReturnCode"/> property will
+ determine if the operation in progress will continue or be interrupted.
+ For the entire duration of the event, the associated connection and
+ statement objects must not be modified, either directly or indirectly, by
+ the called code.
+ </summary>
+ </member>
+ <member name="E:System.Data.SQLite.SQLiteConnection.Authorize">
+ <summary>
+ This event is raised whenever SQLite encounters an action covered by the
+ authorizer during query preparation. Changing the value of the
+ <see cref="F:System.Data.SQLite.AuthorizerEventArgs.ReturnCode"/> property will determine if
+ the specific action will be allowed, ignored, or denied. For the entire
+ duration of the event, the associated connection and statement objects
+ must not be modified, either directly or indirectly, by the called code.
+ </summary>
+ </member>
+ <member name="E:System.Data.SQLite.SQLiteConnection.Update">
+ <summary>
+ This event is raised whenever SQLite makes an update/delete/insert into the database on
+ this connection. It only applies to the given connection.
+ </summary>
+ </member>
+ <member name="E:System.Data.SQLite.SQLiteConnection.Commit">
+ <summary>
+ This event is raised whenever SQLite is committing a transaction.
+ Return non-zero to trigger a rollback.
+ </summary>
+ </member>
+ <member name="E:System.Data.SQLite.SQLiteConnection.Trace">
+ <summary>
+ This event is raised whenever SQLite statement first begins executing on
+ this connection. It only applies to the given connection.
+ </summary>
+ </member>
+ <member name="E:System.Data.SQLite.SQLiteConnection.RollBack">
+ <summary>
+ This event is raised whenever SQLite is rolling back a transaction.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnection.DbProviderFactory">
+ <summary>
+ Returns the <see cref="T:System.Data.SQLite.SQLiteFactory"/> instance.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SynchronizationModes">
+ <summary>
+ The I/O file cache flushing behavior for the connection
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SynchronizationModes.Normal">
+ <summary>
+ Normal file flushing at critical sections of the code
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SynchronizationModes.Full">
+ <summary>
+ Full file flushing after every write operation
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SynchronizationModes.Off">
+ <summary>
+ Use the default operating system's file flushing, SQLite does not explicitly flush the file buffers after writing
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteProgressEventHandler">
+ <summary>
+ Raised each time the number of virtual machine instructions is
+ approximately equal to the value of the
+ <see cref="P:System.Data.SQLite.SQLiteConnection.ProgressOps"/> property.
+ </summary>
+ <param name="sender">The connection performing the operation.</param>
+ <param name="e">A <see cref="T:System.Data.SQLite.ProgressEventArgs"/> that contains the
+ event data.</param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteAuthorizerEventHandler">
+ <summary>
+ Raised when authorization is required to perform an action contained
+ within a SQL query.
+ </summary>
+ <param name="sender">The connection performing the action.</param>
+ <param name="e">A <see cref="T:System.Data.SQLite.AuthorizerEventArgs"/> that contains the
+ event data.</param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteCommitHandler">
+ <summary>
+ Raised when a transaction is about to be committed. To roll back a transaction, set the
+ rollbackTrans boolean value to true.
+ </summary>
+ <param name="sender">The connection committing the transaction</param>
+ <param name="e">Event arguments on the transaction</param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteUpdateEventHandler">
+ <summary>
+ Raised when data is inserted, updated and deleted on a given connection
+ </summary>
+ <param name="sender">The connection committing the transaction</param>
+ <param name="e">The event parameters which triggered the event</param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteTraceEventHandler">
+ <summary>
+ Raised when a statement first begins executing on a given connection
+ </summary>
+ <param name="sender">The connection executing the statement</param>
+ <param name="e">Event arguments of the trace</param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteBackupCallback">
+ <summary>
+ Raised between each backup step.
+ </summary>
+ <param name="source">
+ The source database connection.
+ </param>
+ <param name="sourceName">
+ The source database name.
+ </param>
+ <param name="destination">
+ The destination database connection.
+ </param>
+ <param name="destinationName">
+ The destination database name.
+ </param>
+ <param name="pages">
+ The number of pages copied with each step.
+ </param>
+ <param name="remainingPages">
+ The number of pages remaining to be copied.
+ </param>
+ <param name="totalPages">
+ The total number of pages in the source database.
+ </param>
+ <param name="retry">
+ Set to true if the operation needs to be retried due to database
+ locking issues; otherwise, set to false.
+ </param>
+ <returns>
+ True to continue with the backup process or false to halt the backup
+ process, rolling back any changes that have been made so far.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.ProgressEventArgs">
+ <summary>
+ The event data associated with progress reporting events.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.ProgressEventArgs.UserData">
+ <summary>
+ The user-defined native data associated with this event. Currently,
+ this will always contain the value of <see cref="F:System.IntPtr.Zero"/>.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.ProgressEventArgs.ReturnCode">
+ <summary>
+ The return code for the current call into the progress callback.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.ProgressEventArgs.#ctor">
+ <summary>
+ Constructs an instance of this class with default property values.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.ProgressEventArgs.#ctor(System.IntPtr,System.Data.SQLite.SQLiteProgressReturnCode)">
+ <summary>
+ Constructs an instance of this class with specific property values.
+ </summary>
+ <param name="pUserData">
+ The user-defined native data associated with this event.
+ </param>
+ <param name="returnCode">
+ The progress return code.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.AuthorizerEventArgs">
+ <summary>
+ The data associated with a call into the authorizer.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.AuthorizerEventArgs.UserData">
+ <summary>
+ The user-defined native data associated with this event. Currently,
+ this will always contain the value of <see cref="F:System.IntPtr.Zero"/>.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.AuthorizerEventArgs.ActionCode">
+ <summary>
+ The action code responsible for the current call into the authorizer.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.AuthorizerEventArgs.Argument1">
+ <summary>
+ The first string argument for the current call into the authorizer.
+ The exact value will vary based on the action code, see the
+ <see cref="T:System.Data.SQLite.SQLiteAuthorizerActionCode"/> enumeration for possible
+ values.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.AuthorizerEventArgs.Argument2">
+ <summary>
+ The second string argument for the current call into the authorizer.
+ The exact value will vary based on the action code, see the
+ <see cref="T:System.Data.SQLite.SQLiteAuthorizerActionCode"/> enumeration for possible
+ values.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.AuthorizerEventArgs.Database">
+ <summary>
+ The database name for the current call into the authorizer, if
+ applicable.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.AuthorizerEventArgs.Context">
+ <summary>
+ The name of the inner-most trigger or view that is responsible for
+ the access attempt or a null value if this access attempt is directly
+ from top-level SQL code.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.AuthorizerEventArgs.ReturnCode">
+ <summary>
+ The return code for the current call into the authorizer.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.AuthorizerEventArgs.#ctor">
+ <summary>
+ Constructs an instance of this class with default property values.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.AuthorizerEventArgs.#ctor(System.IntPtr,System.Data.SQLite.SQLiteAuthorizerActionCode,System.String,System.String,System.String,System.String,System.Data.SQLite.SQLiteAuthorizerReturnCode)">
+ <summary>
+ Constructs an instance of this class with specific property values.
+ </summary>
+ <param name="pUserData">
+ The user-defined native data associated with this event.
+ </param>
+ <param name="actionCode">
+ The authorizer action code.
+ </param>
+ <param name="argument1">
+ The first authorizer argument.
+ </param>
+ <param name="argument2">
+ The second authorizer argument.
+ </param>
+ <param name="database">
+ The database name, if applicable.
+ </param>
+ <param name="context">
+ The name of the inner-most trigger or view that is responsible for
+ the access attempt or a null value if this access attempt is directly
+ from top-level SQL code.
+ </param>
+ <param name="returnCode">
+ The authorizer return code.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.UpdateEventType">
+ <summary>
+ Whenever an update event is triggered on a connection, this enum will indicate
+ exactly what type of operation is being performed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UpdateEventType.Delete">
+ <summary>
+ A row is being deleted from the given database and table
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UpdateEventType.Insert">
+ <summary>
+ A row is being inserted into the table.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UpdateEventType.Update">
+ <summary>
+ A row is being updated in the table.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.UpdateEventArgs">
+ <summary>
+ Passed during an Update callback, these event arguments detail the type of update operation being performed
+ on the given connection.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UpdateEventArgs.Database">
+ <summary>
+ The name of the database being updated (usually "main" but can be any attached or temporary database)
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UpdateEventArgs.Table">
+ <summary>
+ The name of the table being updated
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UpdateEventArgs.Event">
+ <summary>
+ The type of update being performed (insert/update/delete)
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UpdateEventArgs.RowId">
+ <summary>
+ The RowId affected by this update.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.CommitEventArgs">
+ <summary>
+ Event arguments raised when a transaction is being committed
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.CommitEventArgs.AbortTransaction">
+ <summary>
+ Set to true to abort the transaction and trigger a rollback
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.TraceEventArgs">
+ <summary>
+ Passed during an Trace callback, these event arguments contain the UTF-8 rendering of the SQL statement text
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.TraceEventArgs.Statement">
+ <summary>
+ SQL statement text as the statement first begins executing
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.ISQLiteConnectionPool">
+ <summary>
+ This interface represents a custom connection pool implementation
+ usable by System.Data.SQLite.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteConnectionPool.GetCounts(System.String,System.Collections.Generic.Dictionary{System.String,System.Int32}@,System.Int32@,System.Int32@,System.Int32@)">
+ <summary>
+ Counts the number of pool entries matching the specified file name.
+ </summary>
+ <param name="fileName">
+ The file name to match or null to match all files.
+ </param>
+ <param name="counts">
+ The pool entry counts for each matching file.
+ </param>
+ <param name="openCount">
+ The total number of connections successfully opened from any pool.
+ </param>
+ <param name="closeCount">
+ The total number of connections successfully closed from any pool.
+ </param>
+ <param name="totalCount">
+ The total number of pool entries for all matching files.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteConnectionPool.ClearPool(System.String)">
+ <summary>
+ Disposes of all pooled connections associated with the specified
+ database file name.
+ </summary>
+ <param name="fileName">
+ The database file name.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteConnectionPool.ClearAllPools">
+ <summary>
+ Disposes of all pooled connections.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteConnectionPool.Add(System.String,System.Object,System.Int32)">
+ <summary>
+ Adds a connection to the pool of those associated with the
+ specified database file name.
+ </summary>
+ <param name="fileName">
+ The database file name.
+ </param>
+ <param name="handle">
+ The database connection handle.
+ </param>
+ <param name="version">
+ The connection pool version at the point the database connection
+ handle was received from the connection pool. This is also the
+ connection pool version that the database connection handle was
+ created under.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteConnectionPool.Remove(System.String,System.Int32,System.Int32@)">
+ <summary>
+ Removes a connection from the pool of those associated with the
+ specified database file name with the intent of using it to
+ interact with the database.
+ </summary>
+ <param name="fileName">
+ The database file name.
+ </param>
+ <param name="maxPoolSize">
+ The new maximum size of the connection pool for the specified
+ database file name.
+ </param>
+ <param name="version">
+ The connection pool version associated with the returned database
+ connection handle, if any.
+ </param>
+ <returns>
+ The database connection handle associated with the specified
+ database file name or null if it cannot be obtained.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteConnectionPool">
+ <summary>
+ This default method implementations in this class should not be used by
+ applications that make use of COM (either directly or indirectly) due
+ to possible deadlocks that can occur during finalization of some COM
+ objects.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionPool._syncRoot">
+ <summary>
+ This field is used to synchronize access to the private static data
+ in this class.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionPool._connectionPool">
+ <summary>
+ When this field is non-null, it will be used to provide the
+ implementation of all the connection pool methods; otherwise,
+ the default method implementations will be used.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionPool._queueList">
+ <summary>
+ The dictionary of connection pools, based on the normalized file
+ name of the SQLite database.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionPool._poolVersion">
+ <summary>
+ The default version number new pools will get.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionPool._poolOpened">
+ <summary>
+ The number of connections successfully opened from any pool.
+ This value is incremented by the Remove method.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionPool._poolClosed">
+ <summary>
+ The number of connections successfully closed from any pool.
+ This value is incremented by the Add method.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionPool.GetCounts(System.String,System.Collections.Generic.Dictionary{System.String,System.Int32}@,System.Int32@,System.Int32@,System.Int32@)">
+ <summary>
+ Counts the number of pool entries matching the specified file name.
+ </summary>
+ <param name="fileName">
+ The file name to match or null to match all files.
+ </param>
+ <param name="counts">
+ The pool entry counts for each matching file.
+ </param>
+ <param name="openCount">
+ The total number of connections successfully opened from any pool.
+ </param>
+ <param name="closeCount">
+ The total number of connections successfully closed from any pool.
+ </param>
+ <param name="totalCount">
+ The total number of pool entries for all matching files.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionPool.ClearPool(System.String)">
+ <summary>
+ Disposes of all pooled connections associated with the specified
+ database file name.
+ </summary>
+ <param name="fileName">
+ The database file name.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionPool.ClearAllPools">
+ <summary>
+ Disposes of all pooled connections.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionPool.Add(System.String,System.Data.SQLite.SQLiteConnectionHandle,System.Int32)">
+ <summary>
+ Adds a connection to the pool of those associated with the
+ specified database file name.
+ </summary>
+ <param name="fileName">
+ The database file name.
+ </param>
+ <param name="handle">
+ The database connection handle.
+ </param>
+ <param name="version">
+ The connection pool version at the point the database connection
+ handle was received from the connection pool. This is also the
+ connection pool version that the database connection handle was
+ created under.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionPool.Remove(System.String,System.Int32,System.Int32@)">
+ <summary>
+ Removes a connection from the pool of those associated with the
+ specified database file name with the intent of using it to
+ interact with the database.
+ </summary>
+ <param name="fileName">
+ The database file name.
+ </param>
+ <param name="maxPoolSize">
+ The new maximum size of the connection pool for the specified
+ database file name.
+ </param>
+ <param name="version">
+ The connection pool version associated with the returned database
+ connection handle, if any.
+ </param>
+ <returns>
+ The database connection handle associated with the specified
+ database file name or null if it cannot be obtained.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionPool.GetConnectionPool">
+ <summary>
+ This method is used to obtain a reference to the custom connection
+ pool implementation currently in use, if any.
+ </summary>
+ <returns>
+ The custom connection pool implementation or null if the default
+ connection pool implementation should be used.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionPool.SetConnectionPool(System.Data.SQLite.ISQLiteConnectionPool)">
+ <summary>
+ This method is used to set the reference to the custom connection
+ pool implementation to use, if any.
+ </summary>
+ <param name="connectionPool">
+ The custom connection pool implementation to use or null if the
+ default connection pool implementation should be used.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionPool.ResizePool(System.Data.SQLite.SQLiteConnectionPool.PoolQueue,System.Boolean)">
+ <summary>
+ We do not have to thread-lock anything in this function, because it
+ is only called by other functions above which already take the lock.
+ </summary>
+ <param name="queue">
+ The pool queue to resize.
+ </param>
+ <param name="add">
+ If a function intends to add to the pool, this is true, which
+ forces the resize to take one more than it needs from the pool.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteConnectionPool.PoolQueue">
+ <summary>
+ Keeps track of connections made on a specified file. The PoolVersion
+ dictates whether old objects get returned to the pool or discarded
+ when no longer in use.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionPool.PoolQueue.Queue">
+ <summary>
+ The queue of weak references to the actual database connection
+ handles.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionPool.PoolQueue.PoolVersion">
+ <summary>
+ This pool version associated with the database connection
+ handles in this pool queue.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionPool.PoolQueue.MaxPoolSize">
+ <summary>
+ The maximum size of this pool queue.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionPool.PoolQueue.#ctor(System.Int32,System.Int32)">
+ <summary>
+ Constructs a connection pool queue using the specified version
+ and maximum size. Normally, all the database connection
+ handles in this pool are associated with a single database file
+ name.
+ </summary>
+ <param name="version">
+ The initial pool version for this connection pool queue.
+ </param>
+ <param name="maxSize">
+ The initial maximum size for this connection pool queue.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteConnectionStringBuilder">
+ <summary>
+ SQLite implementation of DbConnectionStringBuilder.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionStringBuilder._properties">
+ <summary>
+ Properties of this class
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionStringBuilder.#ctor">
+ <overloads>
+ Constructs a new instance of the class
+ </overloads>
+ <summary>
+ Default constructor
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionStringBuilder.#ctor(System.String)">
+ <summary>
+ Constructs a new instance of the class using the specified connection string.
+ </summary>
+ <param name="connectionString">The connection string to parse</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionStringBuilder.Initialize(System.String)">
+ <summary>
+ Private initializer, which assigns the connection string and resets the builder
+ </summary>
+ <param name="cnnString">The connection string to assign</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionStringBuilder.TryGetValue(System.String,System.Object@)">
+ <summary>
+ Helper function for retrieving values from the connectionstring
+ </summary>
+ <param name="keyword">The keyword to retrieve settings for</param>
+ <param name="value">The resulting parameter value</param>
+ <returns>Returns true if the value was found and returned</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionStringBuilder.FallbackGetProperties(System.Collections.Hashtable)">
+ <summary>
+ Fallback method for MONO, which doesn't implement DbConnectionStringBuilder.GetProperties()
+ </summary>
+ <param name="propertyList">The hashtable to fill with property descriptors</param>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.Version">
+ <summary>
+ Gets/Sets the default version of the SQLite engine to instantiate. Currently the only valid value is 3, indicating version 3 of the sqlite library.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.SyncMode">
+ <summary>
+ Gets/Sets the synchronization mode (file flushing) of the connection string. Default is "Normal".
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.UseUTF16Encoding">
+ <summary>
+ Gets/Sets the encoding for the connection string. The default is "False" which indicates UTF-8 encoding.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.Pooling">
+ <summary>
+ Gets/Sets whether or not to use connection pooling. The default is "False"
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.BinaryGUID">
+ <summary>
+ Gets/Sets whethor not to store GUID's in binary format. The default is True
+ which saves space in the database.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.DataSource">
+ <summary>
+ Gets/Sets the filename to open on the connection string.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.Uri">
+ <summary>
+ An alternate to the data source property
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.FullUri">
+ <summary>
+ An alternate to the data source property that uses the SQLite URI syntax.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.DefaultTimeout">
+ <summary>
+ Gets/sets the default command timeout for newly-created commands. This is especially useful for
+ commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.BusyTimeout">
+ <summary>
+ Gets/sets the busy timeout to use with the SQLite core library.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.WaitTimeout">
+ <summary>
+ <b>EXPERIMENTAL</b> --
+ The wait timeout to use with
+ <see cref="M:System.Data.SQLite.SQLiteConnection.WaitForEnlistmentReset(System.Int32,System.Nullable{System.Boolean})"/> method.
+ This is only used when waiting for the enlistment to be reset
+ prior to enlisting in a transaction, and then only when the
+ appropriate connection flag is set.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.PrepareRetries">
+ <summary>
+ Gets/sets the maximum number of retries when preparing SQL to be executed.
+ This normally only applies to preparation errors resulting from the database
+ schema being changed.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.ProgressOps">
+ <summary>
+ Gets/sets the approximate number of virtual machine instructions between
+ progress events. In order for progress events to actually fire, the event
+ handler must be added to the <see cref="E:System.Data.SQLite.SQLiteConnection.Progress"/> event
+ as well.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.Enlist">
+ <summary>
+ Determines whether or not the connection will automatically participate
+ in the current distributed transaction (if one exists)
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.FailIfMissing">
+ <summary>
+ If set to true, will throw an exception if the database specified in the connection
+ string does not exist. If false, the database will be created automatically.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.LegacyFormat">
+ <summary>
+ If enabled, uses the legacy 3.xx format for maximum compatibility, but results in larger
+ database sizes.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.ReadOnly">
+ <summary>
+ When enabled, the database will be opened for read-only access and writing will be disabled.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.Password">
+ <summary>
+ Gets/sets the database encryption password
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.HexPassword">
+ <summary>
+ Gets/sets the database encryption hexadecimal password
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.PageSize">
+ <summary>
+ Gets/Sets the page size for the connection.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.MaxPageCount">
+ <summary>
+ Gets/Sets the maximum number of pages the database may hold
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.CacheSize">
+ <summary>
+ Gets/Sets the cache size for the connection.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.DateTimeFormat">
+ <summary>
+ Gets/Sets the DateTime format for the connection.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.DateTimeKind">
+ <summary>
+ Gets/Sets the DateTime kind for the connection.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.DateTimeFormatString">
+ <summary>
+ Gets/sets the DateTime format string used for formatting
+ and parsing purposes.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.BaseSchemaName">
+ <summary>
+ Gets/Sets the placeholder base schema name used for
+ .NET Framework compatibility purposes.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.JournalMode">
+ <summary>
+ Determines how SQLite handles the transaction journal file.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.DefaultIsolationLevel">
+ <summary>
+ Sets the default isolation level for transactions on the connection.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.DefaultDbType">
+ <summary>
+ Gets/sets the default database type for the connection.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.DefaultTypeName">
+ <summary>
+ Gets/sets the default type name for the connection.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.VfsName">
+ <summary>
+ Gets/sets the VFS name for the connection.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.ForeignKeys">
+ <summary>
+ If enabled, use foreign key constraints
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.RecursiveTriggers">
+ <summary>
+ Enable or disable the recursive trigger capability.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.ZipVfsVersion">
+ <summary>
+ If non-null, this is the version of ZipVFS to use. This requires the
+ System.Data.SQLite interop assembly -AND- primary managed assembly to
+ be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this
+ property does nothing.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.Flags">
+ <summary>
+ Gets/Sets the extra behavioral flags.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.SetDefaults">
+ <summary>
+ If enabled, apply the default connection settings to opened databases.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.ToFullPath">
+ <summary>
+ If enabled, attempt to resolve the provided data source file name to a
+ full path before opening.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.NoDefaultFlags">
+ <summary>
+ If enabled, skip using the configured default connection flags.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteConnectionStringBuilder.NoSharedFlags">
+ <summary>
+ If enabled, skip using the configured shared connection flags.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.TypeAffinity">
+ <summary>
+ SQLite has very limited types, and is inherently text-based. The first 5 types below represent the sum of all types SQLite
+ understands. The DateTime extension to the spec is for internal use only.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.TypeAffinity.Uninitialized">
+ <summary>
+ Not used
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.TypeAffinity.Int64">
+ <summary>
+ All integers in SQLite default to Int64
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.TypeAffinity.Double">
+ <summary>
+ All floating point numbers in SQLite default to double
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.TypeAffinity.Text">
+ <summary>
+ The default data type of SQLite is text
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.TypeAffinity.Blob">
+ <summary>
+ Typically blob types are only seen when returned from a function
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.TypeAffinity.Null">
+ <summary>
+ Null types can be returned from functions
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.TypeAffinity.DateTime">
+ <summary>
+ Used internally by this provider
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.TypeAffinity.None">
+ <summary>
+ Used internally by this provider
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteConnectionEventType">
+ <summary>
+ These are the event types associated with the
+ <see cref="T:System.Data.SQLite.SQLiteConnectionEventHandler"/>
+ delegate (and its corresponding event) and the
+ <see cref="T:System.Data.SQLite.ConnectionEventArgs"/> class.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.Invalid">
+ <summary>
+ Not used.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.Unknown">
+ <summary>
+ Not used.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.Opening">
+ <summary>
+ The connection is being opened.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.ConnectionString">
+ <summary>
+ The connection string has been parsed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.Opened">
+ <summary>
+ The connection was opened.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.ChangeDatabase">
+ <summary>
+ The <see cref="F:System.Data.SQLite.SQLiteConnectionEventType.ChangeDatabase"/> method was called on the
+ connection.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.NewTransaction">
+ <summary>
+ A transaction was created using the connection.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.EnlistTransaction">
+ <summary>
+ The connection was enlisted into a transaction.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.NewCommand">
+ <summary>
+ A command was created using the connection.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.NewDataReader">
+ <summary>
+ A data reader was created using the connection.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.NewCriticalHandle">
+ <summary>
+ An instance of a <see cref="T:System.Runtime.InteropServices.CriticalHandle"/> derived class has
+ been created to wrap a native resource.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.Closing">
+ <summary>
+ The connection is being closed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.Closed">
+ <summary>
+ The connection was closed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.DisposingCommand">
+ <summary>
+ A command is being disposed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.DisposingDataReader">
+ <summary>
+ A data reader is being disposed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.ClosingDataReader">
+ <summary>
+ A data reader is being closed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.OpenedFromPool">
+ <summary>
+ A native resource was opened (i.e. obtained) from the pool.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionEventType.ClosedToPool">
+ <summary>
+ A native resource was closed (i.e. released) to the pool.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteDateFormats">
+ <summary>
+ This implementation of SQLite for ADO.NET can process date/time fields in
+ databases in one of six formats.
+ </summary>
+ <remarks>
+ ISO8601 format is more compatible, readable, fully-processable, but less
+ accurate as it does not provide time down to fractions of a second.
+ JulianDay is the numeric format the SQLite uses internally and is arguably
+ the most compatible with 3rd party tools. It is not readable as text
+ without post-processing. Ticks less compatible with 3rd party tools that
+ query the database, and renders the DateTime field unreadable as text
+ without post-processing. UnixEpoch is more compatible with Unix systems.
+ InvariantCulture allows the configured format for the invariant culture
+ format to be used and is human readable. CurrentCulture allows the
+ configured format for the current culture to be used and is also human
+ readable.
+
+ The preferred order of choosing a DateTime format is JulianDay, ISO8601,
+ and then Ticks. Ticks is mainly present for legacy code support.
+ </remarks>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDateFormats.Ticks">
+ <summary>
+ Use the value of DateTime.Ticks. This value is not recommended and is not well supported with LINQ.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDateFormats.ISO8601">
+ <summary>
+ Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC DateTime values and
+ "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDateFormats.JulianDay">
+ <summary>
+ The interval of time in days and fractions of a day since January 1, 4713 BC.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDateFormats.UnixEpoch">
+ <summary>
+ The whole number of seconds since the Unix epoch (January 1, 1970).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDateFormats.InvariantCulture">
+ <summary>
+ Any culture-independent string value that the .NET Framework can interpret as a valid DateTime.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDateFormats.CurrentCulture">
+ <summary>
+ Any string value that the .NET Framework can interpret as a valid DateTime using the current culture.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDateFormats.Default">
+ <summary>
+ The default format for this provider.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteJournalModeEnum">
+ <summary>
+ This enum determines how SQLite treats its journal file.
+ </summary>
+ <remarks>
+ By default SQLite will create and delete the journal file when needed during a transaction.
+ However, for some computers running certain filesystem monitoring tools, the rapid
+ creation and deletion of the journal file can cause those programs to fail, or to interfere with SQLite.
+
+ If a program or virus scanner is interfering with SQLite's journal file, you may receive errors like "unable to open database file"
+ when starting a transaction. If this is happening, you may want to change the default journal mode to Persist.
+ </remarks>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteJournalModeEnum.Default">
+ <summary>
+ The default mode, this causes SQLite to use the existing journaling mode for the database.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteJournalModeEnum.Delete">
+ <summary>
+ SQLite will create and destroy the journal file as-needed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteJournalModeEnum.Persist">
+ <summary>
+ When this is set, SQLite will keep the journal file even after a transaction has completed. It's contents will be erased,
+ and the journal re-used as often as needed. If it is deleted, it will be recreated the next time it is needed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteJournalModeEnum.Off">
+ <summary>
+ This option disables the rollback journal entirely. Interrupted transactions or a program crash can cause database
+ corruption in this mode!
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteJournalModeEnum.Truncate">
+ <summary>
+ SQLite will truncate the journal file to zero-length instead of deleting it.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteJournalModeEnum.Memory">
+ <summary>
+ SQLite will store the journal in volatile RAM. This saves disk I/O but at the expense of database safety and integrity.
+ If the application using SQLite crashes in the middle of a transaction when the MEMORY journaling mode is set, then the
+ database file will very likely go corrupt.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteJournalModeEnum.Wal">
+ <summary>
+ SQLite uses a write-ahead log instead of a rollback journal to implement transactions. The WAL journaling mode is persistent;
+ after being set it stays in effect across multiple database connections and after closing and reopening the database. A database
+ in WAL journaling mode can only be accessed by SQLite version 3.7.0 or later.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteSynchronousEnum">
+ <summary>
+ Possible values for the "synchronous" database setting. This setting determines
+ how often the database engine calls the xSync method of the VFS.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteSynchronousEnum.Default">
+ <summary>
+ Use the default "synchronous" database setting. Currently, this should be
+ the same as using the FULL mode.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteSynchronousEnum.Off">
+ <summary>
+ The database engine continues without syncing as soon as it has handed
+ data off to the operating system. If the application running SQLite
+ crashes, the data will be safe, but the database might become corrupted
+ if the operating system crashes or the computer loses power before that
+ data has been written to the disk surface.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteSynchronousEnum.Normal">
+ <summary>
+ The database engine will still sync at the most critical moments, but
+ less often than in FULL mode. There is a very small (though non-zero)
+ chance that a power failure at just the wrong time could corrupt the
+ database in NORMAL mode.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteSynchronousEnum.Full">
+ <summary>
+ The database engine will use the xSync method of the VFS to ensure that
+ all content is safely written to the disk surface prior to continuing.
+ This ensures that an operating system crash or power failure will not
+ corrupt the database. FULL synchronous is very safe, but it is also
+ slower.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteExecuteType">
+ <summary>
+ The requested command execution type. This controls which method of the
+ <see cref="T:System.Data.SQLite.SQLiteCommand"/> object will be called.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteExecuteType.None">
+ <summary>
+ Do nothing. No method will be called.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteExecuteType.NonQuery">
+ <summary>
+ The command is not expected to return a result -OR- the result is not
+ needed. The <see cref="M:System.Data.SQLite.SQLiteCommand.ExecuteNonQuery"/> or
+ <see cref="M:System.Data.SQLite.SQLiteCommand.ExecuteNonQuery(System.Data.CommandBehavior)"/> method
+ will be called.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteExecuteType.Scalar">
+ <summary>
+ The command is expected to return a scalar result -OR- the result should
+ be limited to a scalar result. The <see cref="M:System.Data.SQLite.SQLiteCommand.ExecuteScalar"/>
+ or <see cref="M:System.Data.SQLite.SQLiteCommand.ExecuteScalar(System.Data.CommandBehavior)"/> method will
+ be called.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteExecuteType.Reader">
+ <summary>
+ The command is expected to return <see cref="T:System.Data.SQLite.SQLiteDataReader"/> result.
+ The <see cref="M:System.Data.SQLite.SQLiteCommand.ExecuteReader"/> or
+ <see cref="M:System.Data.SQLite.SQLiteCommand.ExecuteReader(System.Data.CommandBehavior)"/> method will
+ be called.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteExecuteType.Default">
+ <summary>
+ Use the default command execution type. Using this value is the same
+ as using the <see cref="F:System.Data.SQLite.SQLiteExecuteType.NonQuery"/> value.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteAuthorizerActionCode">
+ <summary>
+ The action code responsible for the current call into the authorizer.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.None">
+ <summary>
+ No action is being performed. This value should not be used from
+ external code.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Copy">
+ <summary>
+ No longer used.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.CreateIndex">
+ <summary>
+ An index will be created. The action-specific arguments are the
+ index name and the table name.
+
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.CreateTable">
+ <summary>
+ A table will be created. The action-specific arguments are the
+ table name and a null value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.CreateTempIndex">
+ <summary>
+ A temporary index will be created. The action-specific arguments
+ are the index name and the table name.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.CreateTempTable">
+ <summary>
+ A temporary table will be created. The action-specific arguments
+ are the table name and a null value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.CreateTempTrigger">
+ <summary>
+ A temporary trigger will be created. The action-specific arguments
+ are the trigger name and the table name.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.CreateTempView">
+ <summary>
+ A temporary view will be created. The action-specific arguments are
+ the view name and a null value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.CreateTrigger">
+ <summary>
+ A trigger will be created. The action-specific arguments are the
+ trigger name and the table name.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.CreateView">
+ <summary>
+ A view will be created. The action-specific arguments are the view
+ name and a null value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Delete">
+ <summary>
+ A DELETE statement will be executed. The action-specific arguments
+ are the table name and a null value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.DropIndex">
+ <summary>
+ An index will be dropped. The action-specific arguments are the
+ index name and the table name.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.DropTable">
+ <summary>
+ A table will be dropped. The action-specific arguments are the tables
+ name and a null value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.DropTempIndex">
+ <summary>
+ A temporary index will be dropped. The action-specific arguments are
+ the index name and the table name.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.DropTempTable">
+ <summary>
+ A temporary table will be dropped. The action-specific arguments are
+ the table name and a null value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.DropTempTrigger">
+ <summary>
+ A temporary trigger will be dropped. The action-specific arguments
+ are the trigger name and the table name.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.DropTempView">
+ <summary>
+ A temporary view will be dropped. The action-specific arguments are
+ the view name and a null value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.DropTrigger">
+ <summary>
+ A trigger will be dropped. The action-specific arguments are the
+ trigger name and the table name.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.DropView">
+ <summary>
+ A view will be dropped. The action-specific arguments are the view
+ name and a null value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Insert">
+ <summary>
+ An INSERT statement will be executed. The action-specific arguments
+ are the table name and a null value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Pragma">
+ <summary>
+ A PRAGMA statement will be executed. The action-specific arguments
+ are the name of the PRAGMA and the new value or a null value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Read">
+ <summary>
+ A table column will be read. The action-specific arguments are the
+ table name and the column name.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Select">
+ <summary>
+ A SELECT statement will be executed. The action-specific arguments
+ are both null values.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Transaction">
+ <summary>
+ A transaction will be started, committed, or rolled back. The
+ action-specific arguments are the name of the operation (BEGIN,
+ COMMIT, or ROLLBACK) and a null value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Update">
+ <summary>
+ An UPDATE statement will be executed. The action-specific arguments
+ are the table name and the column name.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Attach">
+ <summary>
+ A database will be attached to the connection. The action-specific
+ arguments are the database file name and a null value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Detach">
+ <summary>
+ A database will be detached from the connection. The action-specific
+ arguments are the database name and a null value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.AlterTable">
+ <summary>
+ The schema of a table will be altered. The action-specific arguments
+ are the database name and the table name.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Reindex">
+ <summary>
+ An index will be deleted and then recreated. The action-specific
+ arguments are the index name and a null value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Analyze">
+ <summary>
+ A table will be analyzed to gathers statistics about it. The
+ action-specific arguments are the table name and a null value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.CreateVtable">
+ <summary>
+ A virtual table will be created. The action-specific arguments are
+ the table name and the module name.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.DropVtable">
+ <summary>
+ A virtual table will be dropped. The action-specific arguments are
+ the table name and the module name.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Function">
+ <summary>
+ A SQL function will be called. The action-specific arguments are a
+ null value and the function name.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Savepoint">
+ <summary>
+ A savepoint will be created, released, or rolled back. The
+ action-specific arguments are the name of the operation (BEGIN,
+ RELEASE, or ROLLBACK) and the savepoint name.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Recursive">
+ <summary>
+ A recursive query will be executed. The action-specific arguments
+ are two null values.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteProgressReturnCode">
+ <summary>
+ The possible return codes for the progress callback.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteProgressReturnCode.Continue">
+ <summary>
+ The operation should continue.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteProgressReturnCode.Interrupt">
+ <summary>
+ The operation should be interrupted.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteAuthorizerReturnCode">
+ <summary>
+ The return code for the current call into the authorizer.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerReturnCode.Ok">
+ <summary>
+ The action will be allowed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerReturnCode.Deny">
+ <summary>
+ The overall action will be disallowed and an error message will be
+ returned from the query preparation method.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteAuthorizerReturnCode.Ignore">
+ <summary>
+ The specific action will be disallowed; however, the overall action
+ will continue. The exact effects of this return code vary depending
+ on the specific action, please refer to the SQLite core library
+ documentation for futher details.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteType">
+ <summary>
+ Class used internally to determine the datatype of a column in a resultset
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteType.Type">
+ <summary>
+ The DbType of the column, or DbType.Object if it cannot be determined
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteType.Affinity">
+ <summary>
+ The affinity of a column, used for expressions or when Type is DbType.Object
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteType.#ctor">
+ <summary>
+ Constructs a default instance of this type.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteType.#ctor(System.Data.SQLite.TypeAffinity,System.Data.DbType)">
+ <summary>
+ Constructs an instance of this type with the specified field values.
+ </summary>
+ <param name="affinity">
+ The type affinity to use for the new instance.
+ </param>
+ <param name="type">
+ The database type to use for the new instance.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteDataAdapter">
+ <summary>
+ SQLite implementation of DbDataAdapter.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataAdapter.#ctor">
+ <overloads>
+ This class is just a shell around the DbDataAdapter. Nothing from
+ DbDataAdapter is overridden here, just a few constructors are defined.
+ </overloads>
+ <summary>
+ Default constructor.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataAdapter.#ctor(System.Data.SQLite.SQLiteCommand)">
+ <summary>
+ Constructs a data adapter using the specified select command.
+ </summary>
+ <param name="cmd">
+ The select command to associate with the adapter.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataAdapter.#ctor(System.String,System.Data.SQLite.SQLiteConnection)">
+ <summary>
+ Constructs a data adapter with the supplied select command text and
+ associated with the specified connection.
+ </summary>
+ <param name="commandText">
+ The select command text to associate with the data adapter.
+ </param>
+ <param name="connection">
+ The connection to associate with the select command.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataAdapter.#ctor(System.String,System.String)">
+ <summary>
+ Constructs a data adapter with the specified select command text,
+ and using the specified database connection string.
+ </summary>
+ <param name="commandText">
+ The select command text to use to construct a select command.
+ </param>
+ <param name="connectionString">
+ A connection string suitable for passing to a new SQLiteConnection,
+ which is associated with the select command.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataAdapter.#ctor(System.String,System.String,System.Boolean)">
+ <summary>
+ Constructs a data adapter with the specified select command text,
+ and using the specified database connection string.
+ </summary>
+ <param name="commandText">
+ The select command text to use to construct a select command.
+ </param>
+ <param name="connectionString">
+ A connection string suitable for passing to a new SQLiteConnection,
+ which is associated with the select command.
+ </param>
+ <param name="parseViaFramework">
+ Non-zero to parse the connection string using the built-in (i.e.
+ framework provided) parser when opening the connection.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataAdapter.Dispose(System.Boolean)">
+ <summary>
+ Cleans up resources (native and managed) associated with the current instance.
+ </summary>
+ <param name="disposing">
+ Zero when being disposed via garbage collection; otherwise, non-zero.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataAdapter.OnRowUpdating(System.Data.Common.RowUpdatingEventArgs)">
+ <summary>
+ Raised by the underlying DbDataAdapter when a row is being updated
+ </summary>
+ <param name="value">The event's specifics</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataAdapter.OnRowUpdated(System.Data.Common.RowUpdatedEventArgs)">
+ <summary>
+ Raised by DbDataAdapter after a row is updated
+ </summary>
+ <param name="value">The event's specifics</param>
+ </member>
+ <member name="E:System.Data.SQLite.SQLiteDataAdapter.RowUpdating">
+ <summary>
+ Row updating event handler
+ </summary>
+ </member>
+ <member name="E:System.Data.SQLite.SQLiteDataAdapter.RowUpdated">
+ <summary>
+ Row updated event handler
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteDataAdapter.SelectCommand">
+ <summary>
+ Gets/sets the select command for this DataAdapter
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteDataAdapter.InsertCommand">
+ <summary>
+ Gets/sets the insert command for this DataAdapter
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteDataAdapter.UpdateCommand">
+ <summary>
+ Gets/sets the update command for this DataAdapter
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteDataAdapter.DeleteCommand">
+ <summary>
+ Gets/sets the delete command for this DataAdapter
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteDataReader">
+ <summary>
+ SQLite implementation of DbDataReader.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReader._command">
+ <summary>
+ Underlying command this reader is attached to
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReader._flags">
+ <summary>
+ The flags pertaining to the associated connection (via the command).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReader._activeStatementIndex">
+ <summary>
+ Index of the current statement in the command being processed
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReader._activeStatement">
+ <summary>
+ Current statement being Read()
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReader._readingState">
+ <summary>
+ State of the current statement being processed.
+ -1 = First Step() executed, so the first Read() will be ignored
+ 0 = Actively reading
+ 1 = Finished reading
+ 2 = Non-row-returning statement, no records
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReader._rowsAffected">
+ <summary>
+ Number of records affected by the insert/update statements executed on the command
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReader._fieldCount">
+ <summary>
+ Count of fields (columns) in the row-returning statement currently being processed
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReader._stepCount">
+ <summary>
+ The number of calls to Step() that have returned true (i.e. the number of rows that
+ have been read in the current result set).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReader._fieldIndexes">
+ <summary>
+ Maps the field (column) names to their corresponding indexes within the results.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReader._fieldTypeArray">
+ <summary>
+ Datatypes of active fields (columns) in the current statement, used for type-restricting data
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReader._commandBehavior">
+ <summary>
+ The behavior of the datareader
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReader._disposeCommand">
+ <summary>
+ If set, then dispose of the command object when the reader is finished
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReader._throwOnDisposed">
+ <summary>
+ If set, then raise an exception when the object is accessed after being disposed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReader._keyInfo">
+ <summary>
+ An array of rowid's for the active statement if CommandBehavior.KeyInfo is specified
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReader._version">
+ <summary>
+ Matches the version of the connection.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDataReader._baseSchemaName">
+ <summary>
+ The "stub" (i.e. placeholder) base schema name to use when returning
+ column schema information. Matches the base schema name used by the
+ associated connection.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.#ctor(System.Data.SQLite.SQLiteCommand,System.Data.CommandBehavior)">
+ <summary>
+ Internal constructor, initializes the datareader and sets up to begin executing statements
+ </summary>
+ <param name="cmd">The SQLiteCommand this data reader is for</param>
+ <param name="behave">The expected behavior of the data reader</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.Dispose(System.Boolean)">
+ <summary>
+ Dispose of all resources used by this datareader.
+ </summary>
+ <param name="disposing"></param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.Close">
+ <summary>
+ Closes the datareader, potentially closing the connection as well if CommandBehavior.CloseConnection was specified.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.CheckClosed">
+ <summary>
+ Throw an error if the datareader is closed
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.CheckValidRow">
+ <summary>
+ Throw an error if a row is not loaded
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetEnumerator">
+ <summary>
+ Enumerator support
+ </summary>
+ <returns>Returns a DbEnumerator object.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.RefreshFlags">
+ <summary>
+ Forces the connection flags cached by this data reader to be refreshed
+ from the underlying connection.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.VerifyForGet">
+ <summary>
+ This method is used to make sure the result set is open and a row is currently available.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.VerifyType(System.Int32,System.Data.DbType)">
+ <summary>
+ SQLite is inherently un-typed. All datatypes in SQLite are natively strings. The definition of the columns of a table
+ and the affinity of returned types are all we have to go on to type-restrict data in the reader.
+
+ This function attempts to verify that the type of data being requested of a column matches the datatype of the column. In
+ the case of columns that are not backed into a table definition, we attempt to match up the affinity of a column (int, double, string or blob)
+ to a set of known types that closely match that affinity. It's not an exact science, but its the best we can do.
+ </summary>
+ <returns>
+ This function throws an InvalidTypeCast() exception if the requested type doesn't match the column's definition or affinity.
+ </returns>
+ <param name="i">The index of the column to type-check</param>
+ <param name="typ">The type we want to get out of the column</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.InvokeReadValueCallback(System.Int32,System.Data.SQLite.SQLiteReadEventArgs,System.Boolean@)">
+ <summary>
+ Invokes the data reader value callback configured for the database
+ type name associated with the specified column. If no data reader
+ value callback is available for the database type name, do nothing.
+ </summary>
+ <param name="index">
+ The index of the column being read.
+ </param>
+ <param name="eventArgs">
+ The extra event data to pass into the callback.
+ </param>
+ <param name="complete">
+ Non-zero if the default handling for the data reader call should be
+ skipped. If this is set to non-zero and the necessary return value
+ is unavailable or unsuitable, an exception will be thrown.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetRowId(System.Int32)">
+ <summary>
+ Attempts to query the integer identifier for the current row. This
+ will not work for tables that were created WITHOUT ROWID -OR- if the
+ query does not include the "rowid" column or one of its aliases -OR-
+ if the <see cref="T:System.Data.SQLite.SQLiteDataReader"/> was not created with the
+ <see cref="F:System.Data.CommandBehavior.KeyInfo"/> flag.
+ </summary>
+ <param name="i">
+ The index of the BLOB column.
+ </param>
+ <returns>
+ The integer identifier for the current row -OR- null if it could not
+ be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetBlob(System.Int32,System.Boolean)">
+ <summary>
+ Retrieves the column as a <see cref="T:System.Data.SQLite.SQLiteBlob"/> object.
+ This will not work for tables that were created WITHOUT ROWID
+ -OR- if the query does not include the "rowid" column or one
+ of its aliases -OR- if the <see cref="T:System.Data.SQLite.SQLiteDataReader"/> was
+ not created with the <see cref="F:System.Data.CommandBehavior.KeyInfo"/>
+ flag.
+ </summary>
+ <param name="i">The index of the column.</param>
+ <param name="readOnly">
+ Non-zero to open the blob object for read-only access.
+ </param>
+ <returns>A new <see cref="T:System.Data.SQLite.SQLiteBlob"/> object.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetBoolean(System.Int32)">
+ <summary>
+ Retrieves the column as a boolean value
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>bool</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetByte(System.Int32)">
+ <summary>
+ Retrieves the column as a single byte value
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>byte</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetBytes(System.Int32,System.Int64,System.Byte[],System.Int32,System.Int32)">
+ <summary>
+ Retrieves a column as an array of bytes (blob)
+ </summary>
+ <param name="i">The index of the column.</param>
+ <param name="fieldOffset">The zero-based index of where to begin reading the data</param>
+ <param name="buffer">The buffer to write the bytes into</param>
+ <param name="bufferoffset">The zero-based index of where to begin writing into the array</param>
+ <param name="length">The number of bytes to retrieve</param>
+ <returns>The actual number of bytes written into the array</returns>
+ <remarks>
+ To determine the number of bytes in the column, pass a null value for the buffer. The total length will be returned.
+ </remarks>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetChar(System.Int32)">
+ <summary>
+ Returns the column as a single character
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>char</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetChars(System.Int32,System.Int64,System.Char[],System.Int32,System.Int32)">
+ <summary>
+ Retrieves a column as an array of chars (blob)
+ </summary>
+ <param name="i">The index of the column.</param>
+ <param name="fieldoffset">The zero-based index of where to begin reading the data</param>
+ <param name="buffer">The buffer to write the characters into</param>
+ <param name="bufferoffset">The zero-based index of where to begin writing into the array</param>
+ <param name="length">The number of bytes to retrieve</param>
+ <returns>The actual number of characters written into the array</returns>
+ <remarks>
+ To determine the number of characters in the column, pass a null value for the buffer. The total length will be returned.
+ </remarks>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetDataTypeName(System.Int32)">
+ <summary>
+ Retrieves the name of the back-end datatype of the column
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>string</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetDateTime(System.Int32)">
+ <summary>
+ Retrieve the column as a date/time value
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>DateTime</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetDecimal(System.Int32)">
+ <summary>
+ Retrieve the column as a decimal value
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>decimal</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetDouble(System.Int32)">
+ <summary>
+ Returns the column as a double
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>double</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetFieldAffinity(System.Int32)">
+ <summary>
+ Determines and returns the <see cref="T:System.Data.SQLite.TypeAffinity"/> of the
+ specified column.
+ </summary>
+ <param name="i">
+ The index of the column.
+ </param>
+ <returns>
+ The <see cref="T:System.Data.SQLite.TypeAffinity"/> associated with the specified
+ column, if any.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetFieldType(System.Int32)">
+ <summary>
+ Returns the .NET type of a given column
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>Type</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetFloat(System.Int32)">
+ <summary>
+ Returns a column as a float value
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>float</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetGuid(System.Int32)">
+ <summary>
+ Returns the column as a Guid
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>Guid</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetInt16(System.Int32)">
+ <summary>
+ Returns the column as a short
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>Int16</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetInt32(System.Int32)">
+ <summary>
+ Retrieves the column as an int
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>Int32</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetInt64(System.Int32)">
+ <summary>
+ Retrieves the column as a long
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>Int64</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetName(System.Int32)">
+ <summary>
+ Retrieves the name of the column
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>string</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetDatabaseName(System.Int32)">
+ <summary>
+ Returns the name of the database associated with the specified column.
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>string</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetTableName(System.Int32)">
+ <summary>
+ Returns the name of the table associated with the specified column.
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>string</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetOriginalName(System.Int32)">
+ <summary>
+ Returns the original name of the specified column.
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>string</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetOrdinal(System.String)">
+ <summary>
+ Retrieves the i of a column, given its name
+ </summary>
+ <param name="name">The name of the column to retrieve</param>
+ <returns>The int i of the column</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetSchemaTable">
+ <summary>
+ Schema information in SQLite is difficult to map into .NET conventions, so a lot of work must be done
+ to gather the necessary information so it can be represented in an ADO.NET manner.
+ </summary>
+ <returns>Returns a DataTable containing the schema information for the active SELECT statement being processed.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetString(System.Int32)">
+ <summary>
+ Retrieves the column as a string
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>string</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetValue(System.Int32)">
+ <summary>
+ Retrieves the column as an object corresponding to the underlying datatype of the column
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>object</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetValues(System.Object[])">
+ <summary>
+ Retreives the values of multiple columns, up to the size of the supplied array
+ </summary>
+ <param name="values">The array to fill with values from the columns in the current resultset</param>
+ <returns>The number of columns retrieved</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetValues">
+ <summary>
+ Returns a collection containing all the column names and values for the
+ current row of data in the current resultset, if any. If there is no
+ current row or no current resultset, an exception may be thrown.
+ </summary>
+ <returns>
+ The collection containing the column name and value information for the
+ current row of data in the current resultset or null if this information
+ cannot be obtained.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.IsDBNull(System.Int32)">
+ <summary>
+ Returns True if the specified column is null
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>True or False</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.NextResult">
+ <summary>
+ Moves to the next resultset in multiple row-returning SQL command.
+ </summary>
+ <returns>True if the command was successful and a new resultset is available, False otherwise.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetConnection(System.Data.SQLite.SQLiteDataReader)">
+ <summary>
+ This method attempts to query the database connection associated with
+ the data reader in use. If the underlying command or connection is
+ unavailable, a null value will be returned.
+ </summary>
+ <returns>
+ The connection object -OR- null if it is unavailable.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetSQLiteType(System.Data.SQLite.SQLiteType,System.String)">
+ <summary>
+ Retrieves the SQLiteType for a given column and row value.
+ </summary>
+ <param name="oldType">
+ The original SQLiteType structure, based only on the column.
+ </param>
+ <param name="text">
+ The textual value of the column for a given row.
+ </param>
+ <returns>
+ The SQLiteType structure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.GetSQLiteType(System.Data.SQLite.SQLiteConnectionFlags,System.Int32)">
+ <summary>
+ Retrieves the SQLiteType for a given column, and caches it to avoid repetetive interop calls.
+ </summary>
+ <param name="flags">The flags associated with the parent connection object.</param>
+ <param name="i">The index of the column.</param>
+ <returns>A SQLiteType structure</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDataReader.Read">
+ <summary>
+ Reads the next row from the resultset
+ </summary>
+ <returns>True if a new row was successfully loaded and is ready for processing</returns>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteDataReader.Depth">
+ <summary>
+ Not implemented. Returns 0
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteDataReader.FieldCount">
+ <summary>
+ Returns the number of columns in the current resultset
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteDataReader.StepCount">
+ <summary>
+ Returns the number of rows seen so far in the current result set.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteDataReader.VisibleFieldCount">
+ <summary>
+ Returns the number of visible fields in the current resultset
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteDataReader.HasRows">
+ <summary>
+ Returns True if the resultset has rows that can be fetched
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteDataReader.IsClosed">
+ <summary>
+ Returns True if the data reader is closed
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteDataReader.RecordsAffected">
+ <summary>
+ Returns the number of rows affected by the statement being executed.
+ The value returned may not be accurate for DDL statements. Also, it
+ will be -1 for any statement that does not modify the database (e.g.
+ SELECT). If an otherwise read-only statement modifies the database
+ indirectly (e.g. via a virtual table or user-defined function), the
+ value returned is undefined.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteDataReader.Item(System.String)">
+ <summary>
+ Indexer to retrieve data from a column given its name
+ </summary>
+ <param name="name">The name of the column to retrieve data for</param>
+ <returns>The value contained in the column</returns>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteDataReader.Item(System.Int32)">
+ <summary>
+ Indexer to retrieve data from a column given its i
+ </summary>
+ <param name="i">The index of the column.</param>
+ <returns>The value contained in the column</returns>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteException">
+ <summary>
+ SQLite exception class.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteException.FACILITY_SQLITE">
+ <summary>
+ This value was copied from the "WinError.h" file included with the
+ Platform SDK for Windows 10.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+ <summary>
+ Private constructor for use with serialization.
+ </summary>
+ <param name="info">
+ Holds the serialized object data about the exception being thrown.
+ </param>
+ <param name="context">
+ Contains contextual information about the source or destination.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteException.#ctor(System.Data.SQLite.SQLiteErrorCode,System.String)">
+ <summary>
+ Public constructor for generating a SQLite exception given the error
+ code and message.
+ </summary>
+ <param name="errorCode">
+ The SQLite return code to report.
+ </param>
+ <param name="message">
+ Message text to go along with the return code message text.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteException.#ctor(System.String)">
+ <summary>
+ Public constructor that uses the base class constructor for the error
+ message.
+ </summary>
+ <param name="message">Error message text.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteException.#ctor">
+ <summary>
+ Public constructor that uses the default base class constructor.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteException.#ctor(System.String,System.Exception)">
+ <summary>
+ Public constructor that uses the base class constructor for the error
+ message and inner exception.
+ </summary>
+ <param name="message">Error message text.</param>
+ <param name="innerException">The original (inner) exception.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+ <summary>
+ Adds extra information to the serialized object data specific to this
+ class type. This is only used for serialization.
+ </summary>
+ <param name="info">
+ Holds the serialized object data about the exception being thrown.
+ </param>
+ <param name="context">
+ Contains contextual information about the source or destination.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteException.Initialize">
+ <summary>
+ This method performs extra initialization tasks. It may be called by
+ any of the constructors of this class. It must not throw exceptions.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteException.MakeHResult(System.Int32,System.Boolean)">
+ <summary>
+ Maps a Win32 error code to an HRESULT.
+ </summary>
+ <param name="errorCode">
+ The specified Win32 error code. It must be within the range of zero
+ (0) to 0xFFFF (65535).
+ </param>
+ <param name="success">
+ Non-zero if the HRESULT should indicate success; otherwise, zero.
+ </param>
+ <returns>
+ The integer value of the HRESULT.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteException.GetHResultForErrorCode(System.Data.SQLite.SQLiteErrorCode)">
+ <summary>
+ Attempts to map the specified <see cref="T:System.Data.SQLite.SQLiteErrorCode"/> onto an
+ existing HRESULT -OR- a Win32 error code wrapped in an HRESULT. The
+ mappings may not have perfectly matching semantics; however, they do
+ have the benefit of being unique within the context of this exception
+ type.
+ </summary>
+ <param name="errorCode">
+ The <see cref="T:System.Data.SQLite.SQLiteErrorCode"/> to map.
+ </param>
+ <returns>
+ The integer HRESULT value -OR- null if there is no known mapping.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteException.GetErrorString(System.Data.SQLite.SQLiteErrorCode)">
+ <summary>
+ Returns the error message for the specified SQLite return code.
+ </summary>
+ <param name="errorCode">The SQLite return code.</param>
+ <returns>The error message or null if it cannot be found.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteException.GetStockErrorMessage(System.Data.SQLite.SQLiteErrorCode,System.String)">
+ <summary>
+ Returns the composite error message based on the SQLite return code
+ and the optional detailed error message.
+ </summary>
+ <param name="errorCode">The SQLite return code.</param>
+ <param name="message">Optional detailed error message.</param>
+ <returns>Error message text for the return code.</returns>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteException.ResultCode">
+ <summary>
+ Gets the associated SQLite result code for this exception as a
+ <see cref="T:System.Data.SQLite.SQLiteErrorCode"/>. This property returns the same
+ underlying value as the <see cref="P:System.Data.SQLite.SQLiteException.ErrorCode"/> property.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteException.ErrorCode">
+ <summary>
+ Gets the associated SQLite return code for this exception as an
+ <see cref="T:System.Int32"/>. For desktop versions of the .NET Framework,
+ this property overrides the property of the same name within the
+ <see cref="T:System.Runtime.InteropServices.ExternalException"/>
+ class. This property returns the same underlying value as the
+ <see cref="P:System.Data.SQLite.SQLiteException.ResultCode"/> property.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteErrorCode">
+ <summary>
+ SQLite error codes. Actually, this enumeration represents a return code,
+ which may also indicate success in one of several ways (e.g. SQLITE_OK,
+ SQLITE_ROW, and SQLITE_DONE). Therefore, the name of this enumeration is
+ something of a misnomer.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Unknown">
+ <summary>
+ The error code is unknown. This error code
+ is only used by the managed wrapper itself.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Ok">
+ <summary>
+ Successful result
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Error">
+ <summary>
+ SQL error or missing database
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Internal">
+ <summary>
+ Internal logic error in SQLite
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Perm">
+ <summary>
+ Access permission denied
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Abort">
+ <summary>
+ Callback routine requested an abort
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Busy">
+ <summary>
+ The database file is locked
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Locked">
+ <summary>
+ A table in the database is locked
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.NoMem">
+ <summary>
+ A malloc() failed
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.ReadOnly">
+ <summary>
+ Attempt to write a readonly database
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Interrupt">
+ <summary>
+ Operation terminated by sqlite3_interrupt()
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr">
+ <summary>
+ Some kind of disk I/O error occurred
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Corrupt">
+ <summary>
+ The database disk image is malformed
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.NotFound">
+ <summary>
+ Unknown opcode in sqlite3_file_control()
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Full">
+ <summary>
+ Insertion failed because database is full
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.CantOpen">
+ <summary>
+ Unable to open the database file
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Protocol">
+ <summary>
+ Database lock protocol error
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Empty">
+ <summary>
+ Database is empty
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Schema">
+ <summary>
+ The database schema changed
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.TooBig">
+ <summary>
+ String or BLOB exceeds size limit
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Constraint">
+ <summary>
+ Abort due to constraint violation
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Mismatch">
+ <summary>
+ Data type mismatch
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Misuse">
+ <summary>
+ Library used incorrectly
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.NoLfs">
+ <summary>
+ Uses OS features not supported on host
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Auth">
+ <summary>
+ Authorization denied
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Format">
+ <summary>
+ Auxiliary database format error
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Range">
+ <summary>
+ 2nd parameter to sqlite3_bind out of range
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.NotADb">
+ <summary>
+ File opened that is not a database file
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Notice">
+ <summary>
+ Notifications from sqlite3_log()
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Warning">
+ <summary>
+ Warnings from sqlite3_log()
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Row">
+ <summary>
+ sqlite3_step() has another row ready
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Done">
+ <summary>
+ sqlite3_step() has finished executing
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.NonExtendedMask">
+ <summary>
+ Used to mask off extended result codes
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Error_Missing_CollSeq">
+ <summary>
+ A collation sequence was referenced by a schema and it cannot be
+ found.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Error_Retry">
+ <summary>
+ An internal operation failed and it may succeed if retried.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Error_Snapshot">
+ <summary>
+ The specified snapshot has been overwritten by a checkpoint.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Read">
+ <summary>
+ A file read operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Short_Read">
+ <summary>
+ A file read operation returned less data than requested.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Write">
+ <summary>
+ A file write operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Fsync">
+ <summary>
+ A file synchronization operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Dir_Fsync">
+ <summary>
+ A directory synchronization operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Truncate">
+ <summary>
+ A file truncate operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Fstat">
+ <summary>
+ A file metadata operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Unlock">
+ <summary>
+ A file unlock operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_RdLock">
+ <summary>
+ A file lock operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Delete">
+ <summary>
+ A file delete operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Blocked">
+ <summary>
+ Not currently used.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_NoMem">
+ <summary>
+ Out-of-memory during a file operation.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Access">
+ <summary>
+ A file existence/status operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_CheckReservedLock">
+ <summary>
+ A check for a reserved lock failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Lock">
+ <summary>
+ A file lock operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Close">
+ <summary>
+ A file close operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Dir_Close">
+ <summary>
+ A directory close operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_ShmOpen">
+ <summary>
+ A shared memory open operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_ShmSize">
+ <summary>
+ A shared memory size operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_ShmLock">
+ <summary>
+ A shared memory lock operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_ShmMap">
+ <summary>
+ A shared memory map operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Seek">
+ <summary>
+ A file seek operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Delete_NoEnt">
+ <summary>
+ A file delete operation failed because it does not exist.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Mmap">
+ <summary>
+ A file memory mapping operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_GetTempPath">
+ <summary>
+ The temporary directory path could not be obtained.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_ConvPath">
+ <summary>
+ A path string conversion operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_VNode">
+ <summary>
+ Reserved.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Auth">
+ <summary>
+ An attempt to authenticate failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Begin_Atomic">
+ <summary>
+ An attempt to begin a file system transaction failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Commit_Atomic">
+ <summary>
+ An attempt to commit a file system transaction failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Rollback_Atomic">
+ <summary>
+ An attempt to rollback a file system transaction failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.IoErr_Data">
+ <summary>
+ Data read from the file system appears to be incorrect.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Locked_SharedCache">
+ <summary>
+ A database table is locked in shared-cache mode.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Locked_Vtab">
+ <summary>
+ A virtual table in the database is locked.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Busy_Recovery">
+ <summary>
+ A database file is locked due to a recovery operation.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Busy_Snapshot">
+ <summary>
+ A database file is locked due to snapshot semantics.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Busy_Timeout">
+ <summary>
+ An internal timeout was encountered while waiting for a database lock.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.CantOpen_NoTempDir">
+ <summary>
+ A database file cannot be opened because no temporary directory is available.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.CantOpen_IsDir">
+ <summary>
+ A database file cannot be opened because its path represents a directory.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.CantOpen_FullPath">
+ <summary>
+ A database file cannot be opened because its full path could not be obtained.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.CantOpen_ConvPath">
+ <summary>
+ A database file cannot be opened because a path string conversion operation failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.CantOpen_DirtyWal">
+ <summary>
+ No longer used.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.CantOpen_SymLink">
+ <summary>
+ A database file is a symbolic link and cannot be opened.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Corrupt_Vtab">
+ <summary>
+ A virtual table is malformed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Corrupt_Sequence">
+ <summary>
+ A required sequence table is missing or corrupt.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Corrupt_Index">
+ <summary>
+ An index entry that should be present is missing.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.ReadOnly_Recovery">
+ <summary>
+ A database file is read-only due to a recovery operation.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.ReadOnly_CantLock">
+ <summary>
+ A database file is read-only because a lock could not be obtained.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.ReadOnly_Rollback">
+ <summary>
+ A database file is read-only because it needs rollback processing.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.ReadOnly_DbMoved">
+ <summary>
+ A database file is read-only because it was moved while open.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.ReadOnly_CantInit">
+ <summary>
+ The shared-memory file is read-only and it should be read-write.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.ReadOnly_Directory">
+ <summary>
+ Unable to create journal file because the directory is read-only.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Abort_Rollback">
+ <summary>
+ An operation is being aborted due to rollback processing.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Constraint_Check">
+ <summary>
+ A CHECK constraint failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Constraint_CommitHook">
+ <summary>
+ A commit hook produced a unsuccessful return code.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Constraint_ForeignKey">
+ <summary>
+ A FOREIGN KEY constraint failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Constraint_Function">
+ <summary>
+ Not currently used.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Constraint_NotNull">
+ <summary>
+ A NOT NULL constraint failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Constraint_PrimaryKey">
+ <summary>
+ A PRIMARY KEY constraint failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Constraint_Trigger">
+ <summary>
+ The RAISE function was used by a trigger-program.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Constraint_Unique">
+ <summary>
+ A UNIQUE constraint failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Constraint_Vtab">
+ <summary>
+ Not currently used.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Constraint_RowId">
+ <summary>
+ A ROWID constraint failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Constraint_Pinned">
+ <summary>
+ A database cursor is busy and cannot be moved.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Notice_Recover_Wal">
+ <summary>
+ Frames were recovered from the WAL log file.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Notice_Recover_Rollback">
+ <summary>
+ Pages were recovered from the journal file.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Warning_AutoIndex">
+ <summary>
+ An automatic index was created to process a query.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Auth_User">
+ <summary>
+ User authentication failed.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Ok_Load_Permanently">
+ <summary>
+ Success. Prevents the extension from unloading until the process
+ terminates.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteErrorCode.Ok_SymLink">
+ <summary>
+ Success. The specified file name refers to a symbolic link.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteFactory">
+ <summary>
+ SQLite implementation of <see cref="T:System.Data.Common.DbProviderFactory"/>.
+ </summary>
+ <summary>
+ SQLite implementation of <see cref="T:System.IServiceProvider"/>.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFactory.#ctor">
+ <summary>
+ Constructs a new instance.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFactory.Dispose">
+ <summary>
+ Cleans up resources (native and managed) associated with the current instance.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFactory.Finalize">
+ <summary>
+ Cleans up resources associated with the current instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteFactory.Instance">
+ <summary>
+ Static instance member which returns an instanced <see cref="T:System.Data.SQLite.SQLiteFactory"/> class.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFactory.CreateCommand">
+ <summary>
+ Creates and returns a new <see cref="T:System.Data.SQLite.SQLiteCommand"/> object.
+ </summary>
+ <returns>The new object.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFactory.CreateCommandBuilder">
+ <summary>
+ Creates and returns a new <see cref="T:System.Data.SQLite.SQLiteCommandBuilder"/> object.
+ </summary>
+ <returns>The new object.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFactory.CreateConnection">
+ <summary>
+ Creates and returns a new <see cref="T:System.Data.SQLite.SQLiteConnection"/> object.
+ </summary>
+ <returns>The new object.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFactory.CreateConnectionStringBuilder">
+ <summary>
+ Creates and returns a new <see cref="T:System.Data.SQLite.SQLiteConnectionStringBuilder"/> object.
+ </summary>
+ <returns>The new object.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFactory.CreateDataAdapter">
+ <summary>
+ Creates and returns a new <see cref="T:System.Data.SQLite.SQLiteDataAdapter"/> object.
+ </summary>
+ <returns>The new object.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFactory.CreateParameter">
+ <summary>
+ Creates and returns a new <see cref="T:System.Data.SQLite.SQLiteParameter"/> object.
+ </summary>
+ <returns>The new object.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFactory.PreInitialize">
+ <summary>
+ This method is called to perform preliminary static initialization
+ necessary for this class.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFactory.InitializeDbProviderServices">
+ <summary>
+ This method is called to perform some of the static initialization
+ necessary for this class.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFactory.System#IServiceProvider#GetService(System.Type)">
+ <summary>
+ Will provide a <see cref="T:System.IServiceProvider"/> object in .NET 3.5.
+ </summary>
+ <param name="serviceType">The class or interface type to query for.</param>
+ <returns></returns>
+ </member>
+ <member name="E:System.Data.SQLite.SQLiteFactory.Log">
+ <summary>
+ This event is raised whenever SQLite raises a logging event.
+ Note that this should be set as one of the first things in the
+ application. This event is provided for backward compatibility only.
+ New code should use the <see cref="T:System.Data.SQLite.SQLiteLog"/> class instead.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteFunction">
+ <summary>
+ This abstract class is designed to handle user-defined functions easily. An instance of the derived class is made for each
+ connection to the database.
+ </summary>
+ <remarks>
+ Although there is one instance of a class derived from SQLiteFunction per database connection, the derived class has no access
+ to the underlying connection. This is necessary to deter implementers from thinking it would be a good idea to make database
+ calls during processing.
+
+ It is important to distinguish between a per-connection instance, and a per-SQL statement context. One instance of this class
+ services all SQL statements being stepped through on that connection, and there can be many. One should never store per-statement
+ information in member variables of user-defined function classes.
+
+ For aggregate functions, always create and store your per-statement data in the contextData object on the 1st step. This data will
+ be automatically freed for you (and Dispose() called if the item supports IDisposable) when the statement completes.
+ </remarks>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteFunction._base">
+ <summary>
+ The base connection this function is attached to
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteFunction._contextDataList">
+ <summary>
+ Internal array used to keep track of aggregate function context data
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteFunction._flags">
+ <summary>
+ The connection flags associated with this object (this should be the
+ same value as the flags associated with the parent connection object).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteFunction._InvokeFunc">
+ <summary>
+ Holds a reference to the callback function for user functions
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteFunction._StepFunc">
+ <summary>
+ Holds a reference to the callbakc function for stepping in an aggregate function
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteFunction._FinalFunc">
+ <summary>
+ Holds a reference to the callback function for finalizing an aggregate function
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteFunction._CompareFunc">
+ <summary>
+ Holds a reference to the callback function for collating sequences
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteFunction._context">
+ <summary>
+ Current context of the current callback. Only valid during a callback
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteFunction._registeredFunctions">
+ <summary>
+ This static dictionary contains all the registered (known) user-defined
+ functions declared using the proper attributes. The contained dictionary
+ values are always null and are not currently used.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.#ctor">
+ <summary>
+ Internal constructor, initializes the function's internal variables.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.#ctor(System.Data.SQLite.SQLiteDateFormats,System.DateTimeKind,System.String,System.Boolean)">
+ <summary>
+ Constructs an instance of this class using the specified data-type
+ conversion parameters.
+ </summary>
+ <param name="format">
+ The DateTime format to be used when converting string values to a
+ DateTime and binding DateTime parameters.
+ </param>
+ <param name="kind">
+ The <see cref="T:System.DateTimeKind"/> to be used when creating DateTime
+ values.
+ </param>
+ <param name="formatString">
+ The format string to be used when parsing and formatting DateTime
+ values.
+ </param>
+ <param name="utf16">
+ Non-zero to create a UTF-16 data-type conversion context; otherwise,
+ a UTF-8 data-type conversion context will be created.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.Dispose">
+ <summary>
+ Disposes of any active contextData variables that were not automatically cleaned up. Sometimes this can happen if
+ someone closes the connection while a DataReader is open.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.Dispose(System.Boolean)">
+ <summary>
+ Placeholder for a user-defined disposal routine
+ </summary>
+ <param name="disposing">True if the object is being disposed explicitly</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.Finalize">
+ <summary>
+ Cleans up resources associated with the current instance.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.Invoke(System.Object[])">
+ <summary>
+ Scalar functions override this method to do their magic.
+ </summary>
+ <remarks>
+ Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available
+ to force them into a certain type. Therefore the only types you will ever see as parameters are
+ DBNull.Value, Int64, Double, String or byte[] array.
+ </remarks>
+ <param name="args">The arguments for the command to process</param>
+ <returns>You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or
+ you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error,
+ just return it!</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.Step(System.Object[],System.Int32,System.Object@)">
+ <summary>
+ Aggregate functions override this method to do their magic.
+ </summary>
+ <remarks>
+ Typically you'll be updating whatever you've placed in the contextData field and returning as quickly as possible.
+ </remarks>
+ <param name="args">The arguments for the command to process</param>
+ <param name="stepNumber">The 1-based step number. This is incrememted each time the step method is called.</param>
+ <param name="contextData">A placeholder for implementers to store contextual data pertaining to the current context.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.Final(System.Object)">
+ <summary>
+ Aggregate functions override this method to finish their aggregate processing.
+ </summary>
+ <remarks>
+ If you implemented your aggregate function properly,
+ you've been recording and keeping track of your data in the contextData object provided, and now at this stage you should have
+ all the information you need in there to figure out what to return.
+ NOTE: It is possible to arrive here without receiving a previous call to Step(), in which case the contextData will
+ be null. This can happen when no rows were returned. You can either return null, or 0 or some other custom return value
+ if that is the case.
+ </remarks>
+ <param name="contextData">Your own assigned contextData, provided for you so you can return your final results.</param>
+ <returns>You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or
+ you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error,
+ just return it!
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.Compare(System.String,System.String)">
+ <summary>
+ User-defined collating sequences override this method to provide a custom string sorting algorithm.
+ </summary>
+ <param name="param1">The first string to compare.</param>
+ <param name="param2">The second strnig to compare.</param>
+ <returns>1 if param1 is greater than param2, 0 if they are equal, or -1 if param1 is less than param2.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.ConvertParams(System.Int32,System.IntPtr)">
+ <summary>
+ Converts an IntPtr array of context arguments to an object array containing the resolved parameters the pointers point to.
+ </summary>
+ <remarks>
+ Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available
+ to force them into a certain type. Therefore the only types you will ever see as parameters are
+ DBNull.Value, Int64, Double, String or byte[] array.
+ </remarks>
+ <param name="nArgs">The number of arguments</param>
+ <param name="argsptr">A pointer to the array of arguments</param>
+ <returns>An object array of the arguments once they've been converted to .NET values</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.SetReturnValue(System.IntPtr,System.Object)">
+ <summary>
+ Takes the return value from Invoke() and Final() and figures out how to return it to SQLite's context.
+ </summary>
+ <param name="context">The context the return value applies to</param>
+ <param name="returnValue">The parameter to return to SQLite</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.ScalarCallback(System.IntPtr,System.Int32,System.IntPtr)">
+ <summary>
+ Internal scalar callback function, which wraps the raw context pointer and calls the virtual Invoke() method.
+ WARNING: Must not throw exceptions.
+ </summary>
+ <param name="context">A raw context pointer</param>
+ <param name="nArgs">Number of arguments passed in</param>
+ <param name="argsptr">A pointer to the array of arguments</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.CompareCallback(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)">
+ <summary>
+ Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function.
+ WARNING: Must not throw exceptions.
+ </summary>
+ <param name="ptr">Not used</param>
+ <param name="len1">Length of the string pv1</param>
+ <param name="ptr1">Pointer to the first string to compare</param>
+ <param name="len2">Length of the string pv2</param>
+ <param name="ptr2">Pointer to the second string to compare</param>
+ <returns>Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater
+ than the second. Returns 0 if an exception is caught.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.CompareCallback16(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)">
+ <summary>
+ Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function.
+ WARNING: Must not throw exceptions.
+ </summary>
+ <param name="ptr">Not used</param>
+ <param name="len1">Length of the string pv1</param>
+ <param name="ptr1">Pointer to the first string to compare</param>
+ <param name="len2">Length of the string pv2</param>
+ <param name="ptr2">Pointer to the second string to compare</param>
+ <returns>Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater
+ than the second. Returns 0 if an exception is caught.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.StepCallback(System.IntPtr,System.Int32,System.IntPtr)">
+ <summary>
+ The internal aggregate Step function callback, which wraps the raw context pointer and calls the virtual Step() method.
+ WARNING: Must not throw exceptions.
+ </summary>
+ <remarks>
+ This function takes care of doing the lookups and getting the important information put together to call the Step() function.
+ That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so
+ binary searches can be done to find the data.
+ </remarks>
+ <param name="context">A raw context pointer</param>
+ <param name="nArgs">Number of arguments passed in</param>
+ <param name="argsptr">A pointer to the array of arguments</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.FinalCallback(System.IntPtr)">
+ <summary>
+ An internal aggregate Final function callback, which wraps the context pointer and calls the virtual Final() method.
+ WARNING: Must not throw exceptions.
+ </summary>
+ <param name="context">A raw context pointer</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.#cctor">
+ <summary>
+ Using reflection, enumerate all assemblies in the current appdomain looking for classes that
+ have a SQLiteFunctionAttribute attribute, and registering them accordingly.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.RegisterFunction(System.Type)">
+ <summary>
+ Manual method of registering a function. The type must still have the SQLiteFunctionAttributes in order to work
+ properly, but this is a workaround for the Compact Framework where enumerating assemblies is not currently supported.
+ </summary>
+ <param name="typ">The type of the function to register</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.RegisterFunction(System.String,System.Int32,System.Data.SQLite.FunctionType,System.Type,System.Delegate,System.Delegate)">
+ <summary>
+ Alternative method of registering a function. This method
+ does not require the specified type to be annotated with
+ <see cref="T:System.Data.SQLite.SQLiteFunctionAttribute"/>.
+ </summary>
+ <param name="name">
+ The name of the function to register.
+ </param>
+ <param name="argumentCount">
+ The number of arguments accepted by the function.
+ </param>
+ <param name="functionType">
+ The type of SQLite function being resitered (e.g. scalar,
+ aggregate, or collating sequence).
+ </param>
+ <param name="instanceType">
+ The <see cref="T:System.Type"/> that actually implements the function.
+ This will only be used if the <paramref name="callback1"/>
+ and <paramref name="callback2"/> parameters are null.
+ </param>
+ <param name="callback1">
+ The <see cref="T:System.Delegate"/> to be used for all calls into the
+ <see cref="M:System.Data.SQLite.SQLiteFunction.Invoke(System.Object[])"/>,
+ <see cref="M:System.Data.SQLite.SQLiteFunction.Step(System.Object[],System.Int32,System.Object@)"/>,
+ and <see cref="M:System.Data.SQLite.SQLiteFunction.Compare(System.String,System.String)"/> virtual methods.
+ </param>
+ <param name="callback2">
+ The <see cref="T:System.Delegate"/> to be used for all calls into the
+ <see cref="M:System.Data.SQLite.SQLiteFunction.Final(System.Object)"/> virtual method. This
+ parameter is only necessary for aggregate functions.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.ReplaceFunction(System.Data.SQLite.SQLiteFunctionAttribute,System.Object)">
+ <summary>
+ Replaces a registered function, disposing of the associated (old)
+ value if necessary.
+ </summary>
+ <param name="at">
+ The attribute that describes the function to replace.
+ </param>
+ <param name="newValue">
+ The new value to use.
+ </param>
+ <returns>
+ Non-zero if an existing registered function was replaced; otherwise,
+ zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.CreateFunction(System.Data.SQLite.SQLiteFunctionAttribute,System.Data.SQLite.SQLiteFunction@)">
+ <summary>
+ Creates a <see cref="T:System.Data.SQLite.SQLiteFunction"/> instance based on the specified
+ <see cref="T:System.Data.SQLite.SQLiteFunctionAttribute"/>.
+ </summary>
+ <param name="functionAttribute">
+ The <see cref="T:System.Data.SQLite.SQLiteFunctionAttribute"/> containing the metadata about
+ the function to create.
+ </param>
+ <param name="function">
+ The created function -OR- null if the function could not be created.
+ </param>
+ <returns>
+ Non-zero if the function was created; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.BindFunctions(System.Data.SQLite.SQLiteBase,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Called by the SQLiteBase derived classes, this method binds all registered (known) user-defined functions to a connection.
+ It is done this way so that all user-defined functions will access the database using the same encoding scheme
+ as the connection (UTF-8 or UTF-16).
+ </summary>
+ <remarks>
+ The wrapper functions that interop with SQLite will create a unique cookie value, which internally is a pointer to
+ all the wrapped callback functions. The interop function uses it to map CDecl callbacks to StdCall callbacks.
+ </remarks>
+ <param name="sqlbase">The base object on which the functions are to bind.</param>
+ <param name="flags">The flags associated with the parent connection object.</param>
+ <returns>Returns a logical list of functions which the connection should retain until it is closed.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.UnbindAllFunctions(System.Data.SQLite.SQLiteBase,System.Data.SQLite.SQLiteConnectionFlags,System.Boolean)">
+ <summary>
+ Called by the SQLiteBase derived classes, this method unbinds all registered (known)
+ functions -OR- all previously bound user-defined functions from a connection.
+ </summary>
+ <param name="sqlbase">The base object from which the functions are to be unbound.</param>
+ <param name="flags">The flags associated with the parent connection object.</param>
+ <param name="registered">
+ Non-zero to unbind all registered (known) functions -OR- zero to unbind all functions
+ currently bound to the connection.
+ </param>
+ <returns>Non-zero if all the specified user-defined functions were unbound.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.BindFunction(System.Data.SQLite.SQLiteBase,System.Data.SQLite.SQLiteFunctionAttribute,System.Data.SQLite.SQLiteFunction,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ This function binds a user-defined function to a connection.
+ </summary>
+ <param name="sqliteBase">
+ The <see cref="T:System.Data.SQLite.SQLiteBase"/> object instance associated with the
+ <see cref="T:System.Data.SQLite.SQLiteConnection"/> that the function should be bound to.
+ </param>
+ <param name="functionAttribute">
+ The <see cref="T:System.Data.SQLite.SQLiteFunctionAttribute"/> object instance containing
+ the metadata for the function to be bound.
+ </param>
+ <param name="function">
+ The <see cref="T:System.Data.SQLite.SQLiteFunction"/> object instance that implements the
+ function to be bound.
+ </param>
+ <param name="flags">
+ The flags associated with the parent connection object.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunction.UnbindFunction(System.Data.SQLite.SQLiteBase,System.Data.SQLite.SQLiteFunctionAttribute,System.Data.SQLite.SQLiteFunction,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ This function unbinds a user-defined functions from a connection.
+ </summary>
+ <param name="sqliteBase">
+ The <see cref="T:System.Data.SQLite.SQLiteBase"/> object instance associated with the
+ <see cref="T:System.Data.SQLite.SQLiteConnection"/> that the function should be bound to.
+ </param>
+ <param name="functionAttribute">
+ The <see cref="T:System.Data.SQLite.SQLiteFunctionAttribute"/> object instance containing
+ the metadata for the function to be bound.
+ </param>
+ <param name="function">
+ The <see cref="T:System.Data.SQLite.SQLiteFunction"/> object instance that implements the
+ function to be bound.
+ </param>
+ <param name="flags">
+ The flags associated with the parent connection object.
+ </param>
+ <returns>Non-zero if the function was unbound.</returns>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteFunction.SQLiteConvert">
+ <summary>
+ Returns a reference to the underlying connection's SQLiteConvert class, which can be used to convert
+ strings and DateTime's into the current connection's encoding schema.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteInvokeDelegate">
+ <summary>
+ This <see cref="T:System.Delegate"/> type is used with the
+ <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Invoke(System.Object[])"/> method.
+ </summary>
+ <param name="param0">
+ This is always the string literal "Invoke".
+ </param>
+ <param name="args">
+ The arguments for the scalar function.
+ </param>
+ <returns>
+ The result of the scalar function.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteStepDelegate">
+ <summary>
+ This <see cref="T:System.Delegate"/> type is used with the
+ <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Step(System.Object[],System.Int32,System.Object@)"/> method.
+ </summary>
+ <param name="param0">
+ This is always the string literal "Step".
+ </param>
+ <param name="args">
+ The arguments for the aggregate function.
+ </param>
+ <param name="stepNumber">
+ The step number (one based). This is incrememted each time the
+ <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Step(System.Object[],System.Int32,System.Object@)"/> method is called.
+ </param>
+ <param name="contextData">
+ A placeholder for implementers to store contextual data pertaining
+ to the current context.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteFinalDelegate">
+ <summary>
+ This <see cref="T:System.Delegate"/> type is used with the
+ <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Final(System.Object)"/> method.
+ </summary>
+ <param name="param0">
+ This is always the string literal "Final".
+ </param>
+ <param name="contextData">
+ A placeholder for implementers to store contextual data pertaining
+ to the current context.
+ </param>
+ <returns>
+ The result of the aggregate function.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteCompareDelegate">
+ <summary>
+ This <see cref="T:System.Delegate"/> type is used with the
+ <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Compare(System.String,System.String)"/> method.
+ </summary>
+ <param name="param0">
+ This is always the string literal "Compare".
+ </param>
+ <param name="param1">
+ The first string to compare.
+ </param>
+ <param name="param2">
+ The second strnig to compare.
+ </param>
+ <returns>
+ A positive integer if the <paramref name="param1"/> parameter is
+ greater than the <paramref name="param2"/> parameter, a negative
+ integer if the <paramref name="param1"/> parameter is less than
+ the <paramref name="param2"/> parameter, or zero if they are
+ equal.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteDelegateFunction">
+ <summary>
+ This class implements a SQLite function using a <see cref="T:System.Delegate"/>.
+ All the virtual methods of the <see cref="T:System.Data.SQLite.SQLiteFunction"/> class are
+ implemented using calls to the <see cref="T:System.Data.SQLite.SQLiteInvokeDelegate"/>,
+ <see cref="T:System.Data.SQLite.SQLiteStepDelegate"/>, <see cref="T:System.Data.SQLite.SQLiteFinalDelegate"/>,
+ and <see cref="T:System.Data.SQLite.SQLiteCompareDelegate"/> strongly typed delegate types
+ or via the <see cref="M:System.Delegate.DynamicInvoke(System.Object[])"/> method.
+ The arguments are presented in the same order they appear in
+ the associated <see cref="T:System.Data.SQLite.SQLiteFunction"/> methods with one exception:
+ the first argument is the name of the virtual method being implemented.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDelegateFunction.NoCallbackError">
+ <summary>
+ This error message is used by the overridden virtual methods when
+ a required <see cref="T:System.Delegate"/> property (e.g.
+ <see cref="P:System.Data.SQLite.SQLiteDelegateFunction.Callback1"/> or <see cref="P:System.Data.SQLite.SQLiteDelegateFunction.Callback2"/>) has not been
+ set.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteDelegateFunction.ResultInt32Error">
+ <summary>
+ This error message is used by the overridden <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Compare(System.String,System.String)"/>
+ method when the result does not have a type of <see cref="T:System.Int32"/>.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDelegateFunction.#ctor">
+ <summary>
+ Constructs an empty instance of this class.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDelegateFunction.#ctor(System.Delegate,System.Delegate)">
+ <summary>
+ Constructs an instance of this class using the specified
+ <see cref="T:System.Delegate"/> as the <see cref="T:System.Data.SQLite.SQLiteFunction"/>
+ implementation.
+ </summary>
+ <param name="callback1">
+ The <see cref="T:System.Delegate"/> to be used for all calls into the
+ <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Invoke(System.Object[])"/>, <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Step(System.Object[],System.Int32,System.Object@)"/>, and
+ <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Compare(System.String,System.String)"/> virtual methods needed by the
+ <see cref="T:System.Data.SQLite.SQLiteFunction"/> base class.
+ </param>
+ <param name="callback2">
+ The <see cref="T:System.Delegate"/> to be used for all calls into the
+ <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Final(System.Object)"/> virtual methods needed by the
+ <see cref="T:System.Data.SQLite.SQLiteFunction"/> base class.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDelegateFunction.GetInvokeArgs(System.Object[],System.Boolean)">
+ <summary>
+ Returns the list of arguments for the <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Invoke(System.Object[])"/> method,
+ as an <see cref="T:System.Array"/> of <see cref="T:System.Object"/>. The first
+ argument is always the literal string "Invoke".
+ </summary>
+ <param name="args">
+ The original arguments received by the <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Invoke(System.Object[])"/> method.
+ </param>
+ <param name="earlyBound">
+ Non-zero if the returned arguments are going to be used with the
+ <see cref="T:System.Data.SQLite.SQLiteInvokeDelegate"/> type; otherwise, zero.
+ </param>
+ <returns>
+ The arguments to pass to the configured <see cref="T:System.Delegate"/>.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDelegateFunction.GetStepArgs(System.Object[],System.Int32,System.Object,System.Boolean)">
+ <summary>
+ Returns the list of arguments for the <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Step(System.Object[],System.Int32,System.Object@)"/> method,
+ as an <see cref="T:System.Array"/> of <see cref="T:System.Object"/>. The first
+ argument is always the literal string "Step".
+ </summary>
+ <param name="args">
+ The original arguments received by the <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Step(System.Object[],System.Int32,System.Object@)"/> method.
+ </param>
+ <param name="stepNumber">
+ The step number (one based). This is incrememted each time the
+ <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Step(System.Object[],System.Int32,System.Object@)"/> method is called.
+ </param>
+ <param name="contextData">
+ A placeholder for implementers to store contextual data pertaining
+ to the current context.
+ </param>
+ <param name="earlyBound">
+ Non-zero if the returned arguments are going to be used with the
+ <see cref="T:System.Data.SQLite.SQLiteStepDelegate"/> type; otherwise, zero.
+ </param>
+ <returns>
+ The arguments to pass to the configured <see cref="T:System.Delegate"/>.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDelegateFunction.UpdateStepArgs(System.Object[],System.Object@,System.Boolean)">
+ <summary>
+ Updates the output arguments for the <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Step(System.Object[],System.Int32,System.Object@)"/> method,
+ using an <see cref="T:System.Array"/> of <see cref="T:System.Object"/>. The first
+ argument is always the literal string "Step". Currently, only the
+ <paramref name="contextData"/> parameter is updated.
+ </summary>
+ <param name="args">
+ The original arguments received by the <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Step(System.Object[],System.Int32,System.Object@)"/> method.
+ </param>
+ <param name="contextData">
+ A placeholder for implementers to store contextual data pertaining
+ to the current context.
+ </param>
+ <param name="earlyBound">
+ Non-zero if the returned arguments are going to be used with the
+ <see cref="T:System.Data.SQLite.SQLiteStepDelegate"/> type; otherwise, zero.
+ </param>
+ <returns>
+ The arguments to pass to the configured <see cref="T:System.Delegate"/>.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDelegateFunction.GetFinalArgs(System.Object,System.Boolean)">
+ <summary>
+ Returns the list of arguments for the <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Final(System.Object)"/> method,
+ as an <see cref="T:System.Array"/> of <see cref="T:System.Object"/>. The first
+ argument is always the literal string "Final".
+ </summary>
+ <param name="contextData">
+ A placeholder for implementers to store contextual data pertaining
+ to the current context.
+ </param>
+ <param name="earlyBound">
+ Non-zero if the returned arguments are going to be used with the
+ <see cref="T:System.Data.SQLite.SQLiteFinalDelegate"/> type; otherwise, zero.
+ </param>
+ <returns>
+ The arguments to pass to the configured <see cref="T:System.Delegate"/>.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDelegateFunction.GetCompareArgs(System.String,System.String,System.Boolean)">
+ <summary>
+ Returns the list of arguments for the <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Compare(System.String,System.String)"/> method,
+ as an <see cref="T:System.Array"/> of <see cref="T:System.Object"/>. The first
+ argument is always the literal string "Compare".
+ </summary>
+ <param name="param1">
+ The first string to compare.
+ </param>
+ <param name="param2">
+ The second strnig to compare.
+ </param>
+ <param name="earlyBound">
+ Non-zero if the returned arguments are going to be used with the
+ <see cref="T:System.Data.SQLite.SQLiteCompareDelegate"/> type; otherwise, zero.
+ </param>
+ <returns>
+ The arguments to pass to the configured <see cref="T:System.Delegate"/>.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDelegateFunction.Invoke(System.Object[])">
+ <summary>
+ This virtual method is the implementation for scalar functions.
+ See the <see cref="M:System.Data.SQLite.SQLiteFunction.Invoke(System.Object[])"/> method for more
+ details.
+ </summary>
+ <param name="args">
+ The arguments for the scalar function.
+ </param>
+ <returns>
+ The result of the scalar function.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDelegateFunction.Step(System.Object[],System.Int32,System.Object@)">
+ <summary>
+ This virtual method is part of the implementation for aggregate
+ functions. See the <see cref="M:System.Data.SQLite.SQLiteFunction.Step(System.Object[],System.Int32,System.Object@)"/> method
+ for more details.
+ </summary>
+ <param name="args">
+ The arguments for the aggregate function.
+ </param>
+ <param name="stepNumber">
+ The step number (one based). This is incrememted each time the
+ <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Step(System.Object[],System.Int32,System.Object@)"/> method is called.
+ </param>
+ <param name="contextData">
+ A placeholder for implementers to store contextual data pertaining
+ to the current context.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDelegateFunction.Final(System.Object)">
+ <summary>
+ This virtual method is part of the implementation for aggregate
+ functions. See the <see cref="M:System.Data.SQLite.SQLiteFunction.Final(System.Object)"/> method
+ for more details.
+ </summary>
+ <param name="contextData">
+ A placeholder for implementers to store contextual data pertaining
+ to the current context.
+ </param>
+ <returns>
+ The result of the aggregate function.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteDelegateFunction.Compare(System.String,System.String)">
+ <summary>
+ This virtual method is part of the implementation for collating
+ sequences. See the <see cref="M:System.Data.SQLite.SQLiteFunction.Compare(System.String,System.String)"/> method
+ for more details.
+ </summary>
+ <param name="param1">
+ The first string to compare.
+ </param>
+ <param name="param2">
+ The second strnig to compare.
+ </param>
+ <returns>
+ A positive integer if the <paramref name="param1"/> parameter is
+ greater than the <paramref name="param2"/> parameter, a negative
+ integer if the <paramref name="param1"/> parameter is less than
+ the <paramref name="param2"/> parameter, or zero if they are
+ equal.
+ </returns>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteDelegateFunction.Callback1">
+ <summary>
+ The <see cref="T:System.Delegate"/> to be used for all calls into the
+ <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Invoke(System.Object[])"/>, <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Step(System.Object[],System.Int32,System.Object@)"/>, and
+ <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Compare(System.String,System.String)"/> virtual methods needed by the
+ <see cref="T:System.Data.SQLite.SQLiteFunction"/> base class.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteDelegateFunction.Callback2">
+ <summary>
+ The <see cref="T:System.Delegate"/> to be used for all calls into the
+ <see cref="M:System.Data.SQLite.SQLiteDelegateFunction.Final(System.Object)"/> virtual methods needed by the
+ <see cref="T:System.Data.SQLite.SQLiteFunction"/> base class.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteFunctionEx">
+ <summary>
+ Extends SQLiteFunction and allows an inherited class to obtain the collating sequence associated with a function call.
+ </summary>
+ <remarks>
+ User-defined functions can call the GetCollationSequence() method in this class and use it to compare strings and char arrays.
+ </remarks>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunctionEx.GetCollationSequence">
+ <summary>
+ Obtains the collating sequence in effect for the given function.
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunctionEx.Dispose(System.Boolean)">
+ <summary>
+ Cleans up resources (native and managed) associated with the current instance.
+ </summary>
+ <param name="disposing">
+ Zero when being disposed via garbage collection; otherwise, non-zero.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.FunctionType">
+ <summary>
+ The type of user-defined function to declare
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.FunctionType.Scalar">
+ <summary>
+ Scalar functions are designed to be called and return a result immediately. Examples include ABS(), Upper(), Lower(), etc.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.FunctionType.Aggregate">
+ <summary>
+ Aggregate functions are designed to accumulate data until the end of a call and then return a result gleaned from the accumulated data.
+ Examples include SUM(), COUNT(), AVG(), etc.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.FunctionType.Collation">
+ <summary>
+ Collating sequences are used to sort textual data in a custom manner, and appear in an ORDER BY clause. Typically text in an ORDER BY is
+ sorted using a straight case-insensitive comparison function. Custom collating sequences can be used to alter the behavior of text sorting
+ in a user-defined manner.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteCallback">
+ <summary>
+ An internal callback delegate declaration.
+ </summary>
+ <param name="context">Raw native context pointer for the user function.</param>
+ <param name="argc">Total number of arguments to the user function.</param>
+ <param name="argv">Raw native pointer to the array of raw native argument pointers.</param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteFinalCallback">
+ <summary>
+ An internal final callback delegate declaration.
+ </summary>
+ <param name="context">Raw context pointer for the user function</param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteCollation">
+ <summary>
+ Internal callback delegate for implementing collating sequences
+ </summary>
+ <param name="puser">Not used</param>
+ <param name="len1">Length of the string pv1</param>
+ <param name="pv1">Pointer to the first string to compare</param>
+ <param name="len2">Length of the string pv2</param>
+ <param name="pv2">Pointer to the second string to compare</param>
+ <returns>Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater
+ than the second.</returns>
+ </member>
+ <member name="T:System.Data.SQLite.CollationTypeEnum">
+ <summary>
+ The type of collating sequence
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.CollationTypeEnum.Binary">
+ <summary>
+ The built-in BINARY collating sequence
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.CollationTypeEnum.NoCase">
+ <summary>
+ The built-in NOCASE collating sequence
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.CollationTypeEnum.Reverse">
+ <summary>
+ The built-in REVERSE collating sequence
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.CollationTypeEnum.Custom">
+ <summary>
+ A custom user-defined collating sequence
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.CollationEncodingEnum">
+ <summary>
+ The encoding type the collation sequence uses
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.CollationEncodingEnum.UTF8">
+ <summary>
+ The collation sequence is UTF8
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.CollationEncodingEnum.UTF16LE">
+ <summary>
+ The collation sequence is UTF16 little-endian
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.CollationEncodingEnum.UTF16BE">
+ <summary>
+ The collation sequence is UTF16 big-endian
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.CollationSequence">
+ <summary>
+ A struct describing the collating sequence a function is executing in
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.CollationSequence.Name">
+ <summary>
+ The name of the collating sequence
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.CollationSequence.Type">
+ <summary>
+ The type of collating sequence
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.CollationSequence.Encoding">
+ <summary>
+ The text encoding of the collation sequence
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.CollationSequence._func">
+ <summary>
+ Context of the function that requested the collating sequence
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.CollationSequence.Compare(System.String,System.String)">
+ <summary>
+ Calls the base collating sequence to compare two strings
+ </summary>
+ <param name="s1">The first string to compare</param>
+ <param name="s2">The second string to compare</param>
+ <returns>-1 if s1 is less than s2, 0 if s1 is equal to s2, and 1 if s1 is greater than s2</returns>
+ </member>
+ <member name="M:System.Data.SQLite.CollationSequence.Compare(System.Char[],System.Char[])">
+ <summary>
+ Calls the base collating sequence to compare two character arrays
+ </summary>
+ <param name="c1">The first array to compare</param>
+ <param name="c2">The second array to compare</param>
+ <returns>-1 if c1 is less than c2, 0 if c1 is equal to c2, and 1 if c1 is greater than c2</returns>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteFunctionAttribute">
+ <summary>
+ A simple custom attribute to enable us to easily find user-defined functions in
+ the loaded assemblies and initialize them in SQLite as connections are made.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunctionAttribute.#ctor">
+ <summary>
+ Default constructor, initializes the internal variables for the function.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteFunctionAttribute.#ctor(System.String,System.Int32,System.Data.SQLite.FunctionType)">
+ <summary>
+ Constructs an instance of this class. This sets the initial
+ <see cref="P:System.Data.SQLite.SQLiteFunctionAttribute.InstanceType"/>, <see cref="P:System.Data.SQLite.SQLiteFunctionAttribute.Callback1"/>, and
+ <see cref="P:System.Data.SQLite.SQLiteFunctionAttribute.Callback2"/> properties to null.
+ </summary>
+ <param name="name">
+ The name of the function, as seen by the SQLite core library.
+ </param>
+ <param name="argumentCount">
+ The number of arguments that the function will accept.
+ </param>
+ <param name="functionType">
+ The type of function being declared. This will either be Scalar,
+ Aggregate, or Collation.
+ </param>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteFunctionAttribute.Name">
+ <summary>
+ The function's name as it will be used in SQLite command text.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteFunctionAttribute.Arguments">
+ <summary>
+ The number of arguments this function expects. -1 if the number of arguments is variable.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteFunctionAttribute.FuncType">
+ <summary>
+ The type of function this implementation will be.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteFunctionAttribute.InstanceType">
+ <summary>
+ The <see cref="T:System.Type"/> object instance that describes the class
+ containing the implementation for the associated function. The value of
+ this property will not be used if either the <see cref="P:System.Data.SQLite.SQLiteFunctionAttribute.Callback1"/> or
+ <see cref="P:System.Data.SQLite.SQLiteFunctionAttribute.Callback2"/> property values are set to non-null.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteFunctionAttribute.Callback1">
+ <summary>
+ The <see cref="T:System.Delegate"/> that refers to the implementation for the
+ associated function. If this property value is set to non-null, it will
+ be used instead of the <see cref="P:System.Data.SQLite.SQLiteFunctionAttribute.InstanceType"/> property value.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteFunctionAttribute.Callback2">
+ <summary>
+ The <see cref="T:System.Delegate"/> that refers to the implementation for the
+ associated function. If this property value is set to non-null, it will
+ be used instead of the <see cref="P:System.Data.SQLite.SQLiteFunctionAttribute.InstanceType"/> property value.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteKeyReader">
+ <summary>
+ This class provides key info for a given SQLite statement.
+ <remarks>
+ Providing key information for a given statement is non-trivial :(
+ </remarks>
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteKeyReader.#ctor(System.Data.SQLite.SQLiteConnection,System.Data.SQLite.SQLiteDataReader,System.Data.SQLite.SQLiteStatement)">
+ <summary>
+ This function does all the nasty work at determining what keys need to be returned for
+ a given statement.
+ </summary>
+ <param name="cnn"></param>
+ <param name="reader"></param>
+ <param name="stmt"></param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteKeyReader.Sync">
+ <summary>
+ Make sure all the subqueries are open and ready and sync'd with the current rowid
+ of the table they're supporting
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteKeyReader.Reset">
+ <summary>
+ Release any readers on any subqueries
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteKeyReader.AppendSchemaTable(System.Data.DataTable)">
+ <summary>
+ Append all the columns we've added to the original query to the schema
+ </summary>
+ <param name="tbl"></param>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteKeyReader.Count">
+ <summary>
+ How many additional columns of keyinfo we're holding
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteKeyReader.KeyInfo">
+ <summary>
+ Used to support CommandBehavior.KeyInfo
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteKeyReader.RowIdInfo">
+ <summary>
+ Used to keep track of the per-table RowId column metadata.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteKeyReader.KeyQuery">
+ <summary>
+ A single sub-query for a given table/database.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.LogEventArgs">
+ <summary>
+ Event data for logging event handlers.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.LogEventArgs.ErrorCode">
+ <summary>
+ The error code. The type of this object value should be
+ <see cref="T:System.Int32"/> or <see cref="T:System.Data.SQLite.SQLiteErrorCode"/>.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.LogEventArgs.Message">
+ <summary>
+ SQL statement text as the statement first begins executing
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.LogEventArgs.Data">
+ <summary>
+ Extra data associated with this event, if any.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.LogEventArgs.#ctor(System.IntPtr,System.Object,System.String,System.Object)">
+ <summary>
+ Constructs the object.
+ </summary>
+ <param name="pUserData">Should be null.</param>
+ <param name="errorCode">
+ The error code. The type of this object value should be
+ <see cref="T:System.Int32"/> or <see cref="T:System.Data.SQLite.SQLiteErrorCode"/>.
+ </param>
+ <param name="message">The error message, if any.</param>
+ <param name="data">The extra data, if any.</param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteLogEventHandler">
+ <summary>
+ Raised when a log event occurs.
+ </summary>
+ <param name="sender">The current connection</param>
+ <param name="e">Event arguments of the trace</param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteLog">
+ <summary>
+ Manages the SQLite custom logging functionality and the associated
+ callback for the whole process.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLog.syncRoot">
+ <summary>
+ Object used to synchronize access to the static instance data
+ for this class.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLog._domainUnload">
+ <summary>
+ Member variable to store the AppDomain.DomainUnload event handler.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLog._defaultHandler">
+ <summary>
+ The default log event handler.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLog._callback">
+ <summary>
+ The log callback passed to native SQLite engine. This must live
+ as long as the SQLite library has a pointer to it.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLog._sql">
+ <summary>
+ The base SQLite object to interop with.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLog._initializeCallCount">
+ <summary>
+ The number of times that the <see cref="M:System.Data.SQLite.SQLiteLog.Initialize(System.String)"/>
+ has been called when the logging subystem was actually eligible
+ to be initialized (i.e. without the "No_SQLiteLog" environment
+ variable being set).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLog._attemptedInitialize">
+ <summary>
+ This will be non-zero if an attempt was already made to initialize
+ the (managed) logging subsystem.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteLog._enabled">
+ <summary>
+ This will be non-zero if logging is currently enabled.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteLog.Initialize">
+ <summary>
+ Initializes the SQLite logging facilities.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteLog.Initialize(System.String)">
+ <summary>
+ Initializes the SQLite logging facilities.
+ </summary>
+ <param name="className">
+ The name of the managed class that called this method. This
+ parameter may be null.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteLog.DomainUnload(System.Object,System.EventArgs)">
+ <summary>
+ Handles the AppDomain being unloaded.
+ </summary>
+ <param name="sender">Should be null.</param>
+ <param name="e">The data associated with this event.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteLog.LogMessage(System.String)">
+ <summary>
+ Log a message to all the registered log event handlers without going
+ through the SQLite library.
+ </summary>
+ <param name="message">The message to be logged.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteLog.LogMessage(System.Data.SQLite.SQLiteErrorCode,System.String)">
+ <summary>
+ Log a message to all the registered log event handlers without going
+ through the SQLite library.
+ </summary>
+ <param name="errorCode">The SQLite error code.</param>
+ <param name="message">The message to be logged.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteLog.LogMessage(System.Int32,System.String)">
+ <summary>
+ Log a message to all the registered log event handlers without going
+ through the SQLite library.
+ </summary>
+ <param name="errorCode">The integer error code.</param>
+ <param name="message">The message to be logged.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteLog.LogMessage(System.Object,System.String)">
+ <summary>
+ Log a message to all the registered log event handlers without going
+ through the SQLite library.
+ </summary>
+ <param name="errorCode">
+ The error code. The type of this object value should be
+ System.Int32 or SQLiteErrorCode.
+ </param>
+ <param name="message">The message to be logged.</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteLog.InitializeDefaultHandler">
+ <summary>
+ Creates and initializes the default log event handler.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteLog.AddDefaultHandler">
+ <summary>
+ Adds the default log event handler to the list of handlers.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteLog.RemoveDefaultHandler">
+ <summary>
+ Removes the default log event handler from the list of handlers.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteLog.LogCallback(System.IntPtr,System.Int32,System.IntPtr)">
+ <summary>
+ Internal proxy function that calls any registered application log
+ event handlers.
+
+ WARNING: This method is used more-or-less directly by native code,
+ do not modify its type signature.
+ </summary>
+ <param name="pUserData">
+ The extra data associated with this message, if any.
+ </param>
+ <param name="errorCode">
+ The error code associated with this message.
+ </param>
+ <param name="pMessage">
+ The message string to be logged.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteLog.LogEventHandler(System.Object,System.Data.SQLite.LogEventArgs)">
+ <summary>
+ Default logger. Currently, uses the Trace class (i.e. sends events
+ to the current trace listeners, if any).
+ </summary>
+ <param name="sender">Should be null.</param>
+ <param name="e">The data associated with this event.</param>
+ </member>
+ <member name="E:System.Data.SQLite.SQLiteLog._handlers">
+ <summary>
+ Member variable to store the application log handler to call.
+ </summary>
+ </member>
+ <member name="E:System.Data.SQLite.SQLiteLog.Log">
+ <summary>
+ This event is raised whenever SQLite raises a logging event.
+ Note that this should be set as one of the first things in the
+ application.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteLog.Enabled">
+ <summary>
+ If this property is true, logging is enabled; otherwise, logging is
+ disabled. When logging is disabled, no logging events will fire.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteMetaDataCollectionNames">
+ <summary>
+ MetaDataCollections specific to SQLite
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteMetaDataCollectionNames.Catalogs">
+ <summary>
+ Returns a list of databases attached to the connection
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteMetaDataCollectionNames.Columns">
+ <summary>
+ Returns column information for the specified table
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteMetaDataCollectionNames.Indexes">
+ <summary>
+ Returns index information for the optionally-specified table
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteMetaDataCollectionNames.IndexColumns">
+ <summary>
+ Returns base columns for the given index
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteMetaDataCollectionNames.Tables">
+ <summary>
+ Returns the tables in the given catalog
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteMetaDataCollectionNames.Views">
+ <summary>
+ Returns user-defined views in the given catalog
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteMetaDataCollectionNames.ViewColumns">
+ <summary>
+ Returns underlying column information on the given view
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteMetaDataCollectionNames.ForeignKeys">
+ <summary>
+ Returns foreign key information for the given catalog
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteMetaDataCollectionNames.Triggers">
+ <summary>
+ Returns the triggers on the database
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteParameter">
+ <summary>
+ SQLite implementation of DbParameter.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteParameter.UnknownDbType">
+ <summary>
+ This value represents an "unknown" <see cref="P:System.Data.SQLite.SQLiteParameter.DbType"/>.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteParameter._command">
+ <summary>
+ The command associated with this parameter.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteParameter._dbType">
+ <summary>
+ The data type of the parameter
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteParameter._rowVersion">
+ <summary>
+ The version information for mapping the parameter
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteParameter._objValue">
+ <summary>
+ The value of the data in the parameter
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteParameter._sourceColumn">
+ <summary>
+ The source column for the parameter
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteParameter._parameterName">
+ <summary>
+ The column name
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteParameter._dataSize">
+ <summary>
+ The data size, unused by SQLite
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteParameter._typeName">
+ <summary>
+ The database type name associated with this parameter, if any.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.Data.IDbCommand)">
+ <summary>
+ Constructor used when creating for use with a specific command.
+ </summary>
+ <param name="command">
+ The command associated with this parameter.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor">
+ <summary>
+ Default constructor
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.String)">
+ <summary>
+ Constructs a named parameter given the specified parameter name
+ </summary>
+ <param name="parameterName">The parameter name</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.String,System.Object)">
+ <summary>
+ Constructs a named parameter given the specified parameter name and initial value
+ </summary>
+ <param name="parameterName">The parameter name</param>
+ <param name="value">The initial value of the parameter</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.String,System.Data.DbType)">
+ <summary>
+ Constructs a named parameter of the specified type
+ </summary>
+ <param name="parameterName">The parameter name</param>
+ <param name="dbType">The datatype of the parameter</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.String,System.Data.DbType,System.String)">
+ <summary>
+ Constructs a named parameter of the specified type and source column reference
+ </summary>
+ <param name="parameterName">The parameter name</param>
+ <param name="dbType">The data type</param>
+ <param name="sourceColumn">The source column</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.String,System.Data.DbType,System.String,System.Data.DataRowVersion)">
+ <summary>
+ Constructs a named parameter of the specified type, source column and row version
+ </summary>
+ <param name="parameterName">The parameter name</param>
+ <param name="dbType">The data type</param>
+ <param name="sourceColumn">The source column</param>
+ <param name="rowVersion">The row version information</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.Data.DbType)">
+ <summary>
+ Constructs an unnamed parameter of the specified data type
+ </summary>
+ <param name="dbType">The datatype of the parameter</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.Data.DbType,System.Object)">
+ <summary>
+ Constructs an unnamed parameter of the specified data type and sets the initial value
+ </summary>
+ <param name="dbType">The datatype of the parameter</param>
+ <param name="value">The initial value of the parameter</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.Data.DbType,System.String)">
+ <summary>
+ Constructs an unnamed parameter of the specified data type and source column
+ </summary>
+ <param name="dbType">The datatype of the parameter</param>
+ <param name="sourceColumn">The source column</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.Data.DbType,System.String,System.Data.DataRowVersion)">
+ <summary>
+ Constructs an unnamed parameter of the specified data type, source column and row version
+ </summary>
+ <param name="dbType">The data type</param>
+ <param name="sourceColumn">The source column</param>
+ <param name="rowVersion">The row version information</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.String,System.Data.DbType,System.Int32)">
+ <summary>
+ Constructs a named parameter of the specified type and size
+ </summary>
+ <param name="parameterName">The parameter name</param>
+ <param name="parameterType">The data type</param>
+ <param name="parameterSize">The size of the parameter</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.String,System.Data.DbType,System.Int32,System.String)">
+ <summary>
+ Constructs a named parameter of the specified type, size and source column
+ </summary>
+ <param name="parameterName">The name of the parameter</param>
+ <param name="parameterType">The data type</param>
+ <param name="parameterSize">The size of the parameter</param>
+ <param name="sourceColumn">The source column</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.String,System.Data.DbType,System.Int32,System.String,System.Data.DataRowVersion)">
+ <summary>
+ Constructs a named parameter of the specified type, size, source column and row version
+ </summary>
+ <param name="parameterName">The name of the parameter</param>
+ <param name="parameterType">The data type</param>
+ <param name="parameterSize">The size of the parameter</param>
+ <param name="sourceColumn">The source column</param>
+ <param name="rowVersion">The row version information</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.String,System.Data.DbType,System.Int32,System.Data.ParameterDirection,System.Boolean,System.Byte,System.Byte,System.String,System.Data.DataRowVersion,System.Object)">
+ <summary>
+ Constructs a named parameter of the specified type, size, source column and row version
+ </summary>
+ <param name="parameterName">The name of the parameter</param>
+ <param name="parameterType">The data type</param>
+ <param name="parameterSize">The size of the parameter</param>
+ <param name="direction">Only input parameters are supported in SQLite</param>
+ <param name="isNullable">Ignored</param>
+ <param name="precision">Ignored</param>
+ <param name="scale">Ignored</param>
+ <param name="sourceColumn">The source column</param>
+ <param name="rowVersion">The row version information</param>
+ <param name="value">The initial value to assign the parameter</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.String,System.Data.DbType,System.Int32,System.Data.ParameterDirection,System.Byte,System.Byte,System.String,System.Data.DataRowVersion,System.Boolean,System.Object)">
+ <summary>
+ Constructs a named parameter, yet another flavor
+ </summary>
+ <param name="parameterName">The name of the parameter</param>
+ <param name="parameterType">The data type</param>
+ <param name="parameterSize">The size of the parameter</param>
+ <param name="direction">Only input parameters are supported in SQLite</param>
+ <param name="precision">Ignored</param>
+ <param name="scale">Ignored</param>
+ <param name="sourceColumn">The source column</param>
+ <param name="rowVersion">The row version information</param>
+ <param name="sourceColumnNullMapping">Whether or not this parameter is for comparing NULL's</param>
+ <param name="value">The intial value to assign the parameter</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.Data.DbType,System.Int32)">
+ <summary>
+ Constructs an unnamed parameter of the specified type and size
+ </summary>
+ <param name="parameterType">The data type</param>
+ <param name="parameterSize">The size of the parameter</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.Data.DbType,System.Int32,System.String)">
+ <summary>
+ Constructs an unnamed parameter of the specified type, size, and source column
+ </summary>
+ <param name="parameterType">The data type</param>
+ <param name="parameterSize">The size of the parameter</param>
+ <param name="sourceColumn">The source column</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.#ctor(System.Data.DbType,System.Int32,System.String,System.Data.DataRowVersion)">
+ <summary>
+ Constructs an unnamed parameter of the specified type, size, source column and row version
+ </summary>
+ <param name="parameterType">The data type</param>
+ <param name="parameterSize">The size of the parameter</param>
+ <param name="sourceColumn">The source column</param>
+ <param name="rowVersion">The row version information</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.ResetDbType">
+ <summary>
+ Resets the DbType of the parameter so it can be inferred from the value
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameter.Clone">
+ <summary>
+ Clones a parameter
+ </summary>
+ <returns>A new, unassociated SQLiteParameter</returns>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameter.Command">
+ <summary>
+ The command associated with this parameter.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameter.IsNullable">
+ <summary>
+ Whether or not the parameter can contain a null value
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameter.DbType">
+ <summary>
+ Returns the datatype of the parameter
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameter.Direction">
+ <summary>
+ Supports only input parameters
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameter.ParameterName">
+ <summary>
+ Returns the parameter name
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameter.Size">
+ <summary>
+ Returns the size of the parameter
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameter.SourceColumn">
+ <summary>
+ Gets/sets the source column
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameter.SourceColumnNullMapping">
+ <summary>
+ Used by DbCommandBuilder to determine the mapping for nullable fields
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameter.SourceVersion">
+ <summary>
+ Gets and sets the row version
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameter.Value">
+ <summary>
+ Gets and sets the parameter value. If no datatype was specified, the datatype will assume the type from the value given.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameter.TypeName">
+ <summary>
+ The database type name associated with this parameter, if any.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteParameterCollection">
+ <summary>
+ SQLite implementation of DbParameterCollection.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteParameterCollection._command">
+ <summary>
+ The underlying command to which this collection belongs
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteParameterCollection._parameterList">
+ <summary>
+ The internal array of parameters in this collection
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteParameterCollection._unboundFlag">
+ <summary>
+ Determines whether or not all parameters have been bound to their statement(s)
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.#ctor(System.Data.SQLite.SQLiteCommand)">
+ <summary>
+ Initializes the collection
+ </summary>
+ <param name="cmd">The command to which the collection belongs</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.GetEnumerator">
+ <summary>
+ Retrieves an enumerator for the collection
+ </summary>
+ <returns>An enumerator for the underlying array</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.Add(System.String,System.Data.DbType,System.Int32,System.String)">
+ <summary>
+ Adds a parameter to the collection
+ </summary>
+ <param name="parameterName">The parameter name</param>
+ <param name="parameterType">The data type</param>
+ <param name="parameterSize">The size of the value</param>
+ <param name="sourceColumn">The source column</param>
+ <returns>A SQLiteParameter object</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.Add(System.String,System.Data.DbType,System.Int32)">
+ <summary>
+ Adds a parameter to the collection
+ </summary>
+ <param name="parameterName">The parameter name</param>
+ <param name="parameterType">The data type</param>
+ <param name="parameterSize">The size of the value</param>
+ <returns>A SQLiteParameter object</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.Add(System.String,System.Data.DbType)">
+ <summary>
+ Adds a parameter to the collection
+ </summary>
+ <param name="parameterName">The parameter name</param>
+ <param name="parameterType">The data type</param>
+ <returns>A SQLiteParameter object</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.Add(System.Data.SQLite.SQLiteParameter)">
+ <summary>
+ Adds a parameter to the collection
+ </summary>
+ <param name="parameter">The parameter to add</param>
+ <returns>A zero-based index of where the parameter is located in the array</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.Add(System.Object)">
+ <summary>
+ Adds a parameter to the collection
+ </summary>
+ <param name="value">The parameter to add</param>
+ <returns>A zero-based index of where the parameter is located in the array</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.AddWithValue(System.String,System.Object)">
+ <summary>
+ Adds a named/unnamed parameter and its value to the parameter collection.
+ </summary>
+ <param name="parameterName">Name of the parameter, or null to indicate an unnamed parameter</param>
+ <param name="value">The initial value of the parameter</param>
+ <returns>Returns the SQLiteParameter object created during the call.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.AddRange(System.Data.SQLite.SQLiteParameter[])">
+ <summary>
+ Adds an array of parameters to the collection
+ </summary>
+ <param name="values">The array of parameters to add</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.AddRange(System.Array)">
+ <summary>
+ Adds an array of parameters to the collection
+ </summary>
+ <param name="values">The array of parameters to add</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.Clear">
+ <summary>
+ Clears the array and resets the collection
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.Contains(System.String)">
+ <summary>
+ Determines if the named parameter exists in the collection
+ </summary>
+ <param name="parameterName">The name of the parameter to check</param>
+ <returns>True if the parameter is in the collection</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.Contains(System.Object)">
+ <summary>
+ Determines if the parameter exists in the collection
+ </summary>
+ <param name="value">The SQLiteParameter to check</param>
+ <returns>True if the parameter is in the collection</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.CopyTo(System.Array,System.Int32)">
+ <summary>
+ Not implemented
+ </summary>
+ <param name="array"></param>
+ <param name="index"></param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.GetParameter(System.String)">
+ <summary>
+ Retrieve a parameter by name from the collection
+ </summary>
+ <param name="parameterName">The name of the parameter to fetch</param>
+ <returns>A DbParameter object</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.GetParameter(System.Int32)">
+ <summary>
+ Retrieves a parameter by its index in the collection
+ </summary>
+ <param name="index">The index of the parameter to retrieve</param>
+ <returns>A DbParameter object</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.IndexOf(System.String)">
+ <summary>
+ Returns the index of a parameter given its name
+ </summary>
+ <param name="parameterName">The name of the parameter to find</param>
+ <returns>-1 if not found, otherwise a zero-based index of the parameter</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.IndexOf(System.Object)">
+ <summary>
+ Returns the index of a parameter
+ </summary>
+ <param name="value">The parameter to find</param>
+ <returns>-1 if not found, otherwise a zero-based index of the parameter</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.Insert(System.Int32,System.Object)">
+ <summary>
+ Inserts a parameter into the array at the specified location
+ </summary>
+ <param name="index">The zero-based index to insert the parameter at</param>
+ <param name="value">The parameter to insert</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.Remove(System.Object)">
+ <summary>
+ Removes a parameter from the collection
+ </summary>
+ <param name="value">The parameter to remove</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.RemoveAt(System.String)">
+ <summary>
+ Removes a parameter from the collection given its name
+ </summary>
+ <param name="parameterName">The name of the parameter to remove</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.RemoveAt(System.Int32)">
+ <summary>
+ Removes a parameter from the collection given its index
+ </summary>
+ <param name="index">The zero-based parameter index to remove</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.SetParameter(System.String,System.Data.Common.DbParameter)">
+ <summary>
+ Re-assign the named parameter to a new parameter object
+ </summary>
+ <param name="parameterName">The name of the parameter to replace</param>
+ <param name="value">The new parameter</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.SetParameter(System.Int32,System.Data.Common.DbParameter)">
+ <summary>
+ Re-assign a parameter at the specified index
+ </summary>
+ <param name="index">The zero-based index of the parameter to replace</param>
+ <param name="value">The new parameter</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.Unbind">
+ <summary>
+ Un-binds all parameters from their statements
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteParameterCollection.MapParameters(System.Data.SQLite.SQLiteStatement)">
+ <summary>
+ This function attempts to map all parameters in the collection to all statements in a Command.
+ Since named parameters may span multiple statements, this function makes sure all statements are bound
+ to the same named parameter. Unnamed parameters are bound in sequence.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameterCollection.IsSynchronized">
+ <summary>
+ Returns false
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameterCollection.IsFixedSize">
+ <summary>
+ Returns false
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameterCollection.IsReadOnly">
+ <summary>
+ Returns false
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameterCollection.SyncRoot">
+ <summary>
+ Returns null
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameterCollection.Count">
+ <summary>
+ Returns a count of parameters in the collection
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameterCollection.Item(System.String)">
+ <summary>
+ Overloaded to specialize the return value of the default indexer
+ </summary>
+ <param name="parameterName">Name of the parameter to get/set</param>
+ <returns>The specified named SQLite parameter</returns>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteParameterCollection.Item(System.Int32)">
+ <summary>
+ Overloaded to specialize the return value of the default indexer
+ </summary>
+ <param name="index">The index of the parameter to get/set</param>
+ <returns>The specified SQLite parameter</returns>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteStatement">
+ <summary>
+ Represents a single SQL statement in SQLite.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatement._sql">
+ <summary>
+ The underlying SQLite object this statement is bound to
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatement._sqlStatement">
+ <summary>
+ The command text of this SQL statement
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatement._sqlite_stmt">
+ <summary>
+ The actual statement pointer
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatement._unnamedParameters">
+ <summary>
+ An index from which unnamed parameters begin
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatement._paramNames">
+ <summary>
+ Names of the parameters as SQLite understands them to be
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatement._paramValues">
+ <summary>
+ Parameters for this statement
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatement._command">
+ <summary>
+ Command this statement belongs to (if any)
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStatement._flags">
+ <summary>
+ The flags associated with the parent connection object.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStatement.#ctor(System.Data.SQLite.SQLiteBase,System.Data.SQLite.SQLiteConnectionFlags,System.Data.SQLite.SQLiteStatementHandle,System.String,System.Data.SQLite.SQLiteStatement)">
+ <summary>
+ Initializes the statement and attempts to get all information about parameters in the statement
+ </summary>
+ <param name="sqlbase">The base SQLite object</param>
+ <param name="flags">The flags associated with the parent connection object</param>
+ <param name="stmt">The statement</param>
+ <param name="strCommand">The command text for this statement</param>
+ <param name="previous">The previous command in a multi-statement command</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStatement.Dispose">
+ <summary>
+ Disposes and finalizes the statement
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStatement.TryGetChanges(System.Int32@,System.Boolean@)">
+ <summary>
+ If the underlying database connection is open, fetches the number of changed rows
+ resulting from the most recent query; otherwise, does nothing.
+ </summary>
+ <param name="changes">
+ The number of changes when true is returned.
+ Undefined if false is returned.
+ </param>
+ <param name="readOnly">
+ The read-only flag when true is returned.
+ Undefined if false is returned.
+ </param>
+ <returns>Non-zero if the number of changed rows was fetched.</returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStatement.MapParameter(System.String,System.Data.SQLite.SQLiteParameter)">
+ <summary>
+ Called by SQLiteParameterCollection, this function determines if the specified parameter name belongs to
+ this statement, and if so, keeps a reference to the parameter so it can be bound later.
+ </summary>
+ <param name="s">The parameter name to map</param>
+ <param name="p">The parameter to assign it</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStatement.BindParameters">
+ <summary>
+ Bind all parameters, making sure the caller didn't miss any
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStatement.GetConnection(System.Data.SQLite.SQLiteStatement)">
+ <summary>
+ This method attempts to query the database connection associated with
+ the statement in use. If the underlying command or connection is
+ unavailable, a null value will be returned.
+ </summary>
+ <returns>
+ The connection object -OR- null if it is unavailable.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStatement.InvokeBindValueCallback(System.Int32,System.Data.SQLite.SQLiteParameter,System.Boolean@)">
+ <summary>
+ Invokes the parameter binding callback configured for the database
+ type name associated with the specified column. If no parameter
+ binding callback is available for the database type name, do
+ nothing.
+ </summary>
+ <param name="index">
+ The index of the column being read.
+ </param>
+ <param name="parameter">
+ The <see cref="T:System.Data.SQLite.SQLiteParameter"/> instance being bound to the
+ command.
+ </param>
+ <param name="complete">
+ Non-zero if the default handling for the parameter binding call
+ should be skipped (i.e. the parameter should not be bound at all).
+ Great care should be used when setting this to non-zero.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStatement.BindParameter(System.Int32,System.Data.SQLite.SQLiteParameter)">
+ <summary>
+ Perform the bind operation for an individual parameter
+ </summary>
+ <param name="index">The index of the parameter to bind</param>
+ <param name="param">The parameter we're binding</param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteTransaction">
+ <summary>
+ SQLite implementation of DbTransaction that does not support nested transactions.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteTransactionBase">
+ <summary>
+ Base class used by to implement DbTransaction for SQLite.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteTransactionBase._cnn">
+ <summary>
+ The connection to which this transaction is bound.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteTransactionBase._version">
+ <summary>
+ Matches the version of the connection.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteTransactionBase._level">
+ <summary>
+ The isolation level for this transaction.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTransactionBase.#ctor(System.Data.SQLite.SQLiteConnection,System.Boolean)">
+ <summary>
+ Constructs the transaction object, binding it to the supplied connection
+ </summary>
+ <param name="connection">The connection to open a transaction on</param>
+ <param name="deferredLock">TRUE to defer the writelock, or FALSE to lock immediately</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTransactionBase.Dispose(System.Boolean)">
+ <summary>
+ Disposes the transaction. If it is currently active, any changes are rolled back.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTransactionBase.Rollback">
+ <summary>
+ Rolls back the active transaction.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTransactionBase.Begin(System.Boolean)">
+ <summary>
+ Attempts to start a transaction. An exception will be thrown if the transaction cannot
+ be started for any reason.
+ </summary>
+ <param name="deferredLock">TRUE to defer the writelock, or FALSE to lock immediately</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTransactionBase.IssueRollback(System.Boolean)">
+ <summary>
+ Issue a ROLLBACK command against the database connection,
+ optionally re-throwing any caught exception.
+ </summary>
+ <param name="throwError">
+ Non-zero to re-throw caught exceptions.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTransactionBase.IsValid(System.Boolean)">
+ <summary>
+ Checks the state of this transaction, optionally throwing an exception if a state
+ inconsistency is found.
+ </summary>
+ <param name="throwError">
+ Non-zero to throw an exception if a state inconsistency is found.
+ </param>
+ <returns>
+ Non-zero if this transaction is valid; otherwise, false.
+ </returns>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteTransactionBase.IsolationLevel">
+ <summary>
+ Gets the isolation level of the transaction. SQLite only supports Serializable transactions.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteTransactionBase.Connection">
+ <summary>
+ Returns the underlying connection to which this transaction applies.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteTransactionBase.DbConnection">
+ <summary>
+ Forwards to the local Connection property
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTransaction.#ctor(System.Data.SQLite.SQLiteConnection,System.Boolean)">
+ <summary>
+ Constructs the transaction object, binding it to the supplied connection
+ </summary>
+ <param name="connection">The connection to open a transaction on</param>
+ <param name="deferredLock">TRUE to defer the writelock, or FALSE to lock immediately</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTransaction.Dispose(System.Boolean)">
+ <summary>
+ Disposes the transaction. If it is currently active, any changes are rolled back.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTransaction.Commit">
+ <summary>
+ Commits the current transaction.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTransaction.Begin(System.Boolean)">
+ <summary>
+ Attempts to start a transaction. An exception will be thrown if the transaction cannot
+ be started for any reason.
+ </summary>
+ <param name="deferredLock">TRUE to defer the writelock, or FALSE to lock immediately</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTransaction.IssueRollback(System.Boolean)">
+ <summary>
+ Issue a ROLLBACK command against the database connection,
+ optionally re-throwing any caught exception.
+ </summary>
+ <param name="throwError">
+ Non-zero to re-throw caught exceptions.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteTransaction2">
+ <summary>
+ SQLite implementation of DbTransaction that does support nested transactions.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteTransaction2._beginLevel">
+ <summary>
+ The original transaction level for the associated connection
+ when this transaction was created (i.e. begun).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteTransaction2._savePointName">
+ <summary>
+ The SAVEPOINT name for this transaction, if any. This will
+ only be non-null if this transaction is a nested one.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTransaction2.#ctor(System.Data.SQLite.SQLiteConnection,System.Boolean)">
+ <summary>
+ Constructs the transaction object, binding it to the supplied connection
+ </summary>
+ <param name="connection">The connection to open a transaction on</param>
+ <param name="deferredLock">TRUE to defer the writelock, or FALSE to lock immediately</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTransaction2.Dispose(System.Boolean)">
+ <summary>
+ Disposes the transaction. If it is currently active, any changes are rolled back.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTransaction2.Commit">
+ <summary>
+ Commits the current transaction.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTransaction2.Begin(System.Boolean)">
+ <summary>
+ Attempts to start a transaction. An exception will be thrown if the transaction cannot
+ be started for any reason.
+ </summary>
+ <param name="deferredLock">TRUE to defer the writelock, or FALSE to lock immediately</param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTransaction2.IssueRollback(System.Boolean)">
+ <summary>
+ Issue a ROLLBACK command against the database connection,
+ optionally re-throwing any caught exception.
+ </summary>
+ <param name="throwError">
+ Non-zero to re-throw caught exceptions.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteTransaction2.GetSavePointName">
+ <summary>
+ Constructs the name of a new savepoint for this transaction. It
+ should only be called from the constructor of this class.
+ </summary>
+ <returns>
+ The name of the new savepoint -OR- null if it cannot be constructed.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.HelperMethods">
+ <summary>
+ This static class provides some methods that are shared between the
+ native library pre-loader and other classes.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.HelperMethods.staticSyncRoot">
+ <summary>
+ This lock is used to protect the static <see cref="F:System.Data.SQLite.HelperMethods.isMono"/> and
+ <see cref="F:System.Data.SQLite.HelperMethods.isDotNetCore"/> fields.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.HelperMethods.MonoRuntimeType">
+ <summary>
+ This type is only present when running on Mono.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.HelperMethods.DotNetCoreLibType">
+ <summary>
+ This type is only present when running on .NET Core.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.HelperMethods.isMono">
+ <summary>
+ Keeps track of whether we are running on Mono. Initially null, it is
+ set by the <see cref="M:System.Data.SQLite.HelperMethods.IsMono"/> method on its first call. Later, it
+ is returned verbatim by the <see cref="M:System.Data.SQLite.HelperMethods.IsMono"/> method.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.HelperMethods.isDotNetCore">
+ <summary>
+ Keeps track of whether we are running on .NET Core. Initially null,
+ it is set by the <see cref="M:System.Data.SQLite.HelperMethods.IsDotNetCore"/> method on its first
+ call. Later, it is returned verbatim by the
+ <see cref="M:System.Data.SQLite.HelperMethods.IsDotNetCore"/> method.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.HelperMethods.debuggerBreak">
+ <summary>
+ Keeps track of whether we successfully invoked the
+ <see cref="M:System.Diagnostics.Debugger.Break"/> method. Initially null, it is set by
+ the <see cref="M:System.Data.SQLite.HelperMethods.MaybeBreakIntoDebugger"/> method on its first call.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.HelperMethods.GetProcessId">
+ <summary>
+ Determines the ID of the current process. Only used for debugging.
+ </summary>
+ <returns>
+ The ID of the current process -OR- zero if it cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.HelperMethods.IsMono">
+ <summary>
+ Determines whether or not this assembly is running on Mono.
+ </summary>
+ <returns>
+ Non-zero if this assembly is running on Mono.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.HelperMethods.IsDotNetCore">
+ <summary>
+ Determines whether or not this assembly is running on .NET Core.
+ </summary>
+ <returns>
+ Non-zero if this assembly is running on .NET Core.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.HelperMethods.ResetBreakIntoDebugger">
+ <summary>
+ Resets the cached value for the "PreLoadSQLite_BreakIntoDebugger"
+ configuration setting.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.HelperMethods.MaybeBreakIntoDebugger">
+ <summary>
+ If the "PreLoadSQLite_BreakIntoDebugger" configuration setting is
+ present (e.g. via the environment), give the interactive user an
+ opportunity to attach a debugger to the current process; otherwise,
+ do nothing.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.HelperMethods.GetThreadId">
+ <summary>
+ Determines the ID of the current thread. Only used for debugging.
+ </summary>
+ <returns>
+ The ID of the current thread -OR- zero if it cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.HelperMethods.HasFlags(System.Data.SQLite.SQLiteConnectionFlags,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Determines if the specified flags are present within the flags
+ associated with the parent connection object.
+ </summary>
+ <param name="flags">
+ The flags associated with the parent connection object.
+ </param>
+ <param name="hasFlags">
+ The flags to check for.
+ </param>
+ <returns>
+ Non-zero if the specified flag or flags were present; otherwise,
+ zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.HelperMethods.LogPrepare(System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Determines if preparing a query should be logged.
+ </summary>
+ <param name="flags">
+ The flags associated with the parent connection object.
+ </param>
+ <returns>
+ Non-zero if the query preparation should be logged; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.HelperMethods.LogPreBind(System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Determines if pre-parameter binding should be logged.
+ </summary>
+ <param name="flags">
+ The flags associated with the parent connection object.
+ </param>
+ <returns>
+ Non-zero if the pre-parameter binding should be logged; otherwise,
+ zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.HelperMethods.LogBind(System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Determines if parameter binding should be logged.
+ </summary>
+ <param name="flags">
+ The flags associated with the parent connection object.
+ </param>
+ <returns>
+ Non-zero if the parameter binding should be logged; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.HelperMethods.LogCallbackExceptions(System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Determines if an exception in a native callback should be logged.
+ </summary>
+ <param name="flags">
+ The flags associated with the parent connection object.
+ </param>
+ <returns>
+ Non-zero if the exception should be logged; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.HelperMethods.LogBackup(System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Determines if backup API errors should be logged.
+ </summary>
+ <param name="flags">
+ The flags associated with the parent connection object.
+ </param>
+ <returns>
+ Non-zero if the backup API error should be logged; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.HelperMethods.NoLogModule(System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Determines if logging for the <see cref="T:System.Data.SQLite.SQLiteModule"/> class is
+ disabled.
+ </summary>
+ <param name="flags">
+ The flags associated with the parent connection object.
+ </param>
+ <returns>
+ Non-zero if logging for the <see cref="T:System.Data.SQLite.SQLiteModule"/> class is
+ disabled; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.HelperMethods.LogModuleError(System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Determines if <see cref="T:System.Data.SQLite.SQLiteModule"/> errors should be logged.
+ </summary>
+ <param name="flags">
+ The flags associated with the parent connection object.
+ </param>
+ <returns>
+ Non-zero if the <see cref="T:System.Data.SQLite.SQLiteModule"/> error should be logged;
+ otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.HelperMethods.LogModuleException(System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Determines if <see cref="T:System.Data.SQLite.SQLiteModule"/> exceptions should be
+ logged.
+ </summary>
+ <param name="flags">
+ The flags associated with the parent connection object.
+ </param>
+ <returns>
+ Non-zero if the <see cref="T:System.Data.SQLite.SQLiteModule"/> exception should be
+ logged; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.HelperMethods.IsWindows">
+ <summary>
+ Determines if the current process is running on one of the Windows
+ [sub-]platforms.
+ </summary>
+ <returns>
+ Non-zero when running on Windows; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.HelperMethods.StringFormat(System.IFormatProvider,System.String,System.Object[])">
+ <summary>
+ This is a wrapper around the
+ <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> method.
+ On Mono, it has to call the method overload without the
+ <see cref="T:System.IFormatProvider"/> parameter, due to a bug in Mono.
+ </summary>
+ <param name="provider">
+ This is used for culture-specific formatting.
+ </param>
+ <param name="format">
+ The format string.
+ </param>
+ <param name="args">
+ An array the objects to format.
+ </param>
+ <returns>
+ The resulting string.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.NativeLibraryHelper">
+ <summary>
+ This static class provides a thin wrapper around the native library
+ loading features of the underlying platform.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.NativeLibraryHelper.LoadLibraryWin32(System.String)">
+ <summary>
+ Attempts to load the specified native library file using the Win32
+ API.
+ </summary>
+ <param name="fileName">
+ The file name of the native library to load.
+ </param>
+ <returns>
+ The native module handle upon success -OR- IntPtr.Zero on failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.NativeLibraryHelper.GetMachineWin32">
+ <summary>
+ Attempts to determine the machine name of the current process using
+ the Win32 API.
+ </summary>
+ <returns>
+ The machine name for the current process -OR- null on failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.NativeLibraryHelper.LoadLibraryPosix(System.String)">
+ <summary>
+ Attempts to load the specified native library file using the POSIX
+ API.
+ </summary>
+ <param name="fileName">
+ The file name of the native library to load.
+ </param>
+ <returns>
+ The native module handle upon success -OR- IntPtr.Zero on failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.NativeLibraryHelper.GetMachinePosix">
+ <summary>
+ Attempts to determine the machine name of the current process using
+ the POSIX API.
+ </summary>
+ <returns>
+ The machine name for the current process -OR- null on failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.NativeLibraryHelper.LoadLibrary(System.String)">
+ <summary>
+ Attempts to load the specified native library file.
+ </summary>
+ <param name="fileName">
+ The file name of the native library to load.
+ </param>
+ <returns>
+ The native module handle upon success -OR- IntPtr.Zero on failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.NativeLibraryHelper.GetMachine">
+ <summary>
+ Attempts to determine the machine name of the current process.
+ </summary>
+ <returns>
+ The machine name for the current process -OR- null on failure.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.NativeLibraryHelper.LoadLibraryCallback">
+ <summary>
+ This delegate is used to wrap the concept of loading a native
+ library, based on a file name, and returning the loaded module
+ handle.
+ </summary>
+ <param name="fileName">
+ The file name of the native library to load.
+ </param>
+ <returns>
+ The native module handle upon success -OR- IntPtr.Zero on failure.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.NativeLibraryHelper.GetMachineCallback">
+ <summary>
+ This delegate is used to wrap the concept of querying the machine
+ name of the current process.
+ </summary>
+ <returns>
+ The machine name for the current process -OR- null on failure.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.UnsafeNativeMethodsPosix">
+ <summary>
+ This class declares P/Invoke methods to call native POSIX APIs.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethodsPosix.RTLD_LAZY">
+ <summary>
+ For use with dlopen(), bind function calls lazily.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethodsPosix.RTLD_NOW">
+ <summary>
+ For use with dlopen(), bind function calls immediately.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethodsPosix.RTLD_GLOBAL">
+ <summary>
+ For use with dlopen(), make symbols globally available.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethodsPosix.RTLD_LOCAL">
+ <summary>
+ For use with dlopen(), opposite of RTLD_GLOBAL, and the default.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethodsPosix.RTLD_DEFAULT">
+ <summary>
+ For use with dlopen(), the defaults used by this class.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethodsPosix.uname(System.Data.SQLite.UnsafeNativeMethodsPosix.utsname_interop@)">
+ <summary>
+ This is the P/Invoke method that wraps the native Unix uname
+ function. See the POSIX documentation for full details on what it
+ does.
+ </summary>
+ <param name="name">
+ Structure containing a preallocated byte buffer to fill with the
+ requested information.
+ </param>
+ <returns>
+ Zero for success and less than zero upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethodsPosix.dlopen(System.String,System.Int32)">
+ <summary>
+ This is the P/Invoke method that wraps the native Unix dlopen
+ function. See the POSIX documentation for full details on what it
+ does.
+ </summary>
+ <param name="fileName">
+ The name of the executable library.
+ </param>
+ <param name="mode">
+ This must be a combination of the individual bit flags RTLD_LAZY,
+ RTLD_NOW, RTLD_GLOBAL, and/or RTLD_LOCAL.
+ </param>
+ <returns>
+ The native module handle upon success -OR- IntPtr.Zero on failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethodsPosix.dlclose(System.IntPtr)">
+ <summary>
+ This is the P/Invoke method that wraps the native Unix dlclose
+ function. See the POSIX documentation for full details on what it
+ does.
+ </summary>
+ <param name="module">
+ The handle to the loaded native library.
+ </param>
+ <returns>
+ Zero upon success -OR- non-zero on failure.
+ </returns>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethodsPosix.utsNameSeparators">
+ <summary>
+ These are the characters used to separate the string fields within
+ the raw buffer returned by the <see cref="M:System.Data.SQLite.UnsafeNativeMethodsPosix.uname(System.Data.SQLite.UnsafeNativeMethodsPosix.utsname_interop@)"/> P/Invoke method.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethodsPosix.GetOsVersionInfo(System.Data.SQLite.UnsafeNativeMethodsPosix.utsname@)">
+ <summary>
+ This method is a wrapper around the <see cref="M:System.Data.SQLite.UnsafeNativeMethodsPosix.uname(System.Data.SQLite.UnsafeNativeMethodsPosix.utsname_interop@)"/> P/Invoke
+ method that extracts and returns the human readable strings from
+ the raw buffer.
+ </summary>
+ <param name="utsName">
+ This structure, which contains strings, will be filled based on the
+ data placed in the raw buffer returned by the <see cref="M:System.Data.SQLite.UnsafeNativeMethodsPosix.uname(System.Data.SQLite.UnsafeNativeMethodsPosix.utsname_interop@)"/>
+ P/Invoke method.
+ </param>
+ <returns>
+ Non-zero upon success; otherwise, zero.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.UnsafeNativeMethodsPosix.utsname">
+ <summary>
+ This structure is used when running on POSIX operating systems
+ to store information about the current machine, including the
+ human readable name of the operating system as well as that of
+ the underlying hardware.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.UnsafeNativeMethodsPosix.utsname_interop">
+ <summary>
+ This structure is passed directly to the P/Invoke method to
+ obtain the information about the current machine, including
+ the human readable name of the operating system as well as
+ that of the underlying hardware.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.UnsafeNativeMethodsWin32">
+ <summary>
+ This class declares P/Invoke methods to call native Win32 APIs.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethodsWin32.LoadLibrary(System.String)">
+ <summary>
+ This is the P/Invoke method that wraps the native Win32 LoadLibrary
+ function. See the MSDN documentation for full details on what it
+ does.
+ </summary>
+ <param name="fileName">
+ The name of the executable library.
+ </param>
+ <returns>
+ The native module handle upon success -OR- IntPtr.Zero on failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethodsWin32.GetSystemInfo(System.Data.SQLite.UnsafeNativeMethodsWin32.SYSTEM_INFO@)">
+ <summary>
+ This is the P/Invoke method that wraps the native Win32 GetSystemInfo
+ function. See the MSDN documentation for full details on what it
+ does.
+ </summary>
+ <param name="systemInfo">
+ The system information structure to be filled in by the function.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.UnsafeNativeMethodsWin32.ProcessorArchitecture">
+ <summary>
+ This enumeration contains the possible values for the processor
+ architecture field of the system information structure.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.UnsafeNativeMethodsWin32.SYSTEM_INFO">
+ <summary>
+ This structure contains information about the current computer. This
+ includes the processor type, page size, memory addresses, etc.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.UnsafeNativeMethods">
+ <summary>
+ This class declares P/Invoke methods to call native SQLite APIs.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethods.DllFileExtension">
+ <summary>
+ The file extension used for dynamic link libraries.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethods.ConfigFileExtension">
+ <summary>
+ The file extension used for the XML configuration file.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethods.XmlConfigFileName">
+ <summary>
+ This is the name of the XML configuration file specific to the
+ System.Data.SQLite assembly.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethods.XmlConfigDirectoryToken">
+ <summary>
+ This is the XML configuratrion file token that will be replaced with
+ the qualified path to the directory containing the XML configuration
+ file.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethods.AssemblyDirectoryToken">
+ <summary>
+ This is the environment variable token that will be replaced with
+ the qualified path to the directory containing this assembly.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethods.TargetFrameworkToken">
+ <summary>
+ This is the environment variable token that will be replaced with an
+ abbreviation of the target framework attribute value associated with
+ this assembly.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethods.staticSyncRoot">
+ <summary>
+ This lock is used to protect the static _SQLiteNativeModuleFileName,
+ _SQLiteNativeModuleHandle, and processorArchitecturePlatforms fields.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethods.targetFrameworkAbbreviations">
+ <summary>
+ This dictionary stores the mappings between target framework names
+ and their associated (NuGet) abbreviations. These mappings are only
+ used by the <see cref="M:System.Data.SQLite.UnsafeNativeMethods.AbbreviateTargetFramework(System.String)"/> method.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethods.processorArchitecturePlatforms">
+ <summary>
+ This dictionary stores the mappings between processor architecture
+ names and platform names. These mappings are now used for two
+ purposes. First, they are used to determine if the assembly code
+ base should be used instead of the location, based upon whether one
+ or more of the named sub-directories exist within the assembly code
+ base. Second, they are used to assist in loading the appropriate
+ SQLite interop assembly into the current process.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethods.cachedAssemblyDirectory">
+ <summary>
+ This is the cached return value from the
+ <see cref="M:System.Data.SQLite.UnsafeNativeMethods.GetAssemblyDirectory"/> method -OR- null if that method
+ has never returned a valid value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethods.noAssemblyDirectory">
+ <summary>
+ When this field is non-zero, it indicates the
+ <see cref="M:System.Data.SQLite.UnsafeNativeMethods.GetAssemblyDirectory"/> method was not able to locate a
+ suitable assembly directory. The
+ <see cref="M:System.Data.SQLite.UnsafeNativeMethods.GetCachedAssemblyDirectory"/> method will check this
+ field and skips calls into the <see cref="M:System.Data.SQLite.UnsafeNativeMethods.GetAssemblyDirectory"/>
+ method whenever it is non-zero.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethods.cachedXmlConfigFileName">
+ <summary>
+ This is the cached return value from the
+ <see cref="M:System.Data.SQLite.UnsafeNativeMethods.GetXmlConfigFileName"/> method -OR- null if that method
+ has never returned a valid value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethods.noXmlConfigFileName">
+ <summary>
+ When this field is non-zero, it indicates the
+ <see cref="M:System.Data.SQLite.UnsafeNativeMethods.GetXmlConfigFileName"/> method was not able to locate a
+ suitable XML configuration file name. The
+ <see cref="M:System.Data.SQLite.UnsafeNativeMethods.GetCachedXmlConfigFileName"/> method will check this
+ field and skips calls into the <see cref="M:System.Data.SQLite.UnsafeNativeMethods.GetXmlConfigFileName"/>
+ method whenever it is non-zero.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.#cctor">
+ <summary>
+ For now, this method simply calls the Initialize method.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.Initialize">
+ <summary>
+ Attempts to initialize this class by pre-loading the native SQLite
+ library for the processor architecture of the current process.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.MaybeCombinePath(System.String,System.String)">
+ <summary>
+ Combines two path strings.
+ </summary>
+ <param name="path1">
+ The first path -OR- null.
+ </param>
+ <param name="path2">
+ The second path -OR- null.
+ </param>
+ <returns>
+ The combined path string -OR- null if both of the original path
+ strings are null.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.ResetCachedXmlConfigFileName">
+ <summary>
+ Resets the cached XML configuration file name value, thus forcing the
+ next call to <see cref="M:System.Data.SQLite.UnsafeNativeMethods.GetCachedXmlConfigFileName"/> method to rely
+ upon the <see cref="M:System.Data.SQLite.UnsafeNativeMethods.GetXmlConfigFileName"/> method to fetch the
+ XML configuration file name.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.GetCachedXmlConfigFileName">
+ <summary>
+ Queries and returns the cached XML configuration file name for the
+ assembly containing the managed System.Data.SQLite components, if
+ available. If the cached XML configuration file name value is not
+ available, the <see cref="M:System.Data.SQLite.UnsafeNativeMethods.GetXmlConfigFileName"/> method will
+ be used to obtain the XML configuration file name.
+ </summary>
+ <returns>
+ The XML configuration file name -OR- null if it cannot be determined
+ or does not exist.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.GetXmlConfigFileName">
+ <summary>
+ Queries and returns the XML configuration file name for the assembly
+ containing the managed System.Data.SQLite components.
+ </summary>
+ <returns>
+ The XML configuration file name -OR- null if it cannot be determined
+ or does not exist.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.ReplaceXmlConfigFileTokens(System.String,System.String)">
+ <summary>
+ If necessary, replaces all supported XML configuration file tokens
+ with their associated values.
+ </summary>
+ <param name="fileName">
+ The name of the XML configuration file being read.
+ </param>
+ <param name="value">
+ A setting value read from the XML configuration file.
+ </param>
+ <returns>
+ The value of the <paramref name="value" /> will all supported XML
+ configuration file tokens replaced. No return value is reserved
+ to indicate an error. This method cannot fail.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.GetSettingValueViaXmlConfigFile(System.String,System.String,System.String,System.Boolean)">
+ <summary>
+ Queries and returns the value of the specified setting, using the
+ specified XML configuration file.
+ </summary>
+ <param name="fileName">
+ The name of the XML configuration file to read.
+ </param>
+ <param name="name">
+ The name of the setting.
+ </param>
+ <param name="default">
+ The value to be returned if the setting has not been set explicitly
+ or cannot be determined.
+ </param>
+ <param name="expand">
+ Non-zero to expand any environment variable references contained in
+ the setting value to be returned. This has no effect on the .NET
+ Compact Framework.
+ </param>
+ <returns>
+ The value of the setting -OR- the default value specified by
+ <paramref name="default" /> if it has not been set explicitly or
+ cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.GetAssemblyTargetFramework(System.Reflection.Assembly)">
+ <summary>
+ Attempts to determine the target framework attribute value that is
+ associated with the specified managed assembly, if applicable.
+ </summary>
+ <param name="assembly">
+ The managed assembly to read the target framework attribute value
+ from.
+ </param>
+ <returns>
+ The value of the target framework attribute value for the specified
+ managed assembly -OR- null if it cannot be determined. If this
+ assembly was compiled with a version of the .NET Framework prior to
+ version 4.0, the value returned MAY reflect that version of the .NET
+ Framework instead of the one associated with the specified managed
+ assembly.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.AbbreviateTargetFramework(System.String)">
+ <summary>
+ Accepts a long target framework attribute value and makes it into a
+ much shorter version, suitable for use with NuGet packages.
+ </summary>
+ <param name="targetFramework">
+ The long target framework attribute value to convert.
+ </param>
+ <returns>
+ The short target framework attribute value -OR- null if it cannot
+ be determined or converted.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.ReplaceEnvironmentVariableTokens(System.String)">
+ <summary>
+ If necessary, replaces all supported environment variable tokens
+ with their associated values.
+ </summary>
+ <param name="value">
+ A setting value read from an environment variable.
+ </param>
+ <returns>
+ The value of the <paramref name="value" /> will all supported
+ environment variable tokens replaced. No return value is reserved
+ to indicate an error. This method cannot fail.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.GetSettingValue(System.String,System.String)">
+ <summary>
+ Queries and returns the value of the specified setting, using the XML
+ configuration file and/or the environment variables for the current
+ process and/or the current system, when available.
+ </summary>
+ <param name="name">
+ The name of the setting.
+ </param>
+ <param name="default">
+ The value to be returned if the setting has not been set explicitly
+ or cannot be determined.
+ </param>
+ <returns>
+ The value of the setting -OR- the default value specified by
+ <paramref name="default" /> if it has not been set explicitly or
+ cannot be determined. By default, all references to existing
+ environment variables will be expanded to their corresponding values
+ within the value to be returned unless either the "No_Expand" or
+ "No_Expand_<paramref name="name" />" environment variable is set [to
+ anything].
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.ResetCachedAssemblyDirectory">
+ <summary>
+ Resets the cached assembly directory value, thus forcing the next
+ call to <see cref="M:System.Data.SQLite.UnsafeNativeMethods.GetCachedAssemblyDirectory"/> method to rely
+ upon the <see cref="M:System.Data.SQLite.UnsafeNativeMethods.GetAssemblyDirectory"/> method to fetch the
+ assembly directory.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.GetCachedAssemblyDirectory">
+ <summary>
+ Queries and returns the cached directory for the assembly currently
+ being executed, if available. If the cached assembly directory value
+ is not available, the <see cref="M:System.Data.SQLite.UnsafeNativeMethods.GetAssemblyDirectory"/> method will
+ be used to obtain the assembly directory.
+ </summary>
+ <returns>
+ The directory for the assembly currently being executed -OR- null if
+ it cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.GetAssemblyDirectory">
+ <summary>
+ Queries and returns the directory for the assembly currently being
+ executed.
+ </summary>
+ <returns>
+ The directory for the assembly currently being executed -OR- null if
+ it cannot be determined.
+ </returns>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethods.PROCESSOR_ARCHITECTURE">
+ <summary>
+ The name of the environment variable containing the processor
+ architecture of the current process.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethods._SQLiteNativeModuleFileName">
+ <summary>
+ The native module file name for the native SQLite library or null.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.UnsafeNativeMethods._SQLiteNativeModuleHandle">
+ <summary>
+ The native module handle for the native SQLite library or the value
+ IntPtr.Zero.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.GetNativeLibraryFileNameOnly">
+ <summary>
+ Determines the base file name (without any directory information)
+ for the native SQLite library to be pre-loaded by this class.
+ </summary>
+ <returns>
+ The base file name for the native SQLite library to be pre-loaded by
+ this class -OR- null if its value cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.SearchForDirectory(System.String@,System.String@,System.Boolean@)">
+ <summary>
+ Searches for the native SQLite library in the directory containing
+ the assembly currently being executed as well as the base directory
+ for the current application domain.
+ </summary>
+ <param name="baseDirectory">
+ Upon success, this parameter will be modified to refer to the base
+ directory containing the native SQLite library.
+ </param>
+ <param name="processorArchitecture">
+ Upon success, this parameter will be modified to refer to the name
+ of the immediate directory (i.e. the offset from the base directory)
+ containing the native SQLite library.
+ </param>
+ <param name="allowBaseDirectoryOnly">
+ Upon success, this parameter will be modified to non-zero only if
+ the base directory itself should be allowed for loading the native
+ library.
+ </param>
+ <returns>
+ Non-zero (success) if the native SQLite library was found; otherwise,
+ zero (failure).
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.GetBaseDirectory">
+ <summary>
+ Queries and returns the base directory of the current application
+ domain.
+ </summary>
+ <returns>
+ The base directory for the current application domain -OR- null if it
+ cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.FixUpDllFileName(System.String)">
+ <summary>
+ Determines if the dynamic link library file name requires a suffix
+ and adds it if necessary.
+ </summary>
+ <param name="fileName">
+ The original dynamic link library file name to inspect.
+ </param>
+ <returns>
+ The dynamic link library file name, possibly modified to include an
+ extension.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.GetProcessorArchitecture">
+ <summary>
+ Queries and returns the processor architecture of the current
+ process.
+ </summary>
+ <returns>
+ The processor architecture of the current process -OR- null if it
+ cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.GetPlatformName(System.String)">
+ <summary>
+ Given the processor architecture, returns the name of the platform.
+ </summary>
+ <param name="processorArchitecture">
+ The processor architecture to be translated to a platform name.
+ </param>
+ <returns>
+ The platform name for the specified processor architecture -OR- null
+ if it cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.UnsafeNativeMethods.PreLoadSQLiteDll(System.String,System.String,System.Boolean,System.String@,System.IntPtr@)">
+ <summary>
+ Attempts to load the native SQLite library based on the specified
+ directory and processor architecture.
+ </summary>
+ <param name="baseDirectory">
+ The base directory to use, null for default (the base directory of
+ the current application domain). This directory should contain the
+ processor architecture specific sub-directories.
+ </param>
+ <param name="processorArchitecture">
+ The requested processor architecture, null for default (the
+ processor architecture of the current process). This caller should
+ almost always specify null for this parameter.
+ </param>
+ <param name="allowBaseDirectoryOnly">
+ Non-zero indicates that the native SQLite library can be loaded
+ from the base directory itself.
+ </param>
+ <param name="nativeModuleFileName">
+ The candidate native module file name to load will be stored here,
+ if necessary.
+ </param>
+ <param name="nativeModuleHandle">
+ The native module handle as returned by LoadLibrary will be stored
+ here, if necessary. This value will be IntPtr.Zero if the call to
+ LoadLibrary fails.
+ </param>
+ <returns>
+ Non-zero if the native module was loaded successfully; otherwise,
+ zero.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.SR">
+ <summary>
+ A strongly-typed resource class, for looking up localized strings, etc.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SR.ResourceManager">
+ <summary>
+ Returns the cached ResourceManager instance used by this class.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SR.Culture">
+ <summary>
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SR.DataTypes">
+ <summary>
+ Looks up a localized string similar to <?xml version="1.0" standalone="yes"?>
+ <DocumentElement>
+ <DataTypes>
+ <TypeName>smallint</TypeName>
+ <ProviderDbType>10</ProviderDbType>
+ <ColumnSize>5</ColumnSize>
+ <DataType>System.Int16</DataType>
+ <CreateFormat>smallint</CreateFormat>
+ <IsAutoIncrementable>false</IsAutoIncrementable>
+ <IsCaseSensitive>false</IsCaseSensitive>
+ <IsFixedLength>true</IsFixedLength>
+ <IsFixedPrecisionScale>true</IsFixedPrecisionScale>
+ <IsLong>false</IsLong>
+ <IsNullable>true</ [rest of string was truncated]";.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SR.Keywords">
+ <summary>
+ Looks up a localized string similar to ALL,ALTER,AND,AS,AUTOINCREMENT,BETWEEN,BY,CASE,CHECK,COLLATE,COMMIT,CONSTRAINT,CREATE,CROSS,DEFAULT,DEFERRABLE,DELETE,DISTINCT,DROP,ELSE,ESCAPE,EXCEPT,FOREIGN,FROM,FULL,GROUP,HAVING,IN,INDEX,INNER,INSERT,INTERSECT,INTO,IS,ISNULL,JOIN,LEFT,LIMIT,NATURAL,NOT,NOTNULL,NULL,ON,OR,ORDER,OUTER,PRIMARY,REFERENCES,RIGHT,ROLLBACK,SELECT,SET,TABLE,THEN,TO,TRANSACTION,UNION,UNIQUE,UPDATE,USING,VALUES,WHEN,WHERE.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SR.MetaDataCollections">
+ <summary>
+ Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?>
+ <DocumentElement>
+ <MetaDataCollections>
+ <CollectionName>MetaDataCollections</CollectionName>
+ <NumberOfRestrictions>0</NumberOfRestrictions>
+ <NumberOfIdentifierParts>0</NumberOfIdentifierParts>
+ </MetaDataCollections>
+ <MetaDataCollections>
+ <CollectionName>DataSourceInformation</CollectionName>
+ <NumberOfRestrictions>0</NumberOfRestrictions>
+ <NumberOfIdentifierParts>0</NumberOfIdentifierParts>
+ </MetaDataCollections>
+ <MetaDataC [rest of string was truncated]";.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.ISQLiteNativeModule">
+ <summary>
+ This interface represents a virtual table implementation written in
+ native code.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)">
+ <summary>
+ <para><code>
+ int (*xCreate)(sqlite3 *db, void *pAux,
+ int argc, char *const*argv,
+ sqlite3_vtab **ppVTab,
+ char **pzErr);
+ </code></para>
+ <para>
+ The xCreate method is called to create a new instance of a virtual table
+ in response to a CREATE VIRTUAL TABLE statement.
+ If the xCreate method is the same pointer as the xConnect method, then the
+ virtual table is an eponymous virtual table.
+ If the xCreate method is omitted (if it is a NULL pointer) then the virtual
+ table is an eponymous-only virtual table.
+ </para>
+ <para>
+ The db parameter is a pointer to the SQLite database connection that
+ is executing the CREATE VIRTUAL TABLE statement.
+ The pAux argument is the copy of the client data pointer that was the
+ fourth argument to the sqlite3_create_module() or
+ sqlite3_create_module_v2() call that registered the
+ virtual table module.
+ The argv parameter is an array of argc pointers to null terminated strings.
+ The first string, argv[0], is the name of the module being invoked. The
+ module name is the name provided as the second argument to
+ sqlite3_create_module() and as the argument to the USING clause of the
+ CREATE VIRTUAL TABLE statement that is running.
+ The second, argv[1], is the name of the database in which the new virtual table is being created. The database name is "main" for the primary database, or
+ "temp" for TEMP database, or the name given at the end of the ATTACH
+ statement for attached databases. The third element of the array, argv[2],
+ is the name of the new virtual table, as specified following the TABLE
+ keyword in the CREATE VIRTUAL TABLE statement.
+ If present, the fourth and subsequent strings in the argv[] array report
+ the arguments to the module name in the CREATE VIRTUAL TABLE statement.
+ </para>
+ <para>
+ The job of this method is to construct the new virtual table object
+ (an sqlite3_vtab object) and return a pointer to it in *ppVTab.
+ </para>
+ <para>
+ As part of the task of creating a new sqlite3_vtab structure, this
+ method <u>must</u> invoke sqlite3_declare_vtab() to tell the SQLite
+ core about the columns and datatypes in the virtual table.
+ The sqlite3_declare_vtab() API has the following prototype:
+ </para>
+ <para><code>
+ int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable)
+ </code></para>
+ <para>
+ The first argument to sqlite3_declare_vtab() must be the same
+ database connection pointer as the first parameter to this method.
+ The second argument to sqlite3_declare_vtab() must a zero-terminated
+ UTF-8 string that contains a well-formed CREATE TABLE statement that
+ defines the columns in the virtual table and their data types.
+ The name of the table in this CREATE TABLE statement is ignored,
+ as are all constraints. Only the column names and datatypes matter.
+ The CREATE TABLE statement string need not to be
+ held in persistent memory. The string can be
+ deallocated and/or reused as soon as the sqlite3_declare_vtab()
+ routine returns.
+ </para>
+ <para>
+ The xCreate method need not initialize the pModule, nRef, and zErrMsg
+ fields of the sqlite3_vtab object. The SQLite core will take care of
+ that chore.
+ </para>
+ <para>
+ The xCreate should return SQLITE_OK if it is successful in
+ creating the new virtual table, or SQLITE_ERROR if it is not successful.
+ If not successful, the sqlite3_vtab structure must not be allocated.
+ An error message may optionally be returned in *pzErr if unsuccessful.
+ Space to hold the error message string must be allocated using
+ an SQLite memory allocation function like
+ sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will
+ attempt to free the space using sqlite3_free() after the error has
+ been reported up to the application.
+ </para>
+ <para>
+ If the xCreate method is omitted (left as a NULL pointer) then the
+ virtual table is an eponymous-only virtual table. New instances of
+ the virtual table cannot be created using CREATE VIRTUAL TABLE and the
+ virtual table can only be used via its module name.
+ Note that SQLite versions prior to 3.9.0 (2015-10-14) do not understand
+ eponymous-only virtual tables and will segfault if an attempt is made
+ to CREATE VIRTUAL TABLE on an eponymous-only virtual table because
+ the xCreate method was not checked for null.
+ </para>
+ <para>
+ If the xCreate method is the exact same pointer as the xConnect method,
+ that indicates that the virtual table does not need to initialize backing
+ store. Such a virtual table can be used as an eponymous virtual table
+ or as a named virtual table using CREATE VIRTUAL TABLE or both.
+ </para>
+ <para>
+ If a column datatype contains the special keyword "HIDDEN"
+ (in any combination of upper and lower case letters) then that keyword
+ it is omitted from the column datatype name and the column is marked
+ as a hidden column internally.
+ A hidden column differs from a normal column in three respects:
+ </para>
+ <para>
+ <![CDATA[<ul>]]>
+ <![CDATA[<li>]]> Hidden columns are not listed in the dataset returned by
+ "PRAGMA table_info",
+ <![CDATA[</li>]]><![CDATA[<li>]]> Hidden columns are not included in the expansion of a "*"
+ expression in the result set of a SELECT, and
+ <![CDATA[</li>]]><![CDATA[<li>]]> Hidden columns are not included in the implicit column-list
+ used by an INSERT statement that lacks an explicit column-list.
+ <![CDATA[</li>]]><![CDATA[</ul>]]>
+ </para>
+ <para>
+ For example, if the following SQL is passed to sqlite3_declare_vtab():
+ </para>
+ <para><code>
+ CREATE TABLE x(a HIDDEN VARCHAR(12), b INTEGER, c INTEGER Hidden);
+ </code></para>
+ <para>
+ Then the virtual table would be created with two hidden columns,
+ and with datatypes of "VARCHAR(12)" and "INTEGER".
+ </para>
+ <para>
+ An example use of hidden columns can be seen in the FTS3 virtual
+ table implementation, where every FTS virtual table
+ contains an FTS hidden column that is used to pass information from the
+ virtual table into FTS auxiliary functions and to the FTS MATCH operator.
+ </para>
+ <para>
+ A virtual table that contains hidden columns can be used like
+ a table-valued function in the FROM clause of a SELECT statement.
+ The arguments to the table-valued function become constraints on
+ the HIDDEN columns of the virtual table.
+ </para>
+ <para>
+ For example, the "generate_series" extension (located in the
+ ext/misc/series.c
+ file in the source tree)
+ implements an eponymous virtual table with the following schema:
+ </para>
+ <para><code>
+ CREATE TABLE generate_series(
+ value,
+ start HIDDEN,
+ stop HIDDEN,
+ step HIDDEN
+ );
+ </code></para>
+ <para>
+ The sqlite3_module.xBestIndex method in the implementation of this
+ table checks for equality constraints against the HIDDEN columns, and uses
+ those as input parameters to determine the range of integer "value" outputs
+ to generate. Reasonable defaults are used for any unconstrained columns.
+ For example, to list all integers between 5 and 50:
+ </para>
+ <para><code>
+ SELECT value FROM generate_series(5,50);
+ </code></para>
+ <para>
+ The previous query is equivalent to the following:
+ </para>
+ <para><code>
+ SELECT value FROM generate_series WHERE start=5 AND stop=50;
+ </code></para>
+ <para>
+ Arguments on the virtual table name are matched to hidden columns
+ in order. The number of arguments can be less than the
+ number of hidden columns, in which case the latter hidden columns are
+ unconstrained. However, an error results if there are more arguments
+ than there are hidden columns in the virtual table.
+ </para>
+ <para>
+ Beginning with SQLite version 3.14.0 (2016-08-08),
+ the CREATE TABLE statement that
+ is passed into sqlite3_declare_vtab() may contain a WITHOUT ROWID clause.
+ This is useful for cases where the virtual table rows
+ cannot easily be mapped into unique integers. A CREATE TABLE
+ statement that includes WITHOUT ROWID must define one or more columns as
+ the PRIMARY KEY. Every column of the PRIMARY KEY must individually be
+ NOT NULL and all columns for each row must be collectively unique.
+ </para>
+ <para>
+ Note that SQLite does not enforce the PRIMARY KEY for a WITHOUT ROWID
+ virtual table. Enforcement is the responsibility of the underlying
+ virtual table implementation. But SQLite does assume that the PRIMARY KEY
+ constraint is valid - that the identified columns really are UNIQUE and
+ NOT NULL - and it uses that assumption to optimize queries against the
+ virtual table.
+ </para>
+ <para>
+ The rowid column is not accessible on a
+ WITHOUT ROWID virtual table (of course).
+ </para>
+ <para>
+ The xUpdate method was originally designed around having a
+ ROWID as a single value. The xUpdate method has been expanded to
+ accommodate an arbitrary PRIMARY KEY in place of the ROWID, but the
+ PRIMARY KEY must still be only one column. For this reason, SQLite
+ will reject any WITHOUT ROWID virtual table that has more than one
+ PRIMARY KEY column and a non-NULL xUpdate method.
+ </para>
+ </summary>
+ <param name="pDb">
+ The native database connection handle.
+ </param>
+ <param name="pAux">
+ The original native pointer value that was provided to the
+ sqlite3_create_module(), sqlite3_create_module_v2() or
+ sqlite3_create_disposable_module() functions.
+ </param>
+ <param name="argc">
+ The number of arguments from the CREATE VIRTUAL TABLE statement.
+ </param>
+ <param name="argv">
+ The array of string arguments from the CREATE VIRTUAL TABLE
+ statement.
+ </param>
+ <param name="pVtab">
+ Upon success, this parameter must be modified to point to the newly
+ created native sqlite3_vtab derived structure.
+ </param>
+ <param name="pError">
+ Upon failure, this parameter must be modified to point to the error
+ message, with the underlying memory having been obtained from the
+ sqlite3_malloc() function.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)">
+ <summary>
+ <para><code>
+ int (*xConnect)(sqlite3*, void *pAux,
+ int argc, char *const*argv,
+ sqlite3_vtab **ppVTab,
+ char **pzErr);
+ </code></para>
+ <para>
+ The xConnect method is very similar to xCreate.
+ It has the same parameters and constructs a new sqlite3_vtab structure
+ just like xCreate.
+ And it must also call sqlite3_declare_vtab() like xCreate.
+ </para>
+ <para>
+ The difference is that xConnect is called to establish a new
+ connection to an existing virtual table whereas xCreate is called
+ to create a new virtual table from scratch.
+ </para>
+ <para>
+ The xCreate and xConnect methods are only different when the
+ virtual table has some kind of backing store that must be initialized
+ the first time the virtual table is created. The xCreate method creates
+ and initializes the backing store. The xConnect method just connects
+ to an existing backing store. When xCreate and xConnect are the same,
+ the table is an eponymous virtual table.
+ </para>
+ <para>
+ As an example, consider a virtual table implementation that
+ provides read-only access to existing comma-separated-value (CSV)
+ files on disk. There is no backing store that needs to be created
+ or initialized for such a virtual table (since the CSV files already
+ exist on disk) so the xCreate and xConnect methods will be identical
+ for that module.
+ </para>
+ <para>
+ Another example is a virtual table that implements a full-text index.
+ The xCreate method must create and initialize data structures to hold
+ the dictionary and posting lists for that index. The xConnect method,
+ on the other hand, only has to locate and use an existing dictionary
+ and posting lists that were created by a prior xCreate call.
+ </para>
+ <para>
+ The xConnect method must return SQLITE_OK if it is successful
+ in creating the new virtual table, or SQLITE_ERROR if it is not
+ successful. If not successful, the sqlite3_vtab structure must not be
+ allocated. An error message may optionally be returned in *pzErr if
+ unsuccessful.
+ Space to hold the error message string must be allocated using
+ an SQLite memory allocation function like
+ sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will
+ attempt to free the space using sqlite3_free() after the error has
+ been reported up to the application.
+ </para>
+ <para>
+ The xConnect method is required for every virtual table implementation,
+ though the xCreate and xConnect pointers of the sqlite3_module object
+ may point to the same function if the virtual table does not need to
+ initialize backing store.
+ </para>
+ </summary>
+ <param name="pDb">
+ The native database connection handle.
+ </param>
+ <param name="pAux">
+ The original native pointer value that was provided to the
+ sqlite3_create_module(), sqlite3_create_module_v2() or
+ sqlite3_create_disposable_module() functions.
+ </param>
+ <param name="argc">
+ The number of arguments from the CREATE VIRTUAL TABLE statement.
+ </param>
+ <param name="argv">
+ The array of string arguments from the CREATE VIRTUAL TABLE
+ statement.
+ </param>
+ <param name="pVtab">
+ Upon success, this parameter must be modified to point to the newly
+ created native sqlite3_vtab derived structure.
+ </param>
+ <param name="pError">
+ Upon failure, this parameter must be modified to point to the error
+ message, with the underlying memory having been obtained from the
+ sqlite3_malloc() function.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xBestIndex(System.IntPtr,System.IntPtr)">
+ <summary>
+ <para>
+ SQLite uses the xBestIndex method of a virtual table module to determine
+ the best way to access the virtual table.
+ The xBestIndex method has a prototype like this:
+ </para>
+ <para><code>
+ int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*);
+ </code></para>
+ <para>
+ The SQLite core communicates with the xBestIndex method by filling
+ in certain fields of the sqlite3_index_info structure and passing a
+ pointer to that structure into xBestIndex as the second parameter.
+ The xBestIndex method fills out other fields of this structure which
+ forms the reply. The sqlite3_index_info structure looks like this:
+ </para>
+ <para><code>
+ struct sqlite3_index_info {
+ /* Inputs */
+ const int nConstraint; /* Number of entries in aConstraint */
+ const struct sqlite3_index_constraint {
+ int iColumn; /* Column constrained. -1 for ROWID */
+ unsigned char op; /* Constraint operator */
+ unsigned char usable; /* True if this constraint is usable */
+ int iTermOffset; /* Used internally - xBestIndex should ignore */
+ } *const aConstraint; /* Table of WHERE clause constraints */
+ const int nOrderBy; /* Number of terms in the ORDER BY clause */
+ const struct sqlite3_index_orderby {
+ int iColumn; /* Column number */
+ unsigned char desc; /* True for DESC. False for ASC. */
+ } *const aOrderBy; /* The ORDER BY clause */
+ /* Outputs */
+ struct sqlite3_index_constraint_usage {
+ int argvIndex; /* if >0, constraint is part of argv to xFilter */
+ unsigned char omit; /* Do not code a test for this constraint */
+ } *const aConstraintUsage;
+ int idxNum; /* Number used to identify the index */
+ char *idxStr; /* String, possibly obtained from sqlite3_malloc */
+ int needToFreeIdxStr; /* Free idxStr using sqlite3_free() if true */
+ int orderByConsumed; /* True if output is already ordered */
+ double estimatedCost; /* Estimated cost of using this index */
+ <![CDATA[<b>]]>/* Fields below are only available in SQLite 3.8.2 and later */<![CDATA[</b>]]>
+ sqlite3_int64 estimatedRows; /* Estimated number of rows returned */
+ <![CDATA[<b>]]>/* Fields below are only available in SQLite 3.9.0 and later */<![CDATA[</b>]]>
+ int idxFlags; /* Mask of SQLITE_INDEX_SCAN_* flags */
+ <![CDATA[<b>]]>/* Fields below are only available in SQLite 3.10.0 and later */<![CDATA[</b>]]>
+ sqlite3_uint64 colUsed; /* Input: Mask of columns used by statement */
+ };
+ </code></para>
+ <para>
+ Note the warnings on the "estimatedRows", "idxFlags", and colUsed fields.
+ These fields were added with SQLite versions 3.8.2, 3.9.0, and 3.10.0, respectively.
+ Any extension that reads or writes these fields must first check that the
+ version of the SQLite library in use is greater than or equal to appropriate
+ version - perhaps comparing the value returned from sqlite3_libversion_number()
+ against constants 3008002, 3009000, and/or 3010000. The result of attempting
+ to access these fields in an sqlite3_index_info structure created by an
+ older version of SQLite are undefined.
+ </para>
+ <para>
+ In addition, there are some defined constants:
+ </para>
+ <para><code>
+ #define SQLITE_INDEX_CONSTRAINT_EQ 2
+ #define SQLITE_INDEX_CONSTRAINT_GT 4
+ #define SQLITE_INDEX_CONSTRAINT_LE 8
+ #define SQLITE_INDEX_CONSTRAINT_LT 16
+ #define SQLITE_INDEX_CONSTRAINT_GE 32
+ #define SQLITE_INDEX_CONSTRAINT_MATCH 64
+ #define SQLITE_INDEX_CONSTRAINT_LIKE 65 /* 3.10.0 and later */
+ #define SQLITE_INDEX_CONSTRAINT_GLOB 66 /* 3.10.0 and later */
+ #define SQLITE_INDEX_CONSTRAINT_REGEXP 67 /* 3.10.0 and later */
+ #define SQLITE_INDEX_CONSTRAINT_NE 68 /* 3.21.0 and later */
+ #define SQLITE_INDEX_CONSTRAINT_ISNOT 69 /* 3.21.0 and later */
+ #define SQLITE_INDEX_CONSTRAINT_ISNOTNULL 70 /* 3.21.0 and later */
+ #define SQLITE_INDEX_CONSTRAINT_ISNULL 71 /* 3.21.0 and later */
+ #define SQLITE_INDEX_CONSTRAINT_IS 72 /* 3.21.0 and later */
+ #define SQLITE_INDEX_CONSTRAINT_FUNCTION 150 /* 3.25.0 and later */
+ #define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */
+ </code></para>
+ <para>
+ The SQLite core calls the xBestIndex method when it is compiling a query
+ that involves a virtual table. In other words, SQLite calls this method
+ when it is running sqlite3_prepare() or the equivalent.
+ By calling this method, the
+ SQLite core is saying to the virtual table that it needs to access
+ some subset of the rows in the virtual table and it wants to know the
+ most efficient way to do that access. The xBestIndex method replies
+ with information that the SQLite core can then use to conduct an
+ efficient search of the virtual table.
+ </para>
+ <para>
+ While compiling a single SQL query, the SQLite core might call
+ xBestIndex multiple times with different settings in sqlite3_index_info.
+ The SQLite core will then select the combination that appears to
+ give the best performance.
+ </para>
+ <para>
+ Before calling this method, the SQLite core initializes an instance
+ of the sqlite3_index_info structure with information about the
+ query that it is currently trying to process. This information
+ derives mainly from the WHERE clause and ORDER BY or GROUP BY clauses
+ of the query, but also from any ON or USING clauses if the query is a
+ join. The information that the SQLite core provides to the xBestIndex
+ method is held in the part of the structure that is marked as "Inputs".
+ The "Outputs" section is initialized to zero.
+ </para>
+ <para>
+ The information in the sqlite3_index_info structure is ephemeral
+ and may be overwritten or deallocated as soon as the xBestIndex method
+ returns. If the xBestIndex method needs to remember any part of the
+ sqlite3_index_info structure, it should make a copy. Care must be
+ take to store the copy in a place where it will be deallocated, such
+ as in the idxStr field with needToFreeIdxStr set to 1.
+ </para>
+ <para>
+ Note that xBestIndex will always be called before xFilter, since
+ the idxNum and idxStr outputs from xBestIndex are required inputs to
+ xFilter. However, there is no guarantee that xFilter will be called
+ following a successful xBestIndex.
+ </para>
+ <para>
+ The xBestIndex method is required for every virtual table implementation.
+ </para>
+ <para>
+ The main thing that the SQLite core is trying to communicate to
+ the virtual table is the constraints that are available to limit
+ the number of rows that need to be searched. The aConstraint[] array
+ contains one entry for each constraint. There will be exactly
+ nConstraint entries in that array.
+ </para>
+ <para>
+ Each constraint will usually correspond to a term in the WHERE clause
+ or in a USING or ON clause that is of the form
+ </para>
+ <para><code>
+ column OP EXPR
+ </code></para>
+ <para>
+ Where "column" is a column in the virtual table, OP is an operator
+ like "=" or "<", and EXPR is an arbitrary expression. So, for example,
+ if the WHERE clause contained a term like this:
+ </para>
+ <para><code>
+ a = 5
+ </code></para>
+ <para>
+ Then one of the constraints would be on the "a" column with
+ operator "=" and an expression of "5". Constraints need not have a
+ literal representation of the WHERE clause. The query optimizer might
+ make transformations to the
+ WHERE clause in order to extract as many constraints
+ as it can. So, for example, if the WHERE clause contained something
+ like this:
+ </para>
+ <para><code>
+ x BETWEEN 10 AND 100 AND 999>y
+ </code></para>
+ <para>
+ The query optimizer might translate this into three separate constraints:
+ </para>
+ <para><code>
+ x >= 10
+ x <= 100
+ y < 999
+ </code></para>
+ <para>
+ For each such constraint, the aConstraint[].iColumn field indicates which
+ column appears on the left-hand side of the constraint.
+ The first column of the virtual table is column 0.
+ The rowid of the virtual table is column -1.
+ The aConstraint[].op field indicates which operator is used.
+ The SQLITE_INDEX_CONSTRAINT_* constants map integer constants
+ into operator values.
+ Columns occur in the order they were defined by the call to
+ sqlite3_declare_vtab() in the xCreate or xConnect method.
+ Hidden columns are counted when determining the column index.
+ </para>
+ <para>
+ If the xFindFunction() method for the virtual table is defined, and
+ if xFindFunction() sometimes returns SQLITE_INDEX_CONSTRAINT_FUNCTION or
+ larger, then the constraints might also be of the form:
+ </para>
+ <para><code>
+ FUNCTION( column, EXPR)
+ </code></para>
+ <para>
+ In this case the aConstraint[].op value is the same as the value
+ returned by xFindFunction() for FUNCTION.
+ </para>
+ <para>
+ The aConstraint[] array contains information about all constraints
+ that apply to the virtual table. But some of the constraints might
+ not be usable because of the way tables are ordered in a join.
+ The xBestIndex method must therefore only consider constraints
+ that have an aConstraint[].usable flag which is true.
+ </para>
+ <para>
+ In addition to WHERE clause constraints, the SQLite core also
+ tells the xBestIndex method about the ORDER BY clause.
+ (In an aggregate query, the SQLite core might put in GROUP BY clause
+ information in place of the ORDER BY clause information, but this fact
+ should not make any difference to the xBestIndex method.)
+ If all terms of the ORDER BY clause are columns in the virtual table,
+ then nOrderBy will be the number of terms in the ORDER BY clause
+ and the aOrderBy[] array will identify the column for each term
+ in the order by clause and whether or not that column is ASC or DESC.
+ </para>
+ <para>
+ In SQLite version 3.10.0 (2016-01-06) and later,
+ the colUsed field is available
+ to indicate which fields of the virtual table are actually used by the
+ statement being prepared. If the lowest bit of colUsed is set, that
+ means that the first column is used. The second lowest bit corresponds
+ to the second column. And so forth. If the most significant bit of
+ colUsed is set, that means that one or more columns other than the
+ first 63 columns are used. If column usage information is needed by the
+ xFilter method, then the required bits must be encoded into either
+ the idxNum or idxStr output fields.
+ </para>
+ <para>
+ Given all of the information above, the job of the xBestIndex
+ method it to figure out the best way to search the virtual table.
+ </para>
+ <para>
+ The xBestIndex method fills the idxNum and idxStr fields with
+ information that communicates an indexing strategy to the xFilter
+ method. The information in idxNum and idxStr is arbitrary as far
+ as the SQLite core is concerned. The SQLite core just copies the
+ information through to the xFilter method. Any desired meaning can
+ be assigned to idxNum and idxStr as long as xBestIndex and xFilter
+ agree on what that meaning is.
+ </para>
+ <para>
+ The idxStr value may be a string obtained from an SQLite
+ memory allocation function such as sqlite3_mprintf().
+ If this is the case, then the needToFreeIdxStr flag must be set to
+ true so that the SQLite core will know to call sqlite3_free() on
+ that string when it has finished with it, and thus avoid a memory leak.
+ The idxStr value may also be a static constant string, in which case
+ the needToFreeIdxStr boolean should remain false.
+ </para>
+ <para>
+ If the virtual table will output rows in the order specified by
+ the ORDER BY clause, then the orderByConsumed flag may be set to
+ true. If the output is not automatically in the correct order
+ then orderByConsumed must be left in its default false setting.
+ This will indicate to the SQLite core that it will need to do a
+ separate sorting pass over the data after it comes out of the virtual table.
+ </para>
+ <para>
+ The estimatedCost field should be set to the estimated number
+ of disk access operations required to execute this query against
+ the virtual table. The SQLite core will often call xBestIndex
+ multiple times with different constraints, obtain multiple cost
+ estimates, then choose the query plan that gives the lowest estimate.
+ The SQLite core initializes estimatedCost to a very large value
+ prior to invoking xBestIndex, so if xBestIndex determines that the
+ current combination of parameters is undesirable, it can leave the
+ estimatedCost field unchanged to discourage its use.
+ </para>
+ <para>
+ If the current version of SQLite is 3.8.2 or greater, the estimatedRows
+ field may be set to an estimate of the number of rows returned by the
+ proposed query plan. If this value is not explicitly set, the default
+ estimate of 25 rows is used.
+ </para>
+ <para>
+ If the current version of SQLite is 3.9.0 or greater, the idxFlags field
+ may be set to SQLITE_INDEX_SCAN_UNIQUE to indicate that the virtual table
+ will return only zero or one rows given the input constraints. Additional
+ bits of the idxFlags field might be understood in later versions of SQLite.
+ </para>
+ <para>
+ The aConstraintUsage[] array contains one element for each of
+ the nConstraint constraints in the inputs section of the
+ sqlite3_index_info structure.
+ The aConstraintUsage[] array is used by xBestIndex to tell the
+ core how it is using the constraints.
+ </para>
+ <para>
+ The xBestIndex method may set aConstraintUsage[].argvIndex
+ entries to values greater than zero.
+ Exactly one entry should be set to 1, another to 2, another to 3,
+ and so forth up to as many or as few as the xBestIndex method wants.
+ The EXPR of the corresponding constraints will then be passed
+ in as the argv[] parameters to xFilter.
+ </para>
+ <para>
+ For example, if the aConstraint[3].argvIndex is set to 1, then
+ when xFilter is called, the argv[0] passed to xFilter will have
+ the EXPR value of the aConstraint[3] constraint.
+ </para>
+ <para>
+ By default, the SQLite core double checks all constraints on
+ each row of the virtual table that it receives. If such a check
+ is redundant, the xBestFilter method can suppress that double-check by
+ setting aConstraintUsage[].omit.
+ </para>
+ <para>
+ The xBestIndex method should return SQLITE_OK on success. If any
+ kind of fatal error occurs, an appropriate error code (ex: SQLITE_NOMEM)
+ should be returned instead.
+ </para>
+ <para>
+ If xBestIndex returns SQLITE_CONSTRAINT, that does not indicate an
+ error. Rather, SQLITE_CONSTRAINT indicates that the particular combination
+ of input parameters specified should not be used in the query plan.
+ The SQLITE_CONSTRAINT return is useful for table-valued functions that
+ have required parameters. If the aConstraint[].usable field is false
+ for one of the required parameter, then the xBestIndex method should
+ return SQLITE_CONSTRAINT.
+ </para>
+ <para>
+ The following example will better illustrate the use of SQLITE_CONSTRAINT
+ as a return value from xBestIndex:
+ </para>
+ <para><code>
+ SELECT * FROM realtab, tablevaluedfunc(realtab.x);
+ </code></para>
+ <para>
+ Assuming that the first hidden column of "tablevaluedfunc" is "param1",
+ the query above is semantically equivalent to this:
+ </para>
+ <para><code>
+ SELECT * FROM realtab, tablevaluedfunc
+ WHERE tablevaluedfunc.param1 = realtab.x;
+ </code></para>
+ <para>
+ The query planner must decide between many possible implementations
+ of this query, but two plans in particular are of note:
+ </para>
+ <![CDATA[<ol>]]>
+ <![CDATA[<li>]]>Scan all
+ rows of realtab and for each row, find rows in tablevaluedfunc where
+ param1 is equal to realtab.x
+ <![CDATA[</li>]]><![CDATA[<li>]]>Scan all rows of tablevalued func and for each row find rows
+ in realtab where x is equal to tablevaluedfunc.param1.
+ <![CDATA[</li>]]><![CDATA[</ol>]]>
+ <para>
+ The xBestIndex method will be invoked once for each of the potential
+ plans above. For plan 1, the aConstraint[].usable flag for for the
+ SQLITE_CONSTRAINT_EQ constraint on the param1 column will be true because
+ the right-hand side value for the "param1 = ?" constraint will be known,
+ since it is determined by the outer realtab loop.
+ But for plan 2, the aConstraint[].usable flag for "param1 = ?" will be false
+ because the right-hand side value is determined by an inner loop and is thus
+ an unknown quantity. Because param1 is a required input to the table-valued
+ functions, the xBestIndex method should return SQLITE_CONSTRAINT when presented
+ with plan 2, indicating that a required input is missing. This forces the
+ query planner to select plan 1.
+ </para>
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <param name="pIndex">
+ The native pointer to the sqlite3_index_info structure.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xDisconnect(System.IntPtr)">
+ <summary>
+ <para><code>
+ int (*xDisconnect)(sqlite3_vtab *pVTab);
+ </code></para>
+ <para>
+ This method releases a connection to a virtual table.
+ Only the sqlite3_vtab object is destroyed.
+ The virtual table is not destroyed and any backing store
+ associated with the virtual table persists.
+ </para>
+ This method undoes the work of xConnect.
+ <para>
+ This method is a destructor for a connection to the virtual table.
+ Contrast this method with xDestroy. The xDestroy is a destructor
+ for the entire virtual table.
+ </para>
+ <para>
+ The xDisconnect method is required for every virtual table implementation,
+ though it is acceptable for the xDisconnect and xDestroy methods to be
+ the same function if that makes sense for the particular virtual table.
+ </para>
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xDestroy(System.IntPtr)">
+ <summary>
+ <para><code>
+ int (*xDestroy)(sqlite3_vtab *pVTab);
+ </code></para>
+ <para>
+ This method releases a connection to a virtual table, just like
+ the xDisconnect method, and it also destroys the underlying
+ table implementation. This method undoes the work of xCreate.
+ </para>
+ <para>
+ The xDisconnect method is called whenever a database connection
+ that uses a virtual table is closed. The xDestroy method is only
+ called when a DROP TABLE statement is executed against the virtual table.
+ </para>
+ <para>
+ The xDestroy method is required for every virtual table implementation,
+ though it is acceptable for the xDisconnect and xDestroy methods to be
+ the same function if that makes sense for the particular virtual table.
+ </para>
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xOpen(System.IntPtr,System.IntPtr@)">
+ <summary>
+ <para><code>
+ int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor);
+ </code></para>
+ <para>
+ The xOpen method creates a new cursor used for accessing (read and/or
+ writing) a virtual table. A successful invocation of this method
+ will allocate the memory for the sqlite3_vtab_cursor (or a subclass),
+ initialize the new object, and make *ppCursor point to the new object.
+ The successful call then returns SQLITE_OK.
+ </para>
+ <para>
+ For every successful call to this method, the SQLite core will
+ later invoke the xClose method to destroy
+ the allocated cursor.
+ </para>
+ <para>
+ The xOpen method need not initialize the pVtab field of the
+ sqlite3_vtab_cursor structure. The SQLite core will take care
+ of that chore automatically.
+ </para>
+ <para>
+ A virtual table implementation must be able to support an arbitrary
+ number of simultaneously open cursors.
+ </para>
+ <para>
+ When initially opened, the cursor is in an undefined state.
+ The SQLite core will invoke the xFilter method
+ on the cursor prior to any attempt to position or read from the cursor.
+ </para>
+ <para>
+ The xOpen method is required for every virtual table implementation.
+ </para>
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <param name="pCursor">
+ Upon success, this parameter must be modified to point to the newly
+ created native sqlite3_vtab_cursor derived structure.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xClose(System.IntPtr)">
+ <summary>
+ <para><code>
+ int (*xClose)(sqlite3_vtab_cursor*);
+ </code></para>
+ <para>
+ The xClose method closes a cursor previously opened by
+ xOpen.
+ The SQLite core will always call xClose once for each cursor opened
+ using xOpen.
+ </para>
+ <para>
+ This method must release all resources allocated by the
+ corresponding xOpen call. The routine will not be called again even if it
+ returns an error. The SQLite core will not use the
+ sqlite3_vtab_cursor again after it has been closed.
+ </para>
+ <para>
+ The xClose method is required for every virtual table implementation.
+ </para>
+ </summary>
+ <param name="pCursor">
+ The native pointer to the sqlite3_vtab_cursor derived structure.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)">
+ <summary>
+ <para><code>
+ int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr,
+ int argc, sqlite3_value **argv);
+ </code></para>
+ <para>
+ This method begins a search of a virtual table.
+ The first argument is a cursor opened by xOpen.
+ The next two arguments define a particular search index previously
+ chosen by xBestIndex. The specific meanings of idxNum and idxStr
+ are unimportant as long as xFilter and xBestIndex agree on what
+ that meaning is.
+ </para>
+ <para>
+ The xBestIndex function may have requested the values of
+ certain expressions using the aConstraintUsage[].argvIndex values
+ of the sqlite3_index_info structure.
+ Those values are passed to xFilter using the argc and argv parameters.
+ </para>
+ <para>
+ If the virtual table contains one or more rows that match the
+ search criteria, then the cursor must be left point at the first row.
+ Subsequent calls to xEof must return false (zero).
+ If there are no rows match, then the cursor must be left in a state
+ that will cause the xEof to return true (non-zero).
+ The SQLite engine will use
+ the xColumn and xRowid methods to access that row content.
+ The xNext method will be used to advance to the next row.
+ </para>
+ <para>
+ This method must return SQLITE_OK if successful, or an sqlite
+ error code if an error occurs.
+ </para>
+ <para>
+ The xFilter method is required for every virtual table implementation.
+ </para>
+ </summary>
+ <param name="pCursor">
+ The native pointer to the sqlite3_vtab_cursor derived structure.
+ </param>
+ <param name="idxNum">
+ Number used to help identify the selected index.
+ </param>
+ <param name="idxStr">
+ The native pointer to the UTF-8 encoded string containing the
+ string used to help identify the selected index.
+ </param>
+ <param name="argc">
+ The number of native pointers to sqlite3_value structures specified
+ in <paramref name="argv" />.
+ </param>
+ <param name="argv">
+ An array of native pointers to sqlite3_value structures containing
+ filtering criteria for the selected index.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xNext(System.IntPtr)">
+ <summary>
+ <para><code>
+ int (*xNext)(sqlite3_vtab_cursor*);
+ </code></para>
+ <para>
+ The xNext method advances a virtual table cursor
+ to the next row of a result set initiated by xFilter.
+ If the cursor is already pointing at the last row when this
+ routine is called, then the cursor no longer points to valid
+ data and a subsequent call to the xEof method must return true (non-zero).
+ If the cursor is successfully advanced to another row of content, then
+ subsequent calls to xEof must return false (zero).
+ </para>
+ <para>
+ This method must return SQLITE_OK if successful, or an sqlite
+ error code if an error occurs.
+ </para>
+ <para>
+ The xNext method is required for every virtual table implementation.
+ </para>
+ </summary>
+ <param name="pCursor">
+ The native pointer to the sqlite3_vtab_cursor derived structure.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xEof(System.IntPtr)">
+ <summary>
+ <para><code>
+ int (*xEof)(sqlite3_vtab_cursor*);
+ </code></para>
+ <para>
+ The xEof method must return false (zero) if the specified cursor
+ currently points to a valid row of data, or true (non-zero) otherwise.
+ This method is called by the SQL engine immediately after each
+ xFilter and xNext invocation.
+ </para>
+ <para>
+ The xEof method is required for every virtual table implementation.
+ </para>
+ </summary>
+ <param name="pCursor">
+ The native pointer to the sqlite3_vtab_cursor derived structure.
+ </param>
+ <returns>
+ Non-zero if no more rows are available; zero otherwise.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xColumn(System.IntPtr,System.IntPtr,System.Int32)">
+ <summary>
+ <para><code>
+ int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int N);
+ </code></para>
+ <para>
+ The SQLite core invokes this method in order to find the value for
+ the N-th column of the current row. N is zero-based so the first column
+ is numbered 0.
+ The xColumn method may return its result back to SQLite using one of the
+ following interface:
+ </para>
+ <para>
+ <![CDATA[<ul>]]>
+ <![CDATA[<li>]]> sqlite3_result_blob()
+ <![CDATA[</li>]]><![CDATA[<li>]]> sqlite3_result_double()
+ <![CDATA[</li>]]><![CDATA[<li>]]> sqlite3_result_int()
+ <![CDATA[</li>]]><![CDATA[<li>]]> sqlite3_result_int64()
+ <![CDATA[</li>]]><![CDATA[<li>]]> sqlite3_result_null()
+ <![CDATA[</li>]]><![CDATA[<li>]]> sqlite3_result_text()
+ <![CDATA[</li>]]><![CDATA[<li>]]> sqlite3_result_text16()
+ <![CDATA[</li>]]><![CDATA[<li>]]> sqlite3_result_text16le()
+ <![CDATA[</li>]]><![CDATA[<li>]]> sqlite3_result_text16be()
+ <![CDATA[</li>]]><![CDATA[<li>]]> sqlite3_result_zeroblob()
+ <![CDATA[</li>]]><![CDATA[</ul>]]>
+ </para>
+ <para>
+ If the xColumn method implementation calls none of the functions above,
+ then the value of the column defaults to an SQL NULL.
+ </para>
+ <para>
+ To raise an error, the xColumn method should use one of the result_text()
+ methods to set the error message text, then return an appropriate
+ error code. The xColumn method must return SQLITE_OK on success.
+ </para>
+ <para>
+ The xColumn method is required for every virtual table implementation.
+ </para>
+ </summary>
+ <param name="pCursor">
+ The native pointer to the sqlite3_vtab_cursor derived structure.
+ </param>
+ <param name="pContext">
+ The native pointer to the sqlite3_context structure to be used
+ for returning the specified column value to the SQLite core
+ library.
+ </param>
+ <param name="index">
+ The zero-based index corresponding to the column containing the
+ value to be returned.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xRowId(System.IntPtr,System.Int64@)">
+ <summary>
+ <para><code>
+ int (*xRowid)(sqlite3_vtab_cursor *pCur, sqlite_int64 *pRowid);
+ </code></para>
+ <para>
+ A successful invocation of this method will cause *pRowid to be
+ filled with the rowid of row that the
+ virtual table cursor pCur is currently pointing at.
+ This method returns SQLITE_OK on success.
+ It returns an appropriate error code on failure.
+ </para>
+ <para>
+ The xRowid method is required for every virtual table implementation.
+ </para>
+ </summary>
+ <param name="pCursor">
+ The native pointer to the sqlite3_vtab_cursor derived structure.
+ </param>
+ <param name="rowId">
+ Upon success, this parameter must be modified to contain the unique
+ integer row identifier for the current row for the specified cursor.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xUpdate(System.IntPtr,System.Int32,System.IntPtr,System.Int64@)">
+ <summary>
+ <para><code>
+ int (*xUpdate)(
+ sqlite3_vtab *pVTab,
+ int argc,
+ sqlite3_value **argv,
+ sqlite_int64 *pRowid
+ );
+ </code></para>
+ <para>
+ All changes to a virtual table are made using the xUpdate method.
+ This one method can be used to insert, delete, or update.
+ </para>
+ <para>
+ The argc parameter specifies the number of entries in the argv array.
+ The value of argc will be 1 for a pure delete operation or N+2 for an insert
+ or replace or update where N is the number of columns in the table.
+ In the previous sentence, N includes any hidden columns.
+ </para>
+ <para>
+ Every argv entry will have a non-NULL value in C but may contain the
+ SQL value NULL. In other words, it is always true that
+ <![CDATA[<tt>]]>argv[i]!=0<![CDATA[</tt>]]> for <![CDATA[<b>]]>i<![CDATA[</b>]]> between 0 and <![CDATA[<tt>]]>argc-1<![CDATA[</tt>]]>.
+ However, it might be the case that
+ <![CDATA[<tt>]]>sqlite3_value_type(argv[i])==SQLITE_NULL<![CDATA[</tt>]]>.
+ </para>
+ <para>
+ The argv[0] parameter is the rowid of a row in the virtual table
+ to be deleted. If argv[0] is an SQL NULL, then no deletion occurs.
+ </para>
+ <para>
+ The argv[1] parameter is the rowid of a new row to be inserted
+ into the virtual table. If argv[1] is an SQL NULL, then the implementation
+ must choose a rowid for the newly inserted row. Subsequent argv[]
+ entries contain values of the columns of the virtual table, in the
+ order that the columns were declared. The number of columns will
+ match the table declaration that the xConnect or xCreate method made
+ using the sqlite3_declare_vtab() call. All hidden columns are included.
+ </para>
+ <para>
+ When doing an insert without a rowid (argc>1, argv[1] is an SQL NULL),
+ on a virtual table that uses ROWID (but not on a WITHOUT ROWID virtual table),
+ the implementation must set *pRowid to the rowid of the newly inserted row;
+ this will become the value returned by the sqlite3_last_insert_rowid()
+ function. Setting this value in all the other cases is a harmless no-op;
+ the SQLite engine ignores the *pRowid return value if argc==1 or
+ argv[1] is not an SQL NULL.
+ </para>
+ <para>
+ Each call to xUpdate will fall into one of cases shown below.
+ Not that references to <![CDATA[<b>]]>argv[i]<![CDATA[</b>]]> mean the SQL value
+ held within the argv[i] object, not the argv[i]
+ object itself.
+ </para>
+ <para><code>
+ <![CDATA[<dl>]]>
+ <![CDATA[<dt>]]><![CDATA[<b>]]>argc = 1 <![CDATA[<br>]]> argv[0] ≠ NULL<![CDATA[</b>]]>
+ <![CDATA[</dt>]]><![CDATA[<dd>]]>
+ DELETE: The single row with rowid or PRIMARY KEY equal to argv[0] is deleted.
+ No insert occurs.
+ <![CDATA[</dd>]]><![CDATA[<dt>]]><![CDATA[<b>]]>argc > 1 <![CDATA[<br>]]> argv[0] = NULL<![CDATA[</b>]]>
+ <![CDATA[</dt>]]><![CDATA[<dd>]]>
+ INSERT: A new row is inserted with column values taken from
+ argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL,
+ then a new unique rowid is generated automatically. The argv[1] will be NULL
+ for a WITHOUT ROWID virtual table, in which case the implementation should
+ take the PRIMARY KEY value from the appropriate column in argv[2] and following.
+ <![CDATA[</dd>]]><![CDATA[<dt>]]><![CDATA[<b>]]>argc > 1 <![CDATA[<br>]]> argv[0] ≠ NULL <![CDATA[<br>]]> argv[0] = argv[1]<![CDATA[</b>]]>
+ <![CDATA[</dt>]]><![CDATA[<dd>]]>
+ UPDATE:
+ The row with rowid or PRIMARY KEY argv[0] is updated with new values
+ in argv[2] and following parameters.
+ <![CDATA[</dd>]]><![CDATA[<dt>]]><![CDATA[<b>]]>argc > 1 <![CDATA[<br>]]> argv[0] ≠ NULL <![CDATA[<br>]]> argv[0] ≠ argv[1]<![CDATA[</b>]]>
+ <![CDATA[</dt>]]><![CDATA[<dd>]]>
+ UPDATE with rowid or PRIMARY KEY change:
+ The row with rowid or PRIMARY KEY argv[0] is updated with
+ the rowid or PRIMARY KEY in argv[1]
+ and new values in argv[2] and following parameters. This will occur
+ when an SQL statement updates a rowid, as in the statement:
+ <para><code>
+ UPDATE table SET rowid=rowid+1 WHERE ...;
+ </code></para>
+ <![CDATA[</dd>]]><![CDATA[</dl>]]>
+ </code></para>
+ <para>
+ The xUpdate method must return SQLITE_OK if and only if it is
+ successful. If a failure occurs, the xUpdate must return an appropriate
+ error code. On a failure, the pVTab->zErrMsg element may optionally
+ be replaced with error message text stored in memory allocated from SQLite
+ using functions such as sqlite3_mprintf() or sqlite3_malloc().
+ </para>
+ <para>
+ If the xUpdate method violates some constraint of the virtual table
+ (including, but not limited to, attempting to store a value of the wrong
+ datatype, attempting to store a value that is too
+ large or too small, or attempting to change a read-only value) then the
+ xUpdate must fail with an appropriate error code.
+ </para>
+ <para>
+ If the xUpdate method is performing an UPDATE, then
+ sqlite3_value_nochange(X) can be used to discover which columns
+ of the virtual table were actually modified by the UPDATE
+ statement. The sqlite3_value_nochange(X) interface returns
+ true for columns that do not change.
+ On every UPDATE, SQLite will first invoke
+ xColumn separately for each unchanging column in the table to
+ obtain the value for that column. The xColumn method can
+ check to see if the column is unchanged at the SQL level
+ by invoking sqlite3_vtab_nochange(). If xColumn sees that
+ the column is not being modified, it should return without setting
+ a result using one of the sqlite3_result_xxxxx()
+ interfaces. Only in that case sqlite3_value_nochange() will be
+ true within the xUpdate method. If xColumn does
+ invoke one or more sqlite3_result_xxxxx()
+ interfaces, then SQLite understands that as a change in the value
+ of the column and the sqlite3_value_nochange() call for that
+ column within xUpdate will return false.
+ </para>
+ <para>
+ There might be one or more sqlite3_vtab_cursor objects open and in use
+ on the virtual table instance and perhaps even on the row of the virtual
+ table when the xUpdate method is invoked. The implementation of
+ xUpdate must be prepared for attempts to delete or modify rows of the table
+ out from other existing cursors. If the virtual table cannot accommodate
+ such changes, the xUpdate method must return an error code.
+ </para>
+ <para>
+ The xUpdate method is optional.
+ If the xUpdate pointer in the sqlite3_module for a virtual table
+ is a NULL pointer, then the virtual table is read-only.
+ </para>
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <param name="argc">
+ The number of new or modified column values contained in
+ <paramref name="argv" />.
+ </param>
+ <param name="argv">
+ The array of native pointers to sqlite3_value structures containing
+ the new or modified column values, if any.
+ </param>
+ <param name="rowId">
+ Upon success, this parameter must be modified to contain the unique
+ integer row identifier for the row that was inserted, if any.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xBegin(System.IntPtr)">
+ <summary>
+ <para><code>
+ int (*xBegin)(sqlite3_vtab *pVTab);
+ </code></para>
+ <para>
+ This method begins a transaction on a virtual table.
+ This is method is optional. The xBegin pointer of sqlite3_module
+ may be NULL.
+ </para>
+ <para>
+ This method is always followed by one call to either the
+ xCommit or xRollback method. Virtual table transactions do
+ not nest, so the xBegin method will not be invoked more than once
+ on a single virtual table
+ without an intervening call to either xCommit or xRollback.
+ Multiple calls to other methods can and likely will occur in between
+ the xBegin and the corresponding xCommit or xRollback.
+ </para>
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xSync(System.IntPtr)">
+ <summary>
+ <para><code>
+ int (*xSync)(sqlite3_vtab *pVTab);
+ </code></para>
+ <para>
+ This method signals the start of a two-phase commit on a virtual
+ table.
+ This is method is optional. The xSync pointer of sqlite3_module
+ may be NULL.
+ </para>
+ <para>
+ This method is only invoked after call to the xBegin method and
+ prior to an xCommit or xRollback. In order to implement two-phase
+ commit, the xSync method on all virtual tables is invoked prior to
+ invoking the xCommit method on any virtual table. If any of the
+ xSync methods fail, the entire transaction is rolled back.
+ </para>
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xCommit(System.IntPtr)">
+ <summary>
+ <para><code>
+ int (*xCommit)(sqlite3_vtab *pVTab);
+ </code></para>
+ <para>
+ This method causes a virtual table transaction to commit.
+ This is method is optional. The xCommit pointer of sqlite3_module
+ may be NULL.
+ </para>
+ <para>
+ A call to this method always follows a prior call to xBegin and
+ xSync.
+ </para>
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xRollback(System.IntPtr)">
+ <summary>
+ <para><code>
+ int (*xRollback)(sqlite3_vtab *pVTab);
+ </code></para>
+ <para>
+ This method causes a virtual table transaction to rollback.
+ This is method is optional. The xRollback pointer of sqlite3_module
+ may be NULL.
+ </para>
+ <para>
+ A call to this method always follows a prior call to xBegin.
+ </para>
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)">
+ <summary>
+ <para><code>
+ int (*xFindFunction)(
+ sqlite3_vtab *pVtab,
+ int nArg,
+ const char *zName,
+ void (**pxFunc)(sqlite3_context*,int,sqlite3_value**),
+ void **ppArg
+ );
+ </code></para>
+ <para>
+ This method is called during sqlite3_prepare() to give the virtual
+ table implementation an opportunity to overload functions.
+ This method may be set to NULL in which case no overloading occurs.
+ </para>
+ <para>
+ When a function uses a column from a virtual table as its first
+ argument, this method is called to see if the virtual table would
+ like to overload the function. The first three parameters are inputs:
+ the virtual table, the number of arguments to the function, and the
+ name of the function. If no overloading is desired, this method
+ returns 0. To overload the function, this method writes the new
+ function implementation into *pxFunc and writes user data into *ppArg
+ and returns either 1 or a number between
+ SQLITE_INDEX_CONSTRAINT_FUNCTION and 255.
+ </para>
+ <para>
+ Historically, the return value from xFindFunction() was either zero
+ or one. Zero means that the function is not overloaded and one means that
+ it is overload. The ability to return values of
+ SQLITE_INDEX_CONSTRAINT_FUNCTION or greater was added in
+ version 3.25.0 (2018-09-15). If xFindFunction returns
+ SQLITE_INDEX_CONSTRAINT_FUNCTION or greater, than means that the function
+ takes two arguments and the function
+ can be used as a boolean in the WHERE clause of a query and that
+ the virtual table is able to exploit that function to speed up the query
+ result. When xFindFunction returns SQLITE_INDEX_CONSTRAINT_FUNCTION or
+ larger, the value returned becomes the sqlite3_index_info.aConstraint.op
+ value for one of the constraints passed into xBestIndex() and the second
+ argument becomes the value corresponding to that constraint that is passed
+ to xFilter(). This enables the
+ xBestIndex()/xFilter implementations to use the function to speed
+ its search.
+ </para>
+ <para>
+ The technique of having xFindFunction() return values of
+ SQLITE_INDEX_CONSTRAINT_FUNCTION was initially used in the implementation
+ of the Geopoly module. The xFindFunction() method of that module returns
+ SQLITE_INDEX_CONSTRAINT_FUNCTION for the geopoly_overlap() SQL function
+ and it returns
+ SQLITE_INDEX_CONSTRAINT_FUNCTION+1 for the geopoly_within() SQL function.
+ This permits search optimizations for queries such as:
+ </para>
+ <para><code>
+ SELECT * FROM geopolytab WHERE geopoly_overlap(_shape, $query_polygon);
+ </code></para>
+ <para>
+ Note that infix functions (LIKE, GLOB, REGEXP, and MATCH) reverse
+ the order of their arguments. So "like(A,B)" is equivalent to "B like A".
+ For the form "B like A" the B term is considered the first argument
+ to the function. But for "like(A,B)" the A term is considered the
+ first argument.
+ </para>
+ <para>
+ The function pointer returned by this routine must be valid for
+ the lifetime of the sqlite3_vtab object given in the first parameter.
+ </para>
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <param name="nArg">
+ The number of arguments to the function being sought.
+ </param>
+ <param name="zName">
+ The name of the function being sought.
+ </param>
+ <param name="callback">
+ Upon success, this parameter must be modified to contain the
+ delegate responsible for implementing the specified function.
+ </param>
+ <param name="pClientData">
+ Upon success, this parameter must be modified to contain the
+ native user-data pointer associated with
+ <paramref name="callback" />.
+ </param>
+ <returns>
+ Non-zero if the specified function was found; zero otherwise.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xRename(System.IntPtr,System.IntPtr)">
+ <summary>
+ <para><code>
+ int (*xRename)(sqlite3_vtab *pVtab, const char *zNew);
+ </code></para>
+ <para>
+ This method provides notification that the virtual table implementation
+ that the virtual table will be given a new name.
+ If this method returns SQLITE_OK then SQLite renames the table.
+ If this method returns an error code then the renaming is prevented.
+ </para>
+ <para>
+ The xRename method is optional. If omitted, then the virtual
+ table may not be renamed using the ALTER TABLE RENAME command.
+ </para>
+ <para>
+ The PRAGMA legacy_alter_table setting is enabled prior to invoking this
+ method, and the value for legacy_alter_table is restored after this
+ method finishes. This is necessary for the correct operation of virtual
+ tables that make use of shadow tables where the shadow tables must be
+ renamed to match the new virtual table name. If the legacy_alter_format is
+ off, then the xConnect method will be invoked for the virtual table every
+ time the xRename method tries to change the name of the shadow table.
+ </para>
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <param name="zNew">
+ The native pointer to the UTF-8 encoded string containing the new
+ name for the virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xSavepoint(System.IntPtr,System.Int32)">
+ <summary>
+ <para><code>
+ int (*xSavepoint)(sqlite3_vtab *pVtab, int);
+ int (*xRelease)(sqlite3_vtab *pVtab, int);
+ int (*xRollbackTo)(sqlite3_vtab *pVtab, int);
+ </code></para>
+ <para>
+ These methods provide the virtual table implementation an opportunity to
+ implement nested transactions. They are always optional and will only be
+ called in SQLite version 3.7.7 (2011-06-23) and later.
+ </para>
+ <para>
+ When xSavepoint(X,N) is invoked, that is a signal to the virtual table X
+ that it should save its current state as savepoint N.
+ A subsequent call
+ to xRollbackTo(X,R) means that the state of the virtual table should return
+ to what it was when xSavepoint(X,R) was last called.
+ The call
+ to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the
+ invalided savepoints will be rolled back or released without first
+ being reinitialized by a call to xSavepoint().
+ A call to xRelease(X,M) invalidates all savepoints where N>=M.
+ </para>
+ <para>
+ None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever
+ be called except in between calls to xBegin() and
+ either xCommit() or xRollback().
+ </para>
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <param name="iSavepoint">
+ This is an integer identifier under which the the current state of
+ the virtual table should be saved.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xRelease(System.IntPtr,System.Int32)">
+ <summary>
+ <para><code>
+ int (*xSavepoint)(sqlite3_vtab *pVtab, int);
+ int (*xRelease)(sqlite3_vtab *pVtab, int);
+ int (*xRollbackTo)(sqlite3_vtab *pVtab, int);
+ </code></para>
+ <para>
+ These methods provide the virtual table implementation an opportunity to
+ implement nested transactions. They are always optional and will only be
+ called in SQLite version 3.7.7 (2011-06-23) and later.
+ </para>
+ <para>
+ When xSavepoint(X,N) is invoked, that is a signal to the virtual table X
+ that it should save its current state as savepoint N.
+ A subsequent call
+ to xRollbackTo(X,R) means that the state of the virtual table should return
+ to what it was when xSavepoint(X,R) was last called.
+ The call
+ to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the
+ invalided savepoints will be rolled back or released without first
+ being reinitialized by a call to xSavepoint().
+ A call to xRelease(X,M) invalidates all savepoints where N>=M.
+ </para>
+ <para>
+ None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever
+ be called except in between calls to xBegin() and
+ either xCommit() or xRollback().
+ </para>
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <param name="iSavepoint">
+ This is an integer used to indicate that any saved states with an
+ identifier greater than or equal to this should be deleted by the
+ virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteNativeModule.xRollbackTo(System.IntPtr,System.Int32)">
+ <summary>
+ <para><code>
+ int (*xSavepoint)(sqlite3_vtab *pVtab, int);
+ int (*xRelease)(sqlite3_vtab *pVtab, int);
+ int (*xRollbackTo)(sqlite3_vtab *pVtab, int);
+ </code></para>
+ <para>
+ These methods provide the virtual table implementation an opportunity to
+ implement nested transactions. They are always optional and will only be
+ called in SQLite version 3.7.7 (2011-06-23) and later.
+ </para>
+ <para>
+ When xSavepoint(X,N) is invoked, that is a signal to the virtual table X
+ that it should save its current state as savepoint N.
+ A subsequent call
+ to xRollbackTo(X,R) means that the state of the virtual table should return
+ to what it was when xSavepoint(X,R) was last called.
+ The call
+ to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the
+ invalided savepoints will be rolled back or released without first
+ being reinitialized by a call to xSavepoint().
+ A call to xRelease(X,M) invalidates all savepoints where N>=M.
+ </para>
+ <para>
+ None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever
+ be called except in between calls to xBegin() and
+ either xCommit() or xRollback().
+ </para>
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <param name="iSavepoint">
+ This is an integer identifier used to specify a specific saved
+ state for the virtual table for it to restore itself back to, which
+ should also have the effect of deleting all saved states with an
+ integer identifier greater than this one.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteContext">
+ <summary>
+ This class represents a context from the SQLite core library that can
+ be passed to the sqlite3_result_*() and associated functions.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.ISQLiteNativeHandle">
+ <summary>
+ This interface represents a native handle provided by the SQLite core
+ library.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.ISQLiteNativeHandle.NativeHandle">
+ <summary>
+ The native handle value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteContext.pContext">
+ <summary>
+ The native context handle.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteContext.#ctor(System.IntPtr)">
+ <summary>
+ Constructs an instance of this class using the specified native
+ context handle.
+ </summary>
+ <param name="pContext">
+ The native context handle to use.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteContext.SetNull">
+ <summary>
+ Sets the context result to NULL.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteContext.SetDouble(System.Double)">
+ <summary>
+ Sets the context result to the specified <see cref="T:System.Double"/>
+ value.
+ </summary>
+ <param name="value">
+ The <see cref="T:System.Double"/> value to use.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteContext.SetInt(System.Int32)">
+ <summary>
+ Sets the context result to the specified <see cref="T:System.Int32"/>
+ value.
+ </summary>
+ <param name="value">
+ The <see cref="T:System.Int32"/> value to use.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteContext.SetInt64(System.Int64)">
+ <summary>
+ Sets the context result to the specified <see cref="T:System.Int64"/>
+ value.
+ </summary>
+ <param name="value">
+ The <see cref="T:System.Int64"/> value to use.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteContext.SetString(System.String)">
+ <summary>
+ Sets the context result to the specified <see cref="T:System.String"/>
+ value.
+ </summary>
+ <param name="value">
+ The <see cref="T:System.String"/> value to use. This value will be
+ converted to the UTF-8 encoding prior to being used.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteContext.SetError(System.String)">
+ <summary>
+ Sets the context result to the specified <see cref="T:System.String"/>
+ value containing an error message.
+ </summary>
+ <param name="value">
+ The <see cref="T:System.String"/> value containing the error message text.
+ This value will be converted to the UTF-8 encoding prior to being
+ used.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteContext.SetErrorCode(System.Data.SQLite.SQLiteErrorCode)">
+ <summary>
+ Sets the context result to the specified <see cref="T:System.Data.SQLite.SQLiteErrorCode"/>
+ value.
+ </summary>
+ <param name="value">
+ The <see cref="T:System.Data.SQLite.SQLiteErrorCode"/> value to use.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteContext.SetErrorTooBig">
+ <summary>
+ Sets the context result to contain the error code SQLITE_TOOBIG.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteContext.SetErrorNoMemory">
+ <summary>
+ Sets the context result to contain the error code SQLITE_NOMEM.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteContext.SetBlob(System.Byte[])">
+ <summary>
+ Sets the context result to the specified <see cref="T:System.Byte"/> array
+ value.
+ </summary>
+ <param name="value">
+ The <see cref="T:System.Byte"/> array value to use.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteContext.SetZeroBlob(System.Int32)">
+ <summary>
+ Sets the context result to a BLOB of zeros of the specified size.
+ </summary>
+ <param name="value">
+ The number of zero bytes to use for the BLOB context result.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteContext.SetValue(System.Data.SQLite.SQLiteValue)">
+ <summary>
+ Sets the context result to the specified <see cref="T:System.Data.SQLite.SQLiteValue"/>.
+ </summary>
+ <param name="value">
+ The <see cref="T:System.Data.SQLite.SQLiteValue"/> to use.
+ </param>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteContext.NativeHandle">
+ <summary>
+ Returns the underlying SQLite native handle associated with this
+ object instance.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteValue">
+ <summary>
+ This class represents a value from the SQLite core library that can be
+ passed to the sqlite3_value_*() and associated functions.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteValue.pValue">
+ <summary>
+ The native value handle.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteValue.#ctor(System.IntPtr)">
+ <summary>
+ Constructs an instance of this class using the specified native
+ value handle.
+ </summary>
+ <param name="pValue">
+ The native value handle to use.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteValue.PreventNativeAccess">
+ <summary>
+ Invalidates the native value handle, thereby preventing further
+ access to it from this object instance.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteValue.FromIntPtr(System.IntPtr)">
+ <summary>
+ Converts a native pointer to a native sqlite3_value structure into
+ a managed <see cref="T:System.Data.SQLite.SQLiteValue"/> object instance.
+ </summary>
+ <param name="pValue">
+ The native pointer to a native sqlite3_value structure to convert.
+ </param>
+ <returns>
+ The managed <see cref="T:System.Data.SQLite.SQLiteValue"/> object instance or null upon
+ failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteValue.ArrayFromSizeAndIntPtr(System.Int32,System.IntPtr)">
+ <summary>
+ Converts a logical array of native pointers to native sqlite3_value
+ structures into a managed array of <see cref="T:System.Data.SQLite.SQLiteValue"/>
+ object instances.
+ </summary>
+ <param name="argc">
+ The number of elements in the logical array of native sqlite3_value
+ structures.
+ </param>
+ <param name="argv">
+ The native pointer to the logical array of native sqlite3_value
+ structures to convert.
+ </param>
+ <returns>
+ The managed array of <see cref="T:System.Data.SQLite.SQLiteValue"/> object instances or
+ null upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteValue.GetTypeAffinity">
+ <summary>
+ Gets and returns the type affinity associated with this value.
+ </summary>
+ <returns>
+ The type affinity associated with this value.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteValue.GetBytes">
+ <summary>
+ Gets and returns the number of bytes associated with this value, if
+ it refers to a UTF-8 encoded string.
+ </summary>
+ <returns>
+ The number of bytes associated with this value. The returned value
+ may be zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteValue.GetInt">
+ <summary>
+ Gets and returns the <see cref="T:System.Int32"/> associated with this
+ value.
+ </summary>
+ <returns>
+ The <see cref="T:System.Int32"/> associated with this value.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteValue.GetInt64">
+ <summary>
+ Gets and returns the <see cref="T:System.Int64"/> associated with
+ this value.
+ </summary>
+ <returns>
+ The <see cref="T:System.Int64"/> associated with this value.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteValue.GetDouble">
+ <summary>
+ Gets and returns the <see cref="T:System.Double"/> associated with this
+ value.
+ </summary>
+ <returns>
+ The <see cref="T:System.Double"/> associated with this value.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteValue.GetString">
+ <summary>
+ Gets and returns the <see cref="T:System.String"/> associated with this
+ value.
+ </summary>
+ <returns>
+ The <see cref="T:System.String"/> associated with this value. The value is
+ converted from the UTF-8 encoding prior to being returned.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteValue.GetBlob">
+ <summary>
+ Gets and returns the <see cref="T:System.Byte"/> array associated with this
+ value.
+ </summary>
+ <returns>
+ The <see cref="T:System.Byte"/> array associated with this value.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteValue.GetObject">
+ <summary>
+ Gets and returns an <see cref="T:System.Object"/> instance associated with
+ this value.
+ </summary>
+ <returns>
+ The <see cref="T:System.Object"/> associated with this value. If the type
+ affinity of the object is unknown or cannot be determined, a null
+ value will be returned.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteValue.Persist">
+ <summary>
+ Uses the native value handle to obtain and store the managed value
+ for this object instance, thus saving it for later use. The type
+ of the managed value is determined by the type affinity of the
+ native value. If the type affinity is not recognized by this
+ method, no work is done and false is returned.
+ </summary>
+ <returns>
+ Non-zero if the native value was persisted successfully.
+ </returns>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteValue.NativeHandle">
+ <summary>
+ Returns the underlying SQLite native handle associated with this
+ object instance.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteValue.Persisted">
+ <summary>
+ Returns non-zero if the native SQLite value has been successfully
+ persisted as a managed value within this object instance (i.e. the
+ <see cref="P:System.Data.SQLite.SQLiteValue.Value"/> property may then be read successfully).
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteValue.Value">
+ <summary>
+ If the managed value for this object instance is available (i.e. it
+ has been previously persisted via the <see cref="M:System.Data.SQLite.SQLiteValue.Persist"/>) method,
+ that value is returned; otherwise, an exception is thrown. The
+ returned value may be null.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteIndexConstraintOp">
+ <summary>
+ These are the allowed values for the operators that are part of a
+ constraint term in the WHERE clause of a query that uses a virtual
+ table.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraintOp.EqualTo">
+ <summary>
+ This value represents the equality operator.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraintOp.GreaterThan">
+ <summary>
+ This value represents the greater than operator.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraintOp.LessThanOrEqualTo">
+ <summary>
+ This value represents the less than or equal to operator.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraintOp.LessThan">
+ <summary>
+ This value represents the less than operator.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraintOp.GreaterThanOrEqualTo">
+ <summary>
+ This value represents the greater than or equal to operator.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraintOp.Match">
+ <summary>
+ This value represents the MATCH operator.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraintOp.Like">
+ <summary>
+ This value represents the LIKE operator.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraintOp.Glob">
+ <summary>
+ This value represents the GLOB operator.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraintOp.Regexp">
+ <summary>
+ This value represents the REGEXP operator.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraintOp.NotEqualTo">
+ <summary>
+ This value represents the inequality operator.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraintOp.IsNot">
+ <summary>
+ This value represents the IS NOT operator.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraintOp.IsNotNull">
+ <summary>
+ This value represents the IS NOT NULL operator.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraintOp.IsNull">
+ <summary>
+ This value represents the IS NULL operator.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraintOp.Is">
+ <summary>
+ This value represents the IS operator.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteIndexFlags">
+ <summary>
+ These are the allowed values for the index flags from the
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)"/> method.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexFlags.None">
+ <summary>
+ No special handling. This is the default.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexFlags.ScanUnique">
+ <summary>
+ This value indicates that the scan of the index will visit at
+ most one row.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteIndexConstraint">
+ <summary>
+ This class represents the native sqlite3_index_constraint structure
+ from the SQLite core library.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndexConstraint.#ctor(System.Data.SQLite.UnsafeNativeMethods.sqlite3_index_constraint)">
+ <summary>
+ Constructs an instance of this class using the specified native
+ sqlite3_index_constraint structure.
+ </summary>
+ <param name="constraint">
+ The native sqlite3_index_constraint structure to use.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndexConstraint.#ctor(System.Int32,System.Data.SQLite.SQLiteIndexConstraintOp,System.Byte,System.Int32)">
+ <summary>
+ Constructs an instance of this class using the specified field
+ values.
+ </summary>
+ <param name="iColumn">
+ Column on left-hand side of constraint.
+ </param>
+ <param name="op">
+ Constraint operator (<see cref="T:System.Data.SQLite.SQLiteIndexConstraintOp"/>).
+ </param>
+ <param name="usable">
+ True if this constraint is usable.
+ </param>
+ <param name="iTermOffset">
+ Used internally - <see cref="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)"/>
+ should ignore.
+ </param>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraint.iColumn">
+ <summary>
+ Column on left-hand side of constraint.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraint.op">
+ <summary>
+ Constraint operator (<see cref="T:System.Data.SQLite.SQLiteIndexConstraintOp"/>).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraint.usable">
+ <summary>
+ True if this constraint is usable.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraint.iTermOffset">
+ <summary>
+ Used internally - <see cref="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)"/>
+ should ignore.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteIndexOrderBy">
+ <summary>
+ This class represents the native sqlite3_index_orderby structure from
+ the SQLite core library.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndexOrderBy.#ctor(System.Data.SQLite.UnsafeNativeMethods.sqlite3_index_orderby)">
+ <summary>
+ Constructs an instance of this class using the specified native
+ sqlite3_index_orderby structure.
+ </summary>
+ <param name="orderBy">
+ The native sqlite3_index_orderby structure to use.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndexOrderBy.#ctor(System.Int32,System.Byte)">
+ <summary>
+ Constructs an instance of this class using the specified field
+ values.
+ </summary>
+ <param name="iColumn">
+ Column number.
+ </param>
+ <param name="desc">
+ True for DESC. False for ASC.
+ </param>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexOrderBy.iColumn">
+ <summary>
+ Column number.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexOrderBy.desc">
+ <summary>
+ True for DESC. False for ASC.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteIndexConstraintUsage">
+ <summary>
+ This class represents the native sqlite3_index_constraint_usage
+ structure from the SQLite core library.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndexConstraintUsage.#ctor">
+ <summary>
+ Constructs a default instance of this class.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndexConstraintUsage.#ctor(System.Data.SQLite.UnsafeNativeMethods.sqlite3_index_constraint_usage)">
+ <summary>
+ Constructs an instance of this class using the specified native
+ sqlite3_index_constraint_usage structure.
+ </summary>
+ <param name="constraintUsage">
+ The native sqlite3_index_constraint_usage structure to use.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndexConstraintUsage.#ctor(System.Int32,System.Byte)">
+ <summary>
+ Constructs an instance of this class using the specified field
+ values.
+ </summary>
+ <param name="argvIndex">
+ If greater than 0, constraint is part of argv to xFilter.
+ </param>
+ <param name="omit">
+ Do not code a test for this constraint.
+ </param>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraintUsage.argvIndex">
+ <summary>
+ If greater than 0, constraint is part of argv to xFilter.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteIndexConstraintUsage.omit">
+ <summary>
+ Do not code a test for this constraint.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteIndexInputs">
+ <summary>
+ This class represents the various inputs provided by the SQLite core
+ library to the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)"/> method.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndexInputs.#ctor(System.Int32,System.Int32)">
+ <summary>
+ Constructs an instance of this class.
+ </summary>
+ <param name="nConstraint">
+ The number of <see cref="T:System.Data.SQLite.SQLiteIndexConstraint"/> instances to
+ pre-allocate space for.
+ </param>
+ <param name="nOrderBy">
+ The number of <see cref="T:System.Data.SQLite.SQLiteIndexOrderBy"/> instances to
+ pre-allocate space for.
+ </param>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteIndexInputs.Constraints">
+ <summary>
+ An array of <see cref="T:System.Data.SQLite.SQLiteIndexConstraint"/> object instances,
+ each containing information supplied by the SQLite core library.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteIndexInputs.OrderBys">
+ <summary>
+ An array of <see cref="T:System.Data.SQLite.SQLiteIndexOrderBy"/> object instances,
+ each containing information supplied by the SQLite core library.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteIndexOutputs">
+ <summary>
+ This class represents the various outputs provided to the SQLite core
+ library by the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)"/> method.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndexOutputs.#ctor(System.Int32)">
+ <summary>
+ Constructs an instance of this class.
+ </summary>
+ <param name="nConstraint">
+ The number of <see cref="T:System.Data.SQLite.SQLiteIndexConstraintUsage"/> instances
+ to pre-allocate space for.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndexOutputs.CanUseEstimatedRows">
+ <summary>
+ Determines if the native estimatedRows field can be used, based on
+ the available version of the SQLite core library.
+ </summary>
+ <returns>
+ Non-zero if the <see cref="P:System.Data.SQLite.SQLiteIndexOutputs.EstimatedRows"/> property is supported
+ by the SQLite core library.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndexOutputs.CanUseIndexFlags">
+ <summary>
+ Determines if the native flags field can be used, based on the
+ available version of the SQLite core library.
+ </summary>
+ <returns>
+ Non-zero if the <see cref="P:System.Data.SQLite.SQLiteIndexOutputs.IndexFlags"/> property is supported by
+ the SQLite core library.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndexOutputs.CanUseColumnsUsed">
+ <summary>
+ Determines if the native flags field can be used, based on the
+ available version of the SQLite core library.
+ </summary>
+ <returns>
+ Non-zero if the <see cref="P:System.Data.SQLite.SQLiteIndexOutputs.ColumnsUsed"/> property is supported by
+ the SQLite core library.
+ </returns>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteIndexOutputs.ConstraintUsages">
+ <summary>
+ An array of <see cref="T:System.Data.SQLite.SQLiteIndexConstraintUsage"/> object
+ instances, each containing information to be supplied to the SQLite
+ core library.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteIndexOutputs.IndexNumber">
+ <summary>
+ Number used to help identify the selected index. This value will
+ later be provided to the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/>
+ method.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteIndexOutputs.IndexString">
+ <summary>
+ String used to help identify the selected index. This value will
+ later be provided to the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/>
+ method.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteIndexOutputs.NeedToFreeIndexString">
+ <summary>
+ Non-zero if the index string must be freed by the SQLite core
+ library.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteIndexOutputs.OrderByConsumed">
+ <summary>
+ True if output is already ordered.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteIndexOutputs.EstimatedCost">
+ <summary>
+ Estimated cost of using this index. Using a null value here
+ indicates that a default estimated cost value should be used.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteIndexOutputs.EstimatedRows">
+ <summary>
+ Estimated number of rows returned. Using a null value here
+ indicates that a default estimated rows value should be used.
+ This property has no effect if the SQLite core library is not at
+ least version 3.8.2.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteIndexOutputs.IndexFlags">
+ <summary>
+ The flags that should be used with this index. Using a null value
+ here indicates that a default flags value should be used. This
+ property has no effect if the SQLite core library is not at least
+ version 3.9.0.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteIndexOutputs.ColumnsUsed">
+ <summary>
+ <para>
+ Indicates which columns of the virtual table may be required by the
+ current scan. Virtual table columns are numbered from zero in the
+ order in which they appear within the CREATE TABLE statement passed
+ to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62),
+ the corresponding bit is set within the bit mask if the column may
+ be required by SQLite. If the table has at least 64 columns and
+ any column to the right of the first 63 is required, then bit 63 of
+ colUsed is also set. In other words, column iCol may be required
+ if the expression
+ </para>
+ <para><code>
+ (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol)))
+ </code></para>
+ <para>
+ evaluates to non-zero. Using a null value here indicates that a
+ default flags value should be used. This property has no effect if
+ the SQLite core library is not at least version 3.10.0.
+ </para>
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteIndex">
+ <summary>
+ This class represents the various inputs and outputs used with the
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)"/> method.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndex.#ctor(System.Int32,System.Int32)">
+ <summary>
+ Constructs an instance of this class.
+ </summary>
+ <param name="nConstraint">
+ The number of <see cref="T:System.Data.SQLite.SQLiteIndexConstraint"/> (and
+ <see cref="T:System.Data.SQLite.SQLiteIndexConstraintUsage"/>) instances to
+ pre-allocate space for.
+ </param>
+ <param name="nOrderBy">
+ The number of <see cref="T:System.Data.SQLite.SQLiteIndexOrderBy"/> instances to
+ pre-allocate space for.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndex.SizeOfNative(System.Int32@,System.Int32@,System.Int32@,System.Int32@)">
+ <summary>
+ Attempts to determine the structure sizes needed to create and
+ populate a native
+ <see cref="T:System.Data.SQLite.UnsafeNativeMethods.sqlite3_index_info"/>
+ structure.
+ </summary>
+ <param name="sizeOfInfoType">
+ The size of the native
+ <see cref="T:System.Data.SQLite.UnsafeNativeMethods.sqlite3_index_info"/>
+ structure is stored here.
+ </param>
+ <param name="sizeOfConstraintType">
+ The size of the native
+ <see cref="T:System.Data.SQLite.UnsafeNativeMethods.sqlite3_index_constraint"/>
+ structure is stored here.
+ </param>
+ <param name="sizeOfOrderByType">
+ The size of the native
+ <see cref="T:System.Data.SQLite.UnsafeNativeMethods.sqlite3_index_orderby"/>
+ structure is stored here.
+ </param>
+ <param name="sizeOfConstraintUsageType">
+ The size of the native
+ <see cref="T:System.Data.SQLite.UnsafeNativeMethods.sqlite3_index_constraint_usage"/>
+ structure is stored here.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndex.AllocateAndInitializeNative(System.Int32,System.Int32)">
+ <summary>
+ Attempts to allocate and initialize a native
+ <see cref="T:System.Data.SQLite.UnsafeNativeMethods.sqlite3_index_info"/>
+ structure.
+ </summary>
+ <param name="nConstraint">
+ The number of <see cref="T:System.Data.SQLite.SQLiteIndexConstraint"/> instances to
+ pre-allocate space for.
+ </param>
+ <param name="nOrderBy">
+ The number of <see cref="T:System.Data.SQLite.SQLiteIndexOrderBy"/> instances to
+ pre-allocate space for.
+ </param>
+ <returns>
+ The newly allocated native
+ <see cref="T:System.Data.SQLite.UnsafeNativeMethods.sqlite3_index_info"/> structure
+ -OR- <see cref="F:System.IntPtr.Zero"/> if it could not be fully allocated.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndex.FreeNative(System.IntPtr)">
+ <summary>
+ Frees all the memory associated with a native
+ <see cref="T:System.Data.SQLite.UnsafeNativeMethods.sqlite3_index_info"/>
+ structure.
+ </summary>
+ <param name="pIndex">
+ The native pointer to the native sqlite3_index_info structure to
+ free.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndex.FromIntPtr(System.IntPtr,System.Boolean,System.Data.SQLite.SQLiteIndex@)">
+ <summary>
+ Converts a native pointer to a native sqlite3_index_info structure
+ into a new <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance.
+ </summary>
+ <param name="pIndex">
+ The native pointer to the native sqlite3_index_info structure to
+ convert.
+ </param>
+ <param name="includeOutput">
+ Non-zero to include fields from the outputs portion of the native
+ structure; otherwise, the "output" fields will not be read.
+ </param>
+ <param name="index">
+ Upon success, this parameter will be modified to contain the newly
+ created <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteIndex.ToIntPtr(System.Data.SQLite.SQLiteIndex,System.IntPtr,System.Boolean)">
+ <summary>
+ Populates the outputs of a pre-allocated native sqlite3_index_info
+ structure using an existing <see cref="T:System.Data.SQLite.SQLiteIndex"/> object
+ instance.
+ </summary>
+ <param name="index">
+ The existing <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance containing
+ the output data to use.
+ </param>
+ <param name="pIndex">
+ The native pointer to the pre-allocated native sqlite3_index_info
+ structure.
+ </param>
+ <param name="includeInput">
+ Non-zero to include fields from the inputs portion of the native
+ structure; otherwise, the "input" fields will not be written.
+ </param>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteIndex.Inputs">
+ <summary>
+ The <see cref="T:System.Data.SQLite.SQLiteIndexInputs"/> object instance containing
+ the inputs to the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)"/>
+ method.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteIndex.Outputs">
+ <summary>
+ The <see cref="T:System.Data.SQLite.SQLiteIndexOutputs"/> object instance containing
+ the outputs from the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)"/>
+ method.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteVirtualTable">
+ <summary>
+ This class represents a managed virtual table implementation. It is
+ not sealed and should be used as the base class for any user-defined
+ virtual table classes implemented in managed code.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteVirtualTable.ModuleNameIndex">
+ <summary>
+ The index within the array of strings provided to the
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> and
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> methods containing the
+ name of the module implementing this virtual table.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteVirtualTable.DatabaseNameIndex">
+ <summary>
+ The index within the array of strings provided to the
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> and
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> methods containing the
+ name of the database containing this virtual table.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteVirtualTable.TableNameIndex">
+ <summary>
+ The index within the array of strings provided to the
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> and
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> methods containing the
+ name of the virtual table.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTable.#ctor(System.String[])">
+ <summary>
+ Constructs an instance of this class.
+ </summary>
+ <param name="arguments">
+ The original array of strings provided to the
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> and
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> methods.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTable.BestIndex(System.Data.SQLite.SQLiteIndex)">
+ <summary>
+ This method should normally be used by the
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)"/> method in order to
+ perform index selection based on the constraints provided by the
+ SQLite core library.
+ </summary>
+ <param name="index">
+ The <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance containing all the
+ data for the inputs and outputs relating to index selection.
+ </param>
+ <returns>
+ Non-zero upon success.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTable.Rename(System.String)">
+ <summary>
+ Attempts to record the renaming of the virtual table associated
+ with this object instance.
+ </summary>
+ <param name="name">
+ The new name for the virtual table.
+ </param>
+ <returns>
+ Non-zero upon success.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTable.Dispose">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTable.CheckDisposed">
+ <summary>
+ Throws an <see cref="T:System.ObjectDisposedException"/> if this object
+ instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTable.Dispose(System.Boolean)">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this method is being called from the
+ <see cref="M:System.Data.SQLite.SQLiteVirtualTable.Dispose"/> method. Zero if this method is being called
+ from the finalizer.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTable.Finalize">
+ <summary>
+ Finalizes this object instance.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteVirtualTable.Arguments">
+ <summary>
+ The original array of strings provided to the
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> and
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> methods.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteVirtualTable.ModuleName">
+ <summary>
+ The name of the module implementing this virtual table.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteVirtualTable.DatabaseName">
+ <summary>
+ The name of the database containing this virtual table.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteVirtualTable.TableName">
+ <summary>
+ The name of the virtual table.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteVirtualTable.Index">
+ <summary>
+ The <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance containing all the
+ data for the inputs and outputs relating to the most recent index
+ selection.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteVirtualTable.NativeHandle">
+ <summary>
+ Returns the underlying SQLite native handle associated with this
+ object instance.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteVirtualTableCursor">
+ <summary>
+ This class represents a managed virtual table cursor implementation.
+ It is not sealed and should be used as the base class for any
+ user-defined virtual table cursor classes implemented in managed code.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteVirtualTableCursor.InvalidRowIndex">
+ <summary>
+ This value represents an invalid integer row sequence number.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteVirtualTableCursor.rowIndex">
+ <summary>
+ The field holds the integer row sequence number for the current row
+ pointed to by this cursor object instance.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTableCursor.#ctor(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ Constructs an instance of this class.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this object instance.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTableCursor.#ctor">
+ <summary>
+ Constructs an instance of this class.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTableCursor.TryPersistValues(System.Data.SQLite.SQLiteValue[])">
+ <summary>
+ Attempts to persist the specified <see cref="T:System.Data.SQLite.SQLiteValue"/> object
+ instances in order to make them available after the
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/> method returns.
+ </summary>
+ <param name="values">
+ The array of <see cref="T:System.Data.SQLite.SQLiteValue"/> object instances to be
+ persisted.
+ </param>
+ <returns>
+ The number of <see cref="T:System.Data.SQLite.SQLiteValue"/> object instances that were
+ successfully persisted.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTableCursor.Filter(System.Int32,System.String,System.Data.SQLite.SQLiteValue[])">
+ <summary>
+ This method should normally be used by the
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/> method in order to
+ perform filtering of the result rows and/or to record the filtering
+ criteria provided by the SQLite core library.
+ </summary>
+ <param name="indexNumber">
+ Number used to help identify the selected index.
+ </param>
+ <param name="indexString">
+ String used to help identify the selected index.
+ </param>
+ <param name="values">
+ The values corresponding to each column in the selected index.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTableCursor.GetRowIndex">
+ <summary>
+ Determines the integer row sequence number for the current row.
+ </summary>
+ <returns>
+ The integer row sequence number for the current row -OR- zero if
+ it cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTableCursor.NextRowIndex">
+ <summary>
+ Adjusts the integer row sequence number so that it refers to the
+ next row.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTableCursor.Dispose">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTableCursor.CheckDisposed">
+ <summary>
+ Throws an <see cref="T:System.ObjectDisposedException"/> if this object
+ instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTableCursor.Dispose(System.Boolean)">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this method is being called from the
+ <see cref="M:System.Data.SQLite.SQLiteVirtualTableCursor.Dispose"/> method. Zero if this method is being called
+ from the finalizer.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTableCursor.Finalize">
+ <summary>
+ Finalizes this object instance.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteVirtualTableCursor.Table">
+ <summary>
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this object instance.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteVirtualTableCursor.IndexNumber">
+ <summary>
+ Number used to help identify the selected index. This value will
+ be set via the <see cref="M:System.Data.SQLite.SQLiteVirtualTableCursor.Filter(System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/> method.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteVirtualTableCursor.IndexString">
+ <summary>
+ String used to help identify the selected index. This value will
+ be set via the <see cref="M:System.Data.SQLite.SQLiteVirtualTableCursor.Filter(System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/> method.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteVirtualTableCursor.Values">
+ <summary>
+ The values used to filter the rows returned via this cursor object
+ instance. This value will be set via the <see cref="M:System.Data.SQLite.SQLiteVirtualTableCursor.Filter(System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/>
+ method.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteVirtualTableCursor.NativeHandle">
+ <summary>
+ Returns the underlying SQLite native handle associated with this
+ object instance.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.ISQLiteManagedModule">
+ <summary>
+ This interface represents a virtual table implementation written in
+ managed code.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </summary>
+ <param name="connection">
+ The <see cref="T:System.Data.SQLite.SQLiteConnection"/> object instance associated with
+ the virtual table.
+ </param>
+ <param name="pClientData">
+ The native user-data pointer associated with this module, as it was
+ provided to the SQLite core library when the native module instance
+ was created.
+ </param>
+ <param name="arguments">
+ The module name, database name, virtual table name, and all other
+ arguments passed to the CREATE VIRTUAL TABLE statement.
+ </param>
+ <param name="table">
+ Upon success, this parameter must be modified to contain the
+ <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated with
+ the virtual table.
+ </param>
+ <param name="error">
+ Upon failure, this parameter must be modified to contain an error
+ message.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </summary>
+ <param name="connection">
+ The <see cref="T:System.Data.SQLite.SQLiteConnection"/> object instance associated with
+ the virtual table.
+ </param>
+ <param name="pClientData">
+ The native user-data pointer associated with this module, as it was
+ provided to the SQLite core library when the native module instance
+ was created.
+ </param>
+ <param name="arguments">
+ The module name, database name, virtual table name, and all other
+ arguments passed to the CREATE VIRTUAL TABLE statement.
+ </param>
+ <param name="table">
+ Upon success, this parameter must be modified to contain the
+ <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated with
+ the virtual table.
+ </param>
+ <param name="error">
+ Upon failure, this parameter must be modified to contain an error
+ message.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBestIndex(System.IntPtr,System.IntPtr)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <param name="index">
+ The <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance containing all the
+ data for the inputs and outputs relating to index selection.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Disconnect(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDisconnect(System.IntPtr)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Destroy(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDestroy(System.IntPtr)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Open(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteVirtualTableCursor@)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xOpen(System.IntPtr,System.IntPtr@)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <param name="cursor">
+ Upon success, this parameter must be modified to contain the
+ <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance associated
+ with the newly opened virtual table cursor.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Close(System.Data.SQLite.SQLiteVirtualTableCursor)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xClose(System.IntPtr)"/> method.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance
+ associated with the previously opened virtual table cursor to be
+ used.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)"/> method.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance
+ associated with the previously opened virtual table cursor to be
+ used.
+ </param>
+ <param name="indexNumber">
+ Number used to help identify the selected index.
+ </param>
+ <param name="indexString">
+ String used to help identify the selected index.
+ </param>
+ <param name="values">
+ The values corresponding to each column in the selected index.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Next(System.Data.SQLite.SQLiteVirtualTableCursor)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xNext(System.IntPtr)"/> method.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance
+ associated with the previously opened virtual table cursor to be
+ used.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Eof(System.Data.SQLite.SQLiteVirtualTableCursor)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xEof(System.IntPtr)"/> method.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance
+ associated with the previously opened virtual table cursor to be
+ used.
+ </param>
+ <returns>
+ Non-zero if no more rows are available; zero otherwise.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xColumn(System.IntPtr,System.IntPtr,System.Int32)"/> method.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance
+ associated with the previously opened virtual table cursor to be
+ used.
+ </param>
+ <param name="context">
+ The <see cref="T:System.Data.SQLite.SQLiteContext"/> object instance to be used for
+ returning the specified column value to the SQLite core library.
+ </param>
+ <param name="index">
+ The zero-based index corresponding to the column containing the
+ value to be returned.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.RowId(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int64@)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRowId(System.IntPtr,System.Int64@)"/> method.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance
+ associated with the previously opened virtual table cursor to be
+ used.
+ </param>
+ <param name="rowId">
+ Upon success, this parameter must be modified to contain the unique
+ integer row identifier for the current row for the specified cursor.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Update(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteValue[],System.Int64@)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xUpdate(System.IntPtr,System.Int32,System.IntPtr,System.Int64@)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <param name="values">
+ The array of <see cref="T:System.Data.SQLite.SQLiteValue"/> object instances containing
+ the new or modified column values, if any.
+ </param>
+ <param name="rowId">
+ Upon success, this parameter must be modified to contain the unique
+ integer row identifier for the row that was inserted, if any.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Begin(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBegin(System.IntPtr)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Sync(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSync(System.IntPtr)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Commit(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCommit(System.IntPtr)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Rollback(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollback(System.IntPtr)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.FindFunction(System.Data.SQLite.SQLiteVirtualTable,System.Int32,System.String,System.Data.SQLite.SQLiteFunction@,System.IntPtr@)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <param name="argumentCount">
+ The number of arguments to the function being sought.
+ </param>
+ <param name="name">
+ The name of the function being sought.
+ </param>
+ <param name="function">
+ Upon success, this parameter must be modified to contain the
+ <see cref="T:System.Data.SQLite.SQLiteFunction"/> object instance responsible for
+ implementing the specified function.
+ </param>
+ <param name="pClientData">
+ Upon success, this parameter must be modified to contain the
+ native user-data pointer associated with
+ <paramref name="function"/>.
+ </param>
+ <returns>
+ Non-zero if the specified function was found; zero otherwise.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Rename(System.Data.SQLite.SQLiteVirtualTable,System.String)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRename(System.IntPtr,System.IntPtr)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <param name="newName">
+ The new name for the virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Savepoint(System.Data.SQLite.SQLiteVirtualTable,System.Int32)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSavepoint(System.IntPtr,System.Int32)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <param name="savepoint">
+ This is an integer identifier under which the the current state of
+ the virtual table should be saved.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.Release(System.Data.SQLite.SQLiteVirtualTable,System.Int32)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRelease(System.IntPtr,System.Int32)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <param name="savepoint">
+ This is an integer used to indicate that any saved states with an
+ identifier greater than or equal to this should be deleted by the
+ virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteManagedModule.RollbackTo(System.Data.SQLite.SQLiteVirtualTable,System.Int32)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollbackTo(System.IntPtr,System.Int32)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <param name="savepoint">
+ This is an integer identifier used to specify a specific saved
+ state for the virtual table for it to restore itself back to, which
+ should also have the effect of deleting all saved states with an
+ integer identifier greater than this one.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="P:System.Data.SQLite.ISQLiteManagedModule.Declared">
+ <summary>
+ Returns non-zero if the schema for the virtual table has been
+ declared.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.ISQLiteManagedModule.Name">
+ <summary>
+ Returns the name of the module as it was registered with the SQLite
+ core library.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteMemory">
+ <summary>
+ This class contains static methods that are used to allocate,
+ manipulate, and free native memory provided by the SQLite core library.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemory.CanUseSize64">
+ <summary>
+ Determines if the native sqlite3_msize() API can be used, based on
+ the available version of the SQLite core library.
+ </summary>
+ <returns>
+ Non-zero if the native sqlite3_msize() API is supported by the
+ SQLite core library.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemory.Allocate(System.Int32)">
+ <summary>
+ Allocates at least the specified number of bytes of native memory
+ via the SQLite core library sqlite3_malloc() function and returns
+ the resulting native pointer. If the TRACK_MEMORY_BYTES option
+ was enabled at compile-time, adjusts the number of bytes currently
+ allocated by this class.
+ </summary>
+ <param name="size">
+ The number of bytes to allocate.
+ </param>
+ <returns>
+ The native pointer that points to a block of memory of at least the
+ specified size -OR- <see cref="F:System.IntPtr.Zero"/> if the memory could
+ not be allocated.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemory.Allocate64(System.UInt64)">
+ <summary>
+ Allocates at least the specified number of bytes of native memory
+ via the SQLite core library sqlite3_malloc64() function and returns
+ the resulting native pointer. If the TRACK_MEMORY_BYTES option
+ was enabled at compile-time, adjusts the number of bytes currently
+ allocated by this class.
+ </summary>
+ <param name="size">
+ The number of bytes to allocate.
+ </param>
+ <returns>
+ The native pointer that points to a block of memory of at least the
+ specified size -OR- <see cref="F:System.IntPtr.Zero"/> if the memory could
+ not be allocated.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemory.AllocateUntracked(System.Int32)">
+ <summary>
+ Allocates at least the specified number of bytes of native memory
+ via the SQLite core library sqlite3_malloc() function and returns
+ the resulting native pointer without adjusting the number of
+ allocated bytes currently tracked by this class. This is useful
+ when dealing with blocks of memory that will be freed directly by
+ the SQLite core library.
+ </summary>
+ <param name="size">
+ The number of bytes to allocate.
+ </param>
+ <returns>
+ The native pointer that points to a block of memory of at least the
+ specified size -OR- <see cref="F:System.IntPtr.Zero"/> if the memory could
+ not be allocated.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemory.Allocate64Untracked(System.UInt64)">
+ <summary>
+ Allocates at least the specified number of bytes of native memory
+ via the SQLite core library sqlite3_malloc64() function and returns
+ the resulting native pointer without adjusting the number of
+ allocated bytes currently tracked by this class. This is useful
+ when dealing with blocks of memory that will be freed directly by
+ the SQLite core library.
+ </summary>
+ <param name="size">
+ The number of bytes to allocate.
+ </param>
+ <returns>
+ The native pointer that points to a block of memory of at least the
+ specified size -OR- <see cref="F:System.IntPtr.Zero"/> if the memory could
+ not be allocated.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemory.Size(System.IntPtr)">
+ <summary>
+ Gets and returns the actual size of the specified memory block
+ that was previously obtained from the <see cref="M:System.Data.SQLite.SQLiteMemory.Allocate(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteMemory.Allocate64(System.UInt64)"/>, <see cref="M:System.Data.SQLite.SQLiteMemory.AllocateUntracked(System.Int32)"/>, or
+ <see cref="M:System.Data.SQLite.SQLiteMemory.Allocate64Untracked(System.UInt64)"/> methods or directly from the
+ SQLite core library.
+ </summary>
+ <param name="pMemory">
+ The native pointer to the memory block previously obtained from
+ the <see cref="M:System.Data.SQLite.SQLiteMemory.Allocate(System.Int32)"/>, <see cref="M:System.Data.SQLite.SQLiteMemory.Allocate64(System.UInt64)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteMemory.AllocateUntracked(System.Int32)"/>, or
+ <see cref="M:System.Data.SQLite.SQLiteMemory.Allocate64Untracked(System.UInt64)"/> methods or directly from the
+ SQLite core library.
+ </param>
+ <returns>
+ The actual size, in bytes, of the memory block specified via the
+ native pointer.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemory.Size64(System.IntPtr)">
+ <summary>
+ Gets and returns the actual size of the specified memory block
+ that was previously obtained from the <see cref="M:System.Data.SQLite.SQLiteMemory.Allocate(System.Int32)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteMemory.Allocate64(System.UInt64)"/>, <see cref="M:System.Data.SQLite.SQLiteMemory.AllocateUntracked(System.Int32)"/>, or
+ <see cref="M:System.Data.SQLite.SQLiteMemory.Allocate64Untracked(System.UInt64)"/> methods or directly from the
+ SQLite core library.
+ </summary>
+ <param name="pMemory">
+ The native pointer to the memory block previously obtained from
+ the <see cref="M:System.Data.SQLite.SQLiteMemory.Allocate(System.Int32)"/>, <see cref="M:System.Data.SQLite.SQLiteMemory.Allocate64(System.UInt64)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteMemory.AllocateUntracked(System.Int32)"/>, or
+ <see cref="M:System.Data.SQLite.SQLiteMemory.Allocate64Untracked(System.UInt64)"/> methods or directly from the
+ SQLite core library.
+ </param>
+ <returns>
+ The actual size, in bytes, of the memory block specified via the
+ native pointer.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemory.Free(System.IntPtr)">
+ <summary>
+ Frees a memory block previously obtained from the
+ <see cref="M:System.Data.SQLite.SQLiteMemory.Allocate(System.Int32)"/> or <see cref="M:System.Data.SQLite.SQLiteMemory.Allocate64(System.UInt64)"/> methods. If
+ the TRACK_MEMORY_BYTES option was enabled at compile-time, adjusts
+ the number of bytes currently allocated by this class.
+ </summary>
+ <param name="pMemory">
+ The native pointer to the memory block previously obtained from the
+ <see cref="M:System.Data.SQLite.SQLiteMemory.Allocate(System.Int32)"/> or <see cref="M:System.Data.SQLite.SQLiteMemory.Allocate64(System.UInt64)"/> methods.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemory.FreeUntracked(System.IntPtr)">
+ <summary>
+ Frees a memory block previously obtained from the SQLite core
+ library without adjusting the number of allocated bytes currently
+ tracked by this class. This is useful when dealing with blocks of
+ memory that were not allocated using this class.
+ </summary>
+ <param name="pMemory">
+ The native pointer to the memory block previously obtained from the
+ SQLite core library.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteString">
+ <summary>
+ This class contains static methods that are used to deal with native
+ UTF-8 string pointers to be used with the SQLite core library.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteString.ThirtyBits">
+ <summary>
+ This is the maximum possible length for the native UTF-8 encoded
+ strings used with the SQLite core library.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteString.Utf8Encoding">
+ <summary>
+ This is the <see cref="T:System.Text.Encoding"/> object instance used to handle
+ conversions from/to UTF-8.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteString.GetUtf8BytesFromString(System.String)">
+ <summary>
+ Converts the specified managed string into the UTF-8 encoding and
+ returns the array of bytes containing its representation in that
+ encoding.
+ </summary>
+ <param name="value">
+ The managed string to convert.
+ </param>
+ <returns>
+ The array of bytes containing the representation of the managed
+ string in the UTF-8 encoding or null upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteString.GetStringFromUtf8Bytes(System.Byte[])">
+ <summary>
+ Converts the specified array of bytes representing a string in the
+ UTF-8 encoding and returns a managed string.
+ </summary>
+ <param name="bytes">
+ The array of bytes to convert.
+ </param>
+ <returns>
+ The managed string or null upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteString.ProbeForUtf8ByteLength(System.IntPtr,System.Int32)">
+ <summary>
+ Probes a native pointer to a string in the UTF-8 encoding for its
+ terminating NUL character, within the specified length limit.
+ </summary>
+ <param name="pValue">
+ The native NUL-terminated string pointer.
+ </param>
+ <param name="limit">
+ The maximum length of the native string, in bytes.
+ </param>
+ <returns>
+ The length of the native string, in bytes -OR- zero if the length
+ could not be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteString.StringFromUtf8IntPtr(System.IntPtr)">
+ <summary>
+ Converts the specified native NUL-terminated UTF-8 string pointer
+ into a managed string.
+ </summary>
+ <param name="pValue">
+ The native NUL-terminated UTF-8 string pointer.
+ </param>
+ <returns>
+ The managed string or null upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteString.StringFromUtf8IntPtr(System.IntPtr,System.Int32)">
+ <summary>
+ Converts the specified native UTF-8 string pointer of the specified
+ length into a managed string.
+ </summary>
+ <param name="pValue">
+ The native UTF-8 string pointer.
+ </param>
+ <param name="length">
+ The length of the native string, in bytes.
+ </param>
+ <returns>
+ The managed string or null upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteString.Utf8IntPtrFromString(System.String)">
+ <summary>
+ Converts the specified managed string into a native NUL-terminated
+ UTF-8 string pointer using memory obtained from the SQLite core
+ library.
+ </summary>
+ <param name="value">
+ The managed string to convert.
+ </param>
+ <returns>
+ The native NUL-terminated UTF-8 string pointer or
+ <see cref="F:System.IntPtr.Zero"/> upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteString.Utf8IntPtrFromString(System.String,System.Boolean)">
+ <summary>
+ Converts the specified managed string into a native NUL-terminated
+ UTF-8 string pointer using memory obtained from the SQLite core
+ library.
+ </summary>
+ <param name="value">
+ The managed string to convert.
+ </param>
+ <param name="tracked">
+ Non-zero to obtain memory from the SQLite core library without
+ adjusting the number of allocated bytes currently being tracked
+ by the <see cref="T:System.Data.SQLite.SQLiteMemory"/> class.
+ </param>
+ <returns>
+ The native NUL-terminated UTF-8 string pointer or
+ <see cref="F:System.IntPtr.Zero"/> upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteString.Utf8IntPtrFromString(System.String,System.Int32@)">
+ <summary>
+ Converts the specified managed string into a native NUL-terminated
+ UTF-8 string pointer using memory obtained from the SQLite core
+ library.
+ </summary>
+ <param name="value">
+ The managed string to convert.
+ </param>
+ <param name="length">
+ The length of the native string, in bytes.
+ </param>
+ <returns>
+ The native NUL-terminated UTF-8 string pointer or
+ <see cref="F:System.IntPtr.Zero"/> upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteString.Utf8IntPtrFromString(System.String,System.Boolean,System.Int32@)">
+ <summary>
+ Converts the specified managed string into a native NUL-terminated
+ UTF-8 string pointer using memory obtained from the SQLite core
+ library.
+ </summary>
+ <param name="value">
+ The managed string to convert.
+ </param>
+ <param name="tracked">
+ Non-zero to obtain memory from the SQLite core library without
+ adjusting the number of allocated bytes currently being tracked
+ by the <see cref="T:System.Data.SQLite.SQLiteMemory"/> class.
+ </param>
+ <param name="length">
+ The length of the native string, in bytes.
+ </param>
+ <returns>
+ The native NUL-terminated UTF-8 string pointer or
+ <see cref="F:System.IntPtr.Zero"/> upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteString.StringArrayFromUtf8SizeAndIntPtr(System.Int32,System.IntPtr)">
+ <summary>
+ Converts a logical array of native NUL-terminated UTF-8 string
+ pointers into an array of managed strings.
+ </summary>
+ <param name="argc">
+ The number of elements in the logical array of native
+ NUL-terminated UTF-8 string pointers.
+ </param>
+ <param name="argv">
+ The native pointer to the logical array of native NUL-terminated
+ UTF-8 string pointers to convert.
+ </param>
+ <returns>
+ The array of managed strings or null upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteString.Utf8IntPtrArrayFromStringArray(System.String[],System.Boolean)">
+ <summary>
+ Converts an array of managed strings into an array of native
+ NUL-terminated UTF-8 string pointers.
+ </summary>
+ <param name="values">
+ The array of managed strings to convert.
+ </param>
+ <param name="tracked">
+ Non-zero to obtain memory from the SQLite core library without
+ adjusting the number of allocated bytes currently being tracked
+ by the <see cref="T:System.Data.SQLite.SQLiteMemory"/> class.
+ </param>
+ <returns>
+ The array of native NUL-terminated UTF-8 string pointers or null
+ upon failure.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteBytes">
+ <summary>
+ This class contains static methods that are used to deal with native
+ pointers to memory blocks that logically contain arrays of bytes to be
+ used with the SQLite core library.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBytes.FromIntPtr(System.IntPtr,System.Int32)">
+ <summary>
+ Converts a native pointer to a logical array of bytes of the
+ specified length into a managed byte array.
+ </summary>
+ <param name="pValue">
+ The native pointer to the logical array of bytes to convert.
+ </param>
+ <param name="length">
+ The length, in bytes, of the logical array of bytes to convert.
+ </param>
+ <returns>
+ The managed byte array or null upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBytes.ToIntPtr(System.Byte[])">
+ <summary>
+ Converts a managed byte array into a native pointer to a logical
+ array of bytes.
+ </summary>
+ <param name="value">
+ The managed byte array to convert.
+ </param>
+ <returns>
+ The native pointer to a logical byte array or null upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteBytes.ToIntPtr(System.Byte[],System.Int32@)">
+ <summary>
+ Converts a managed byte array into a native pointer to a logical
+ array of bytes.
+ </summary>
+ <param name="value">
+ The managed byte array to convert.
+ </param>
+ <param name="length">
+ The length, in bytes, of the converted logical array of bytes.
+ </param>
+ <returns>
+ The native pointer to a logical byte array or null upon failure.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteMarshal">
+ <summary>
+ This class contains static methods that are used to perform several
+ low-level data marshalling tasks between native and managed code.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMarshal.IntPtrForOffset(System.IntPtr,System.Int32)">
+ <summary>
+ Returns a new <see cref="T:System.IntPtr"/> object instance based on the
+ specified <see cref="T:System.IntPtr"/> object instance and an integer
+ offset.
+ </summary>
+ <param name="pointer">
+ The <see cref="T:System.IntPtr"/> object instance representing the base
+ memory location.
+ </param>
+ <param name="offset">
+ The integer offset from the base memory location that the new
+ <see cref="T:System.IntPtr"/> object instance should point to.
+ </param>
+ <returns>
+ The new <see cref="T:System.IntPtr"/> object instance.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMarshal.RoundUp(System.Int32,System.Int32)">
+ <summary>
+ Rounds up an integer size to the next multiple of the alignment.
+ </summary>
+ <param name="size">
+ The size, in bytes, to be rounded up.
+ </param>
+ <param name="alignment">
+ The required alignment for the return value.
+ </param>
+ <returns>
+ The size, in bytes, rounded up to the next multiple of the
+ alignment. This value may end up being the same as the original
+ size.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMarshal.NextOffsetOf(System.Int32,System.Int32,System.Int32)">
+ <summary>
+ Determines the offset, in bytes, of the next structure member.
+ </summary>
+ <param name="offset">
+ The offset, in bytes, of the current structure member.
+ </param>
+ <param name="size">
+ The size, in bytes, of the current structure member.
+ </param>
+ <param name="alignment">
+ The alignment, in bytes, of the next structure member.
+ </param>
+ <returns>
+ The offset, in bytes, of the next structure member.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMarshal.ReadInt32(System.IntPtr,System.Int32)">
+ <summary>
+ Reads a <see cref="T:System.Int32"/> value from the specified memory
+ location.
+ </summary>
+ <param name="pointer">
+ The <see cref="T:System.IntPtr"/> object instance representing the base
+ memory location.
+ </param>
+ <param name="offset">
+ The integer offset from the base memory location where the
+ <see cref="T:System.Int32"/> value to be read is located.
+ </param>
+ <returns>
+ The <see cref="T:System.Int32"/> value at the specified memory location.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMarshal.ReadInt64(System.IntPtr,System.Int32)">
+ <summary>
+ Reads a <see cref="T:System.Int64"/> value from the specified memory
+ location.
+ </summary>
+ <param name="pointer">
+ The <see cref="T:System.IntPtr"/> object instance representing the base
+ memory location.
+ </param>
+ <param name="offset">
+ The integer offset from the base memory location where the
+ <see cref="T:System.Int64"/> value to be read is located.
+ </param>
+ <returns>
+ The <see cref="T:System.Int64"/> value at the specified memory location.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMarshal.ReadDouble(System.IntPtr,System.Int32)">
+ <summary>
+ Reads a <see cref="T:System.Double"/> value from the specified memory
+ location.
+ </summary>
+ <param name="pointer">
+ The <see cref="T:System.IntPtr"/> object instance representing the base
+ memory location.
+ </param>
+ <param name="offset">
+ The integer offset from the base memory location where the
+ <see cref="T:System.Double"/> to be read is located.
+ </param>
+ <returns>
+ The <see cref="T:System.Double"/> value at the specified memory location.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMarshal.ReadIntPtr(System.IntPtr,System.Int32)">
+ <summary>
+ Reads an <see cref="T:System.IntPtr"/> value from the specified memory
+ location.
+ </summary>
+ <param name="pointer">
+ The <see cref="T:System.IntPtr"/> object instance representing the base
+ memory location.
+ </param>
+ <param name="offset">
+ The integer offset from the base memory location where the
+ <see cref="T:System.IntPtr"/> value to be read is located.
+ </param>
+ <returns>
+ The <see cref="T:System.IntPtr"/> value at the specified memory location.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMarshal.WriteInt32(System.IntPtr,System.Int32,System.Int32)">
+ <summary>
+ Writes an <see cref="T:System.Int32"/> value to the specified memory
+ location.
+ </summary>
+ <param name="pointer">
+ The <see cref="T:System.IntPtr"/> object instance representing the base
+ memory location.
+ </param>
+ <param name="offset">
+ The integer offset from the base memory location where the
+ <see cref="T:System.Int32"/> value to be written is located.
+ </param>
+ <param name="value">
+ The <see cref="T:System.Int32"/> value to write.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMarshal.WriteInt64(System.IntPtr,System.Int32,System.Int64)">
+ <summary>
+ Writes an <see cref="T:System.Int64"/> value to the specified memory
+ location.
+ </summary>
+ <param name="pointer">
+ The <see cref="T:System.IntPtr"/> object instance representing the base
+ memory location.
+ </param>
+ <param name="offset">
+ The integer offset from the base memory location where the
+ <see cref="T:System.Int64"/> value to be written is located.
+ </param>
+ <param name="value">
+ The <see cref="T:System.Int64"/> value to write.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMarshal.WriteDouble(System.IntPtr,System.Int32,System.Double)">
+ <summary>
+ Writes a <see cref="T:System.Double"/> value to the specified memory
+ location.
+ </summary>
+ <param name="pointer">
+ The <see cref="T:System.IntPtr"/> object instance representing the base
+ memory location.
+ </param>
+ <param name="offset">
+ The integer offset from the base memory location where the
+ <see cref="T:System.Double"/> value to be written is located.
+ </param>
+ <param name="value">
+ The <see cref="T:System.Double"/> value to write.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMarshal.WriteIntPtr(System.IntPtr,System.Int32,System.IntPtr)">
+ <summary>
+ Writes a <see cref="T:System.IntPtr"/> value to the specified memory
+ location.
+ </summary>
+ <param name="pointer">
+ The <see cref="T:System.IntPtr"/> object instance representing the base
+ memory location.
+ </param>
+ <param name="offset">
+ The integer offset from the base memory location where the
+ <see cref="T:System.IntPtr"/> value to be written is located.
+ </param>
+ <param name="value">
+ The <see cref="T:System.IntPtr"/> value to write.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMarshal.GetHashCode(System.Object,System.Boolean)">
+ <summary>
+ Generates a hash code value for the object.
+ </summary>
+ <param name="value">
+ The object instance used to calculate the hash code.
+ </param>
+ <param name="identity">
+ Non-zero if different object instances with the same value should
+ generate different hash codes, where applicable. This parameter
+ has no effect on the .NET Compact Framework.
+ </param>
+ <returns>
+ The hash code value -OR- zero if the object is null.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteModule">
+ <summary>
+ This class represents a managed virtual table module implementation.
+ It is not sealed and must be used as the base class for any
+ user-defined virtual table module classes implemented in managed code.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteModule.DefaultModuleVersion">
+ <summary>
+ The default version of the native sqlite3_module structure in use.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteModule.nativeModule">
+ <summary>
+ This field is used to store the native sqlite3_module structure
+ associated with this object instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteModule.destroyModule">
+ <summary>
+ This field is used to store the destructor delegate to be passed to
+ the SQLite core library via the sqlite3_create_disposable_module()
+ function.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteModule.disposableModule">
+ <summary>
+ This field is used to store a pointer to the native sqlite3_module
+ structure returned by the sqlite3_create_disposable_module
+ function.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteModule.tables">
+ <summary>
+ This field is used to store the virtual table instances associated
+ with this module. The native pointer to the sqlite3_vtab derived
+ structure is used to key into this collection.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteModule.cursors">
+ <summary>
+ This field is used to store the virtual table cursor instances
+ associated with this module. The native pointer to the
+ sqlite3_vtab_cursor derived structure is used to key into this
+ collection.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteModule.functions">
+ <summary>
+ This field is used to store the virtual table function instances
+ associated with this module. The case-insensitive function name
+ and the number of arguments (with -1 meaning "any") are used to
+ construct the string that is used to key into this collection.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.#ctor(System.String)">
+ <summary>
+ Constructs an instance of this class.
+ </summary>
+ <param name="name">
+ The name of the module. This parameter cannot be null.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.CreateDisposableModule(System.IntPtr)">
+ <summary>
+ Calls the native SQLite core library in order to create a new
+ disposable module containing the implementation of a virtual table.
+ </summary>
+ <param name="pDb">
+ The native database connection pointer to use.
+ </param>
+ <returns>
+ Non-zero upon success.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xDestroyModule(System.IntPtr)">
+ <summary>
+ This method is called by the SQLite core library when the native
+ module associated with this object instance is being destroyed due
+ to its parent connection being closed. It may also be called by
+ the "vtshim" module if/when the sqlite3_dispose_module() function
+ is called.
+ </summary>
+ <param name="pClientData">
+ The native user-data pointer associated with this module, as it was
+ provided to the SQLite core library when the native module instance
+ was created.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.AllocateNativeModule">
+ <summary>
+ Creates and returns the native sqlite_module structure using the
+ configured (or default) <see cref="T:System.Data.SQLite.ISQLiteNativeModule"/>
+ interface implementation.
+ </summary>
+ <returns>
+ The native sqlite_module structure using the configured (or
+ default) <see cref="T:System.Data.SQLite.ISQLiteNativeModule"/> interface
+ implementation.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.AllocateNativeModule(System.Data.SQLite.ISQLiteNativeModule)">
+ <summary>
+ Creates and returns the native sqlite_module structure using the
+ specified <see cref="T:System.Data.SQLite.ISQLiteNativeModule"/> interface
+ implementation.
+ </summary>
+ <param name="module">
+ The <see cref="T:System.Data.SQLite.ISQLiteNativeModule"/> interface implementation to
+ use.
+ </param>
+ <returns>
+ The native sqlite_module structure using the specified
+ <see cref="T:System.Data.SQLite.ISQLiteNativeModule"/> interface implementation.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.CopyNativeModule(System.Data.SQLite.UnsafeNativeMethods.sqlite3_module)">
+ <summary>
+ Creates a copy of the specified
+ <see cref="T:System.Data.SQLite.UnsafeNativeMethods.sqlite3_module"/> object instance,
+ using default implementations for the contained delegates when
+ necessary.
+ </summary>
+ <param name="module">
+ The <see cref="T:System.Data.SQLite.UnsafeNativeMethods.sqlite3_module"/> object
+ instance to copy.
+ </param>
+ <returns>
+ The new <see cref="T:System.Data.SQLite.UnsafeNativeMethods.sqlite3_module"/> object
+ instance.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.CreateOrConnect(System.Boolean,System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)">
+ <summary>
+ Calls one of the virtual table initialization methods.
+ </summary>
+ <param name="create">
+ Non-zero to call the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/>
+ method; otherwise, the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/>
+ method will be called.
+ </param>
+ <param name="pDb">
+ The native database connection handle.
+ </param>
+ <param name="pAux">
+ The original native pointer value that was provided to the
+ sqlite3_create_module(), sqlite3_create_module_v2() or
+ sqlite3_create_disposable_module() functions.
+ </param>
+ <param name="argc">
+ The number of arguments from the CREATE VIRTUAL TABLE statement.
+ </param>
+ <param name="argv">
+ The array of string arguments from the CREATE VIRTUAL TABLE
+ statement.
+ </param>
+ <param name="pVtab">
+ Upon success, this parameter must be modified to point to the newly
+ created native sqlite3_vtab derived structure.
+ </param>
+ <param name="pError">
+ Upon failure, this parameter must be modified to point to the error
+ message, with the underlying memory having been obtained from the
+ sqlite3_malloc() function.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.DestroyOrDisconnect(System.Boolean,System.IntPtr)">
+ <summary>
+ Calls one of the virtual table finalization methods.
+ </summary>
+ <param name="destroy">
+ Non-zero to call the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Destroy(System.Data.SQLite.SQLiteVirtualTable)"/>
+ method; otherwise, the
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Disconnect(System.Data.SQLite.SQLiteVirtualTable)"/> method will be
+ called.
+ </param>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SetTableError(System.Data.SQLite.SQLiteModule,System.IntPtr,System.Boolean,System.Boolean,System.String)">
+ <summary>
+ Arranges for the specified error message to be placed into the
+ zErrMsg field of a sqlite3_vtab derived structure, freeing the
+ existing error message, if any.
+ </summary>
+ <param name="module">
+ The <see cref="T:System.Data.SQLite.SQLiteModule"/> object instance to be used.
+ </param>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <param name="logErrors">
+ Non-zero if this error message should also be logged using the
+ <see cref="T:System.Data.SQLite.SQLiteLog"/> class.
+ </param>
+ <param name="logExceptions">
+ Non-zero if caught exceptions should be logged using the
+ <see cref="T:System.Data.SQLite.SQLiteLog"/> class.
+ </param>
+ <param name="error">
+ The error message.
+ </param>
+ <returns>
+ Non-zero upon success.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SetTableError(System.Data.SQLite.SQLiteModule,System.Data.SQLite.SQLiteVirtualTable,System.Boolean,System.Boolean,System.String)">
+ <summary>
+ Arranges for the specified error message to be placed into the
+ zErrMsg field of a sqlite3_vtab derived structure, freeing the
+ existing error message, if any.
+ </summary>
+ <param name="module">
+ The <see cref="T:System.Data.SQLite.SQLiteModule"/> object instance to be used.
+ </param>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance used to
+ lookup the native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <param name="logErrors">
+ Non-zero if this error message should also be logged using the
+ <see cref="T:System.Data.SQLite.SQLiteLog"/> class.
+ </param>
+ <param name="logExceptions">
+ Non-zero if caught exceptions should be logged using the
+ <see cref="T:System.Data.SQLite.SQLiteLog"/> class.
+ </param>
+ <param name="error">
+ The error message.
+ </param>
+ <returns>
+ Non-zero upon success.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SetCursorError(System.Data.SQLite.SQLiteModule,System.IntPtr,System.Boolean,System.Boolean,System.String)">
+ <summary>
+ Arranges for the specified error message to be placed into the
+ zErrMsg field of a sqlite3_vtab derived structure, freeing the
+ existing error message, if any.
+ </summary>
+ <param name="module">
+ The <see cref="T:System.Data.SQLite.SQLiteModule"/> object instance to be used.
+ </param>
+ <param name="pCursor">
+ The native pointer to the sqlite3_vtab_cursor derived structure
+ used to get the native pointer to the sqlite3_vtab derived
+ structure.
+ </param>
+ <param name="logErrors">
+ Non-zero if this error message should also be logged using the
+ <see cref="T:System.Data.SQLite.SQLiteLog"/> class.
+ </param>
+ <param name="logExceptions">
+ Non-zero if caught exceptions should be logged using the
+ <see cref="T:System.Data.SQLite.SQLiteLog"/> class.
+ </param>
+ <param name="error">
+ The error message.
+ </param>
+ <returns>
+ Non-zero upon success.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SetCursorError(System.Data.SQLite.SQLiteModule,System.Data.SQLite.SQLiteVirtualTableCursor,System.Boolean,System.Boolean,System.String)">
+ <summary>
+ Arranges for the specified error message to be placed into the
+ zErrMsg field of a sqlite3_vtab derived structure, freeing the
+ existing error message, if any.
+ </summary>
+ <param name="module">
+ The <see cref="T:System.Data.SQLite.SQLiteModule"/> object instance to be used.
+ </param>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance used to
+ lookup the native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <param name="logErrors">
+ Non-zero if this error message should also be logged using the
+ <see cref="T:System.Data.SQLite.SQLiteLog"/> class.
+ </param>
+ <param name="logExceptions">
+ Non-zero if caught exceptions should be logged using the
+ <see cref="T:System.Data.SQLite.SQLiteLog"/> class.
+ </param>
+ <param name="error">
+ The error message.
+ </param>
+ <returns>
+ Non-zero upon success.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.GetNativeModuleImpl">
+ <summary>
+ Gets and returns the <see cref="T:System.Data.SQLite.ISQLiteNativeModule"/> interface
+ implementation to be used when creating the native sqlite3_module
+ structure. Derived classes may override this method to supply an
+ alternate implementation for the <see cref="T:System.Data.SQLite.ISQLiteNativeModule"/>
+ interface.
+ </summary>
+ <returns>
+ The <see cref="T:System.Data.SQLite.ISQLiteNativeModule"/> interface implementation to
+ be used when populating the native sqlite3_module structure. If
+ the returned value is null, the private methods provided by the
+ <see cref="T:System.Data.SQLite.SQLiteModule"/> class and relating to the
+ <see cref="T:System.Data.SQLite.ISQLiteNativeModule"/> interface will be used to
+ create the necessary delegates.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.CreateNativeModuleImpl">
+ <summary>
+ Creates and returns the <see cref="T:System.Data.SQLite.ISQLiteNativeModule"/>
+ interface implementation corresponding to the current
+ <see cref="T:System.Data.SQLite.SQLiteModule"/> object instance.
+ </summary>
+ <returns>
+ The <see cref="T:System.Data.SQLite.ISQLiteNativeModule"/> interface implementation
+ corresponding to the current <see cref="T:System.Data.SQLite.SQLiteModule"/> object
+ instance.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.AllocateTable">
+ <summary>
+ Allocates a native sqlite3_vtab derived structure and returns a
+ native pointer to it.
+ </summary>
+ <returns>
+ A native pointer to a native sqlite3_vtab derived structure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.ZeroTable(System.IntPtr)">
+ <summary>
+ Zeros out the fields of a native sqlite3_vtab derived structure.
+ </summary>
+ <param name="pVtab">
+ The native pointer to the native sqlite3_vtab derived structure to
+ zero.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.FreeTable(System.IntPtr)">
+ <summary>
+ Frees a native sqlite3_vtab structure using the provided native
+ pointer to it.
+ </summary>
+ <param name="pVtab">
+ A native pointer to a native sqlite3_vtab derived structure.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.AllocateCursor">
+ <summary>
+ Allocates a native sqlite3_vtab_cursor derived structure and
+ returns a native pointer to it.
+ </summary>
+ <returns>
+ A native pointer to a native sqlite3_vtab_cursor derived structure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.FreeCursor(System.IntPtr)">
+ <summary>
+ Frees a native sqlite3_vtab_cursor structure using the provided
+ native pointer to it.
+ </summary>
+ <param name="pCursor">
+ A native pointer to a native sqlite3_vtab_cursor derived structure.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.TableFromCursor(System.Data.SQLite.SQLiteModule,System.IntPtr)">
+ <summary>
+ Reads and returns the native pointer to the sqlite3_vtab derived
+ structure based on the native pointer to the sqlite3_vtab_cursor
+ derived structure.
+ </summary>
+ <param name="module">
+ The <see cref="T:System.Data.SQLite.SQLiteModule"/> object instance to be used.
+ </param>
+ <param name="pCursor">
+ The native pointer to the sqlite3_vtab_cursor derived structure
+ from which to read the native pointer to the sqlite3_vtab derived
+ structure.
+ </param>
+ <returns>
+ The native pointer to the sqlite3_vtab derived structure -OR-
+ <see cref="F:System.IntPtr.Zero"/> if it cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.TableFromCursor(System.IntPtr)">
+ <summary>
+ Reads and returns the native pointer to the sqlite3_vtab derived
+ structure based on the native pointer to the sqlite3_vtab_cursor
+ derived structure.
+ </summary>
+ <param name="pCursor">
+ The native pointer to the sqlite3_vtab_cursor derived structure
+ from which to read the native pointer to the sqlite3_vtab derived
+ structure.
+ </param>
+ <returns>
+ The native pointer to the sqlite3_vtab derived structure -OR-
+ <see cref="F:System.IntPtr.Zero"/> if it cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.TableFromIntPtr(System.IntPtr)">
+ <summary>
+ Looks up and returns the <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object
+ instance based on the native pointer to the sqlite3_vtab derived
+ structure.
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <returns>
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance or null if
+ the corresponding one cannot be found.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.TableToIntPtr(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ Allocates and returns a native pointer to a sqlite3_vtab derived
+ structure and creates an association between it and the specified
+ <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance to be used
+ when creating the association.
+ </param>
+ <returns>
+ The native pointer to a sqlite3_vtab derived structure or
+ <see cref="F:System.IntPtr.Zero"/> if the method fails for any reason.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.CursorFromIntPtr(System.IntPtr,System.IntPtr)">
+ <summary>
+ Looks up and returns the <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/>
+ object instance based on the native pointer to the
+ sqlite3_vtab_cursor derived structure.
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <param name="pCursor">
+ The native pointer to the sqlite3_vtab_cursor derived structure.
+ </param>
+ <returns>
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance or null
+ if the corresponding one cannot be found.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.CursorToIntPtr(System.Data.SQLite.SQLiteVirtualTableCursor)">
+ <summary>
+ Allocates and returns a native pointer to a sqlite3_vtab_cursor
+ derived structure and creates an association between it and the
+ specified <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance to be
+ used when creating the association.
+ </param>
+ <returns>
+ The native pointer to a sqlite3_vtab_cursor derived structure or
+ <see cref="F:System.IntPtr.Zero"/> if the method fails for any reason.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.GetFunctionKey(System.Int32,System.String,System.Data.SQLite.SQLiteFunction)">
+ <summary>
+ Deterimines the key that should be used to identify and store the
+ <see cref="T:System.Data.SQLite.SQLiteFunction"/> object instance for the virtual table
+ (i.e. to be returned via the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)"/> method).
+ </summary>
+ <param name="argumentCount">
+ The number of arguments to the virtual table function.
+ </param>
+ <param name="name">
+ The name of the virtual table function.
+ </param>
+ <param name="function">
+ The <see cref="T:System.Data.SQLite.SQLiteFunction"/> object instance associated with
+ this virtual table function.
+ </param>
+ <returns>
+ The string that should be used to identify and store the virtual
+ table function instance. This method cannot return null. If null
+ is returned from this method, the behavior is undefined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.DeclareTable(System.Data.SQLite.SQLiteConnection,System.String,System.String@)">
+ <summary>
+ Attempts to declare the schema for the virtual table using the
+ specified database connection.
+ </summary>
+ <param name="connection">
+ The <see cref="T:System.Data.SQLite.SQLiteConnection"/> object instance to use when
+ declaring the schema of the virtual table. This parameter may not
+ be null.
+ </param>
+ <param name="sql">
+ The string containing the CREATE TABLE statement that completely
+ describes the schema for the virtual table. This parameter may not
+ be null.
+ </param>
+ <param name="error">
+ Upon failure, this parameter must be modified to contain an error
+ message.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.DeclareFunction(System.Data.SQLite.SQLiteConnection,System.Int32,System.String,System.String@)">
+ <summary>
+ Calls the native SQLite core library in order to declare a virtual
+ table function in response to a call into the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/>
+ or <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> virtual table
+ methods.
+ </summary>
+ <param name="connection">
+ The <see cref="T:System.Data.SQLite.SQLiteConnection"/> object instance to use when
+ declaring the schema of the virtual table.
+ </param>
+ <param name="argumentCount">
+ The number of arguments to the function being declared.
+ </param>
+ <param name="name">
+ The name of the function being declared.
+ </param>
+ <param name="error">
+ Upon success, the contents of this parameter are undefined. Upon
+ failure, it should contain an appropriate error message.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SetTableError(System.IntPtr,System.String)">
+ <summary>
+ Arranges for the specified error message to be placed into the
+ zErrMsg field of a sqlite3_vtab derived structure, freeing the
+ existing error message, if any.
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <param name="error">
+ The error message.
+ </param>
+ <returns>
+ Non-zero upon success.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SetTableError(System.Data.SQLite.SQLiteVirtualTable,System.String)">
+ <summary>
+ Arranges for the specified error message to be placed into the
+ zErrMsg field of a sqlite3_vtab derived structure, freeing the
+ existing error message, if any.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance used to
+ lookup the native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <param name="error">
+ The error message.
+ </param>
+ <returns>
+ Non-zero upon success.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SetCursorError(System.Data.SQLite.SQLiteVirtualTableCursor,System.String)">
+ <summary>
+ Arranges for the specified error message to be placed into the
+ zErrMsg field of a sqlite3_vtab derived structure, freeing the
+ existing error message, if any.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance used to
+ lookup the native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <param name="error">
+ The error message.
+ </param>
+ <returns>
+ Non-zero upon success.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SetEstimatedCost(System.Data.SQLite.SQLiteIndex,System.Nullable{System.Double})">
+ <summary>
+ Modifies the specified <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance
+ to contain the specified estimated cost.
+ </summary>
+ <param name="index">
+ The <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance to modify.
+ </param>
+ <param name="estimatedCost">
+ The estimated cost value to use. Using a null value means that the
+ default value provided by the SQLite core library should be used.
+ </param>
+ <returns>
+ Non-zero upon success.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SetEstimatedCost(System.Data.SQLite.SQLiteIndex)">
+ <summary>
+ Modifies the specified <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance
+ to contain the default estimated cost.
+ </summary>
+ <param name="index">
+ The <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance to modify.
+ </param>
+ <returns>
+ Non-zero upon success.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SetEstimatedRows(System.Data.SQLite.SQLiteIndex,System.Nullable{System.Int64})">
+ <summary>
+ Modifies the specified <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance
+ to contain the specified estimated rows.
+ </summary>
+ <param name="index">
+ The <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance to modify.
+ </param>
+ <param name="estimatedRows">
+ The estimated rows value to use. Using a null value means that the
+ default value provided by the SQLite core library should be used.
+ </param>
+ <returns>
+ Non-zero upon success.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SetEstimatedRows(System.Data.SQLite.SQLiteIndex)">
+ <summary>
+ Modifies the specified <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance
+ to contain the default estimated rows.
+ </summary>
+ <param name="index">
+ The <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance to modify.
+ </param>
+ <returns>
+ Non-zero upon success.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SetIndexFlags(System.Data.SQLite.SQLiteIndex,System.Nullable{System.Data.SQLite.SQLiteIndexFlags})">
+ <summary>
+ Modifies the specified <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance
+ to contain the specified flags.
+ </summary>
+ <param name="index">
+ The <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance to modify.
+ </param>
+ <param name="indexFlags">
+ The index flags value to use. Using a null value means that the
+ default value provided by the SQLite core library should be used.
+ </param>
+ <returns>
+ Non-zero upon success.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SetIndexFlags(System.Data.SQLite.SQLiteIndex)">
+ <summary>
+ Modifies the specified <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance
+ to contain the default index flags.
+ </summary>
+ <param name="index">
+ The <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance to modify.
+ </param>
+ <returns>
+ Non-zero upon success.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </summary>
+ <param name="pDb">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="pAux">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="argc">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="argv">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="pError">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </summary>
+ <param name="pDb">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="pAux">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="argc">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="argv">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="pError">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xBestIndex(System.IntPtr,System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBestIndex(System.IntPtr,System.IntPtr)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBestIndex(System.IntPtr,System.IntPtr)"/> method.
+ </param>
+ <param name="pIndex">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBestIndex(System.IntPtr,System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBestIndex(System.IntPtr,System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xDisconnect(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDisconnect(System.IntPtr)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDisconnect(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDisconnect(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xDestroy(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDestroy(System.IntPtr)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDestroy(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDestroy(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xOpen(System.IntPtr,System.IntPtr@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xOpen(System.IntPtr,System.IntPtr@)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xOpen(System.IntPtr,System.IntPtr@)"/> method.
+ </param>
+ <param name="pCursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xOpen(System.IntPtr,System.IntPtr@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xOpen(System.IntPtr,System.IntPtr@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xClose(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xClose(System.IntPtr)"/> method.
+ </summary>
+ <param name="pCursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xClose(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xClose(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)"/> method.
+ </summary>
+ <param name="pCursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)"/> method.
+ </param>
+ <param name="idxNum">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)"/> method.
+ </param>
+ <param name="idxStr">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)"/> method.
+ </param>
+ <param name="argc">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)"/> method.
+ </param>
+ <param name="argv">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xNext(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xNext(System.IntPtr)"/> method.
+ </summary>
+ <param name="pCursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xNext(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xNext(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xEof(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xEof(System.IntPtr)"/> method.
+ </summary>
+ <param name="pCursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xEof(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xEof(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xColumn(System.IntPtr,System.IntPtr,System.Int32)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xColumn(System.IntPtr,System.IntPtr,System.Int32)"/> method.
+ </summary>
+ <param name="pCursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xColumn(System.IntPtr,System.IntPtr,System.Int32)"/> method.
+ </param>
+ <param name="pContext">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xColumn(System.IntPtr,System.IntPtr,System.Int32)"/> method.
+ </param>
+ <param name="index">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xColumn(System.IntPtr,System.IntPtr,System.Int32)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xColumn(System.IntPtr,System.IntPtr,System.Int32)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xRowId(System.IntPtr,System.Int64@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRowId(System.IntPtr,System.Int64@)"/> method.
+ </summary>
+ <param name="pCursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRowId(System.IntPtr,System.Int64@)"/> method.
+ </param>
+ <param name="rowId">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRowId(System.IntPtr,System.Int64@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRowId(System.IntPtr,System.Int64@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xUpdate(System.IntPtr,System.Int32,System.IntPtr,System.Int64@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xUpdate(System.IntPtr,System.Int32,System.IntPtr,System.Int64@)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xUpdate(System.IntPtr,System.Int32,System.IntPtr,System.Int64@)"/> method.
+ </param>
+ <param name="argc">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xUpdate(System.IntPtr,System.Int32,System.IntPtr,System.Int64@)"/> method.
+ </param>
+ <param name="argv">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xUpdate(System.IntPtr,System.Int32,System.IntPtr,System.Int64@)"/> method.
+ </param>
+ <param name="rowId">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xUpdate(System.IntPtr,System.Int32,System.IntPtr,System.Int64@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xUpdate(System.IntPtr,System.Int32,System.IntPtr,System.Int64@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xBegin(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBegin(System.IntPtr)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBegin(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBegin(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xSync(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSync(System.IntPtr)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSync(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSync(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xCommit(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCommit(System.IntPtr)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCommit(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCommit(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xRollback(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollback(System.IntPtr)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollback(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollback(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)"/> method.
+ </param>
+ <param name="nArg">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)"/> method.
+ </param>
+ <param name="zName">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)"/> method.
+ </param>
+ <param name="callback">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)"/> method.
+ </param>
+ <param name="pClientData">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xRename(System.IntPtr,System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRename(System.IntPtr,System.IntPtr)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRename(System.IntPtr,System.IntPtr)"/> method.
+ </param>
+ <param name="zNew">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRename(System.IntPtr,System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRename(System.IntPtr,System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xSavepoint(System.IntPtr,System.Int32)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSavepoint(System.IntPtr,System.Int32)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSavepoint(System.IntPtr,System.Int32)"/> method.
+ </param>
+ <param name="iSavepoint">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSavepoint(System.IntPtr,System.Int32)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSavepoint(System.IntPtr,System.Int32)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xRelease(System.IntPtr,System.Int32)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRelease(System.IntPtr,System.Int32)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRelease(System.IntPtr,System.Int32)"/> method.
+ </param>
+ <param name="iSavepoint">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRelease(System.IntPtr,System.Int32)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRelease(System.IntPtr,System.Int32)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.xRollbackTo(System.IntPtr,System.Int32)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollbackTo(System.IntPtr,System.Int32)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollbackTo(System.IntPtr,System.Int32)"/> method.
+ </param>
+ <param name="iSavepoint">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollbackTo(System.IntPtr,System.Int32)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollbackTo(System.IntPtr,System.Int32)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </summary>
+ <param name="connection">
+ The <see cref="T:System.Data.SQLite.SQLiteConnection"/> object instance associated with
+ the virtual table.
+ </param>
+ <param name="pClientData">
+ The native user-data pointer associated with this module, as it was
+ provided to the SQLite core library when the native module instance
+ was created.
+ </param>
+ <param name="arguments">
+ The module name, database name, virtual table name, and all other
+ arguments passed to the CREATE VIRTUAL TABLE statement.
+ </param>
+ <param name="table">
+ Upon success, this parameter must be modified to contain the
+ <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated with
+ the virtual table.
+ </param>
+ <param name="error">
+ Upon failure, this parameter must be modified to contain an error
+ message.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </summary>
+ <param name="connection">
+ The <see cref="T:System.Data.SQLite.SQLiteConnection"/> object instance associated with
+ the virtual table.
+ </param>
+ <param name="pClientData">
+ The native user-data pointer associated with this module, as it was
+ provided to the SQLite core library when the native module instance
+ was created.
+ </param>
+ <param name="arguments">
+ The module name, database name, virtual table name, and all other
+ arguments passed to the CREATE VIRTUAL TABLE statement.
+ </param>
+ <param name="table">
+ Upon success, this parameter must be modified to contain the
+ <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated with
+ the virtual table.
+ </param>
+ <param name="error">
+ Upon failure, this parameter must be modified to contain an error
+ message.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBestIndex(System.IntPtr,System.IntPtr)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <param name="index">
+ The <see cref="T:System.Data.SQLite.SQLiteIndex"/> object instance containing all the
+ data for the inputs and outputs relating to index selection.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Disconnect(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDisconnect(System.IntPtr)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Destroy(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDestroy(System.IntPtr)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Open(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteVirtualTableCursor@)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xOpen(System.IntPtr,System.IntPtr@)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <param name="cursor">
+ Upon success, this parameter must be modified to contain the
+ <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance associated
+ with the newly opened virtual table cursor.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Close(System.Data.SQLite.SQLiteVirtualTableCursor)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xClose(System.IntPtr)"/> method.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance
+ associated with the previously opened virtual table cursor to be
+ used.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)"/> method.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance
+ associated with the previously opened virtual table cursor to be
+ used.
+ </param>
+ <param name="indexNumber">
+ Number used to help identify the selected index.
+ </param>
+ <param name="indexString">
+ String used to help identify the selected index.
+ </param>
+ <param name="values">
+ The values corresponding to each column in the selected index.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Next(System.Data.SQLite.SQLiteVirtualTableCursor)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xNext(System.IntPtr)"/> method.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance
+ associated with the previously opened virtual table cursor to be
+ used.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Eof(System.Data.SQLite.SQLiteVirtualTableCursor)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xEof(System.IntPtr)"/> method.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance
+ associated with the previously opened virtual table cursor to be
+ used.
+ </param>
+ <returns>
+ Non-zero if no more rows are available; zero otherwise.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xColumn(System.IntPtr,System.IntPtr,System.Int32)"/> method.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance
+ associated with the previously opened virtual table cursor to be
+ used.
+ </param>
+ <param name="context">
+ The <see cref="T:System.Data.SQLite.SQLiteContext"/> object instance to be used for
+ returning the specified column value to the SQLite core library.
+ </param>
+ <param name="index">
+ The zero-based index corresponding to the column containing the
+ value to be returned.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.RowId(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int64@)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRowId(System.IntPtr,System.Int64@)"/> method.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance
+ associated with the previously opened virtual table cursor to be
+ used.
+ </param>
+ <param name="rowId">
+ Upon success, this parameter must be modified to contain the unique
+ integer row identifier for the current row for the specified cursor.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Update(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteValue[],System.Int64@)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xUpdate(System.IntPtr,System.Int32,System.IntPtr,System.Int64@)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <param name="values">
+ The array of <see cref="T:System.Data.SQLite.SQLiteValue"/> object instances containing
+ the new or modified column values, if any.
+ </param>
+ <param name="rowId">
+ Upon success, this parameter must be modified to contain the unique
+ integer row identifier for the row that was inserted, if any.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Begin(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBegin(System.IntPtr)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Sync(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSync(System.IntPtr)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Commit(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCommit(System.IntPtr)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Rollback(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollback(System.IntPtr)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.FindFunction(System.Data.SQLite.SQLiteVirtualTable,System.Int32,System.String,System.Data.SQLite.SQLiteFunction@,System.IntPtr@)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <param name="argumentCount">
+ The number of arguments to the function being sought.
+ </param>
+ <param name="name">
+ The name of the function being sought.
+ </param>
+ <param name="function">
+ Upon success, this parameter must be modified to contain the
+ <see cref="T:System.Data.SQLite.SQLiteFunction"/> object instance responsible for
+ implementing the specified function.
+ </param>
+ <param name="pClientData">
+ Upon success, this parameter must be modified to contain the
+ native user-data pointer associated with
+ <paramref name="function"/>.
+ </param>
+ <returns>
+ Non-zero if the specified function was found; zero otherwise.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Rename(System.Data.SQLite.SQLiteVirtualTable,System.String)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRename(System.IntPtr,System.IntPtr)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <param name="newName">
+ The new name for the virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Savepoint(System.Data.SQLite.SQLiteVirtualTable,System.Int32)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSavepoint(System.IntPtr,System.Int32)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <param name="savepoint">
+ This is an integer identifier under which the the current state of
+ the virtual table should be saved.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Release(System.Data.SQLite.SQLiteVirtualTable,System.Int32)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRelease(System.IntPtr,System.Int32)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <param name="savepoint">
+ This is an integer used to indicate that any saved states with an
+ identifier greater than or equal to this should be deleted by the
+ virtual table.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.RollbackTo(System.Data.SQLite.SQLiteVirtualTable,System.Int32)">
+ <summary>
+ This method is called in response to the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollbackTo(System.IntPtr,System.Int32)"/> method.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this virtual table.
+ </param>
+ <param name="savepoint">
+ This is an integer identifier used to specify a specific saved
+ state for the virtual table for it to restore itself back to, which
+ should also have the effect of deleting all saved states with an
+ integer identifier greater than this one.
+ </param>
+ <returns>
+ A standard SQLite return code.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Dispose">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.CheckDisposed">
+ <summary>
+ Throws an <see cref="T:System.ObjectDisposedException"/> if this object
+ instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Dispose(System.Boolean)">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this method is being called from the
+ <see cref="M:System.Data.SQLite.SQLiteModule.Dispose"/> method. Zero if this method is being
+ called from the finalizer.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.Finalize">
+ <summary>
+ Finalizes this object instance.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteModule.LogErrorsNoThrow">
+ <summary>
+ Returns or sets a boolean value indicating whether virtual table
+ errors should be logged using the <see cref="T:System.Data.SQLite.SQLiteLog"/> class.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteModule.LogExceptionsNoThrow">
+ <summary>
+ Returns or sets a boolean value indicating whether exceptions
+ caught in the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDisconnect(System.IntPtr)"/> method,
+ the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDestroy(System.IntPtr)"/> method,
+ the <see cref="M:System.Data.SQLite.SQLiteModule.SetTableError(System.IntPtr,System.String)"/> method,
+ the <see cref="M:System.Data.SQLite.SQLiteModule.SetTableError(System.Data.SQLite.SQLiteVirtualTable,System.String)"/> method,
+ and the <see cref="M:System.Data.SQLite.SQLiteModule.Dispose"/> method should be logged using the
+ <see cref="T:System.Data.SQLite.SQLiteLog"/> class.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteModule.LogErrors">
+ <summary>
+ Returns or sets a boolean value indicating whether virtual table
+ errors should be logged using the <see cref="T:System.Data.SQLite.SQLiteLog"/> class.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteModule.LogExceptions">
+ <summary>
+ Returns or sets a boolean value indicating whether exceptions
+ caught in the
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDisconnect(System.IntPtr)"/> method,
+ <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDestroy(System.IntPtr)"/> method, and the
+ <see cref="M:System.Data.SQLite.SQLiteModule.Dispose"/> method should be logged using the
+ <see cref="T:System.Data.SQLite.SQLiteLog"/> class.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteModule.Declared">
+ <summary>
+ Returns non-zero if the schema for the virtual table has been
+ declared.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteModule.Name">
+ <summary>
+ Returns the name of the module as it was registered with the SQLite
+ core library.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteModule.SQLiteNativeModule">
+ <summary>
+ This class implements the <see cref="T:System.Data.SQLite.ISQLiteNativeModule"/>
+ interface by forwarding those method calls to the
+ <see cref="T:System.Data.SQLite.SQLiteModule"/> object instance it contains. If the
+ contained <see cref="T:System.Data.SQLite.SQLiteModule"/> object instance is null, all
+ the <see cref="T:System.Data.SQLite.ISQLiteNativeModule"/> methods simply generate an
+ error.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.DefaultLogErrors">
+ <summary>
+ This is the value that is always used for the "logErrors"
+ parameter to the various static error handling methods provided
+ by the <see cref="T:System.Data.SQLite.SQLiteModule"/> class.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.DefaultLogExceptions">
+ <summary>
+ This is the value that is always used for the "logExceptions"
+ parameter to the various static error handling methods provided
+ by the <see cref="T:System.Data.SQLite.SQLiteModule"/> class.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.ModuleNotAvailableErrorMessage">
+ <summary>
+ This is the error message text used when the contained
+ <see cref="T:System.Data.SQLite.SQLiteModule"/> object instance is not available
+ for any reason.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.module">
+ <summary>
+ The <see cref="T:System.Data.SQLite.SQLiteModule"/> object instance used to provide
+ an implementation of the <see cref="T:System.Data.SQLite.ISQLiteNativeModule"/>
+ interface.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.#ctor(System.Data.SQLite.SQLiteModule)">
+ <summary>
+ Constructs an instance of this class.
+ </summary>
+ <param name="module">
+ The <see cref="T:System.Data.SQLite.SQLiteModule"/> object instance used to provide
+ an implementation of the <see cref="T:System.Data.SQLite.ISQLiteNativeModule"/>
+ interface.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.ModuleNotAvailableTableError(System.IntPtr)">
+ <summary>
+ Sets the table error message to one that indicates the native
+ module implementation is not available.
+ </summary>
+ <param name="pVtab">
+ The native pointer to the sqlite3_vtab derived structure.
+ </param>
+ <returns>
+ The value of <see cref="F:System.Data.SQLite.SQLiteErrorCode.Error"/>.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.ModuleNotAvailableCursorError(System.IntPtr)">
+ <summary>
+ Sets the table error message to one that indicates the native
+ module implementation is not available.
+ </summary>
+ <param name="pCursor">
+ The native pointer to the sqlite3_vtab_cursor derived
+ structure.
+ </param>
+ <returns>
+ The value of <see cref="F:System.Data.SQLite.SQLiteErrorCode.Error"/>.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </summary>
+ <param name="pDb">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="pAux">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="argc">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="argv">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="pError">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCreate(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </summary>
+ <param name="pDb">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="pAux">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="argc">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="argv">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <param name="pError">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xConnect(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr@,System.IntPtr@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xBestIndex(System.IntPtr,System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBestIndex(System.IntPtr,System.IntPtr)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBestIndex(System.IntPtr,System.IntPtr)"/> method.
+ </param>
+ <param name="pIndex">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBestIndex(System.IntPtr,System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBestIndex(System.IntPtr,System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xDisconnect(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDisconnect(System.IntPtr)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDisconnect(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDisconnect(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xDestroy(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDestroy(System.IntPtr)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDestroy(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xDestroy(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xOpen(System.IntPtr,System.IntPtr@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xOpen(System.IntPtr,System.IntPtr@)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xOpen(System.IntPtr,System.IntPtr@)"/> method.
+ </param>
+ <param name="pCursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xOpen(System.IntPtr,System.IntPtr@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xOpen(System.IntPtr,System.IntPtr@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xClose(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xClose(System.IntPtr)"/> method.
+ </summary>
+ <param name="pCursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xClose(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xClose(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)"/> method.
+ </summary>
+ <param name="pCursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)"/> method.
+ </param>
+ <param name="idxNum">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)"/> method.
+ </param>
+ <param name="idxStr">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)"/> method.
+ </param>
+ <param name="argc">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)"/> method.
+ </param>
+ <param name="argv">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFilter(System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xNext(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xNext(System.IntPtr)"/> method.
+ </summary>
+ <param name="pCursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xNext(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xNext(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xEof(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xEof(System.IntPtr)"/> method.
+ </summary>
+ <param name="pCursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xEof(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xEof(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xColumn(System.IntPtr,System.IntPtr,System.Int32)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xColumn(System.IntPtr,System.IntPtr,System.Int32)"/> method.
+ </summary>
+ <param name="pCursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xColumn(System.IntPtr,System.IntPtr,System.Int32)"/> method.
+ </param>
+ <param name="pContext">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xColumn(System.IntPtr,System.IntPtr,System.Int32)"/> method.
+ </param>
+ <param name="index">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xColumn(System.IntPtr,System.IntPtr,System.Int32)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xColumn(System.IntPtr,System.IntPtr,System.Int32)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xRowId(System.IntPtr,System.Int64@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRowId(System.IntPtr,System.Int64@)"/> method.
+ </summary>
+ <param name="pCursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRowId(System.IntPtr,System.Int64@)"/> method.
+ </param>
+ <param name="rowId">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRowId(System.IntPtr,System.Int64@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRowId(System.IntPtr,System.Int64@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xUpdate(System.IntPtr,System.Int32,System.IntPtr,System.Int64@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xUpdate(System.IntPtr,System.Int32,System.IntPtr,System.Int64@)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xUpdate(System.IntPtr,System.Int32,System.IntPtr,System.Int64@)"/> method.
+ </param>
+ <param name="argc">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xUpdate(System.IntPtr,System.Int32,System.IntPtr,System.Int64@)"/> method.
+ </param>
+ <param name="argv">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xUpdate(System.IntPtr,System.Int32,System.IntPtr,System.Int64@)"/> method.
+ </param>
+ <param name="rowId">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xUpdate(System.IntPtr,System.Int32,System.IntPtr,System.Int64@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xUpdate(System.IntPtr,System.Int32,System.IntPtr,System.Int64@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xBegin(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBegin(System.IntPtr)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBegin(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xBegin(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xSync(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSync(System.IntPtr)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSync(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSync(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xCommit(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCommit(System.IntPtr)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCommit(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xCommit(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xRollback(System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollback(System.IntPtr)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollback(System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollback(System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)"/> method.
+ </param>
+ <param name="nArg">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)"/> method.
+ </param>
+ <param name="zName">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)"/> method.
+ </param>
+ <param name="callback">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)"/> method.
+ </param>
+ <param name="pClientData">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xFindFunction(System.IntPtr,System.Int32,System.IntPtr,System.Data.SQLite.SQLiteCallback@,System.IntPtr@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xRename(System.IntPtr,System.IntPtr)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRename(System.IntPtr,System.IntPtr)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRename(System.IntPtr,System.IntPtr)"/> method.
+ </param>
+ <param name="zNew">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRename(System.IntPtr,System.IntPtr)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRename(System.IntPtr,System.IntPtr)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xSavepoint(System.IntPtr,System.Int32)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSavepoint(System.IntPtr,System.Int32)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSavepoint(System.IntPtr,System.Int32)"/> method.
+ </param>
+ <param name="iSavepoint">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSavepoint(System.IntPtr,System.Int32)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xSavepoint(System.IntPtr,System.Int32)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xRelease(System.IntPtr,System.Int32)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRelease(System.IntPtr,System.Int32)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRelease(System.IntPtr,System.Int32)"/> method.
+ </param>
+ <param name="iSavepoint">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRelease(System.IntPtr,System.Int32)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRelease(System.IntPtr,System.Int32)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.xRollbackTo(System.IntPtr,System.Int32)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollbackTo(System.IntPtr,System.Int32)"/> method.
+ </summary>
+ <param name="pVtab">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollbackTo(System.IntPtr,System.Int32)"/> method.
+ </param>
+ <param name="iSavepoint">
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollbackTo(System.IntPtr,System.Int32)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteNativeModule.xRollbackTo(System.IntPtr,System.Int32)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.Dispose">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.CheckDisposed">
+ <summary>
+ Throws an <see cref="T:System.ObjectDisposedException"/> if this object
+ instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.Dispose(System.Boolean)">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this method is being called from the
+ <see cref="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.Dispose"/> method. Zero if this method is being
+ called from the finalizer.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModule.SQLiteNativeModule.Finalize">
+ <summary>
+ Finalizes this object instance.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteModuleCommon">
+ <summary>
+ This class contains some virtual methods that may be useful for other
+ virtual table classes. It specifically does NOT implement any of the
+ <see cref="T:System.Data.SQLite.ISQLiteManagedModule"/> interface methods.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteModuleNoop">
+ <summary>
+ This class implements a virtual table module that does nothing by
+ providing "empty" implementations for all of the
+ <see cref="T:System.Data.SQLite.ISQLiteManagedModule"/> interface methods. The result
+ codes returned by these "empty" method implementations may be
+ controlled on a per-method basis by using and/or overriding the
+ <see cref="M:System.Data.SQLite.SQLiteModuleNoop.GetDefaultResultCode"/>,
+ <see cref="M:System.Data.SQLite.SQLiteModuleNoop.ResultCodeToEofResult(System.Data.SQLite.SQLiteErrorCode)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteModuleNoop.ResultCodeToFindFunctionResult(System.Data.SQLite.SQLiteErrorCode)"/>,
+ <see cref="M:System.Data.SQLite.SQLiteModuleNoop.GetMethodResultCode(System.String)"/>, and
+ <see cref="M:System.Data.SQLite.SQLiteModuleNoop.SetMethodResultCode(System.String,System.Data.SQLite.SQLiteErrorCode)"/> methods from within derived classes.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteModuleNoop.resultCodes">
+ <summary>
+ This field is used to store the <see cref="T:System.Data.SQLite.SQLiteErrorCode"/>
+ values to return, on a per-method basis, for all methods that are
+ part of the <see cref="T:System.Data.SQLite.ISQLiteManagedModule"/> interface.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.#ctor(System.String)">
+ <summary>
+ Constructs an instance of this class.
+ </summary>
+ <param name="name">
+ The name of the module. This parameter cannot be null.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.GetDefaultResultCode">
+ <summary>
+ Determines the default <see cref="T:System.Data.SQLite.SQLiteErrorCode"/> value to be
+ returned by methods of the <see cref="T:System.Data.SQLite.ISQLiteManagedModule"/>
+ interface that lack an overridden implementation in all classes
+ derived from the <see cref="T:System.Data.SQLite.SQLiteModuleNoop"/> class.
+ </summary>
+ <returns>
+ The <see cref="T:System.Data.SQLite.SQLiteErrorCode"/> value that should be returned
+ by all <see cref="T:System.Data.SQLite.ISQLiteManagedModule"/> interface methods unless
+ a more specific result code has been set for that interface method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.ResultCodeToEofResult(System.Data.SQLite.SQLiteErrorCode)">
+ <summary>
+ Converts a <see cref="T:System.Data.SQLite.SQLiteErrorCode"/> value into a boolean
+ return value for use with the
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Eof(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </summary>
+ <param name="resultCode">
+ The <see cref="T:System.Data.SQLite.SQLiteErrorCode"/> value to convert.
+ </param>
+ <returns>
+ The <see cref="T:System.Boolean"/> value.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.ResultCodeToFindFunctionResult(System.Data.SQLite.SQLiteErrorCode)">
+ <summary>
+ Converts a <see cref="T:System.Data.SQLite.SQLiteErrorCode"/> value into a boolean
+ return value for use with the
+ <see cref="M:System.Data.SQLite.ISQLiteManagedModule.FindFunction(System.Data.SQLite.SQLiteVirtualTable,System.Int32,System.String,System.Data.SQLite.SQLiteFunction@,System.IntPtr@)"/> method.
+ </summary>
+ <param name="resultCode">
+ The <see cref="T:System.Data.SQLite.SQLiteErrorCode"/> value to convert.
+ </param>
+ <returns>
+ The <see cref="T:System.Boolean"/> value.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.GetMethodResultCode(System.String)">
+ <summary>
+ Determines the <see cref="T:System.Data.SQLite.SQLiteErrorCode"/> value that should be
+ returned by the specified <see cref="T:System.Data.SQLite.ISQLiteManagedModule"/>
+ interface method if it lack an overridden implementation. If no
+ specific <see cref="T:System.Data.SQLite.SQLiteErrorCode"/> value is available (or set)
+ for the specified method, the <see cref="T:System.Data.SQLite.SQLiteErrorCode"/> value
+ returned by the <see cref="M:System.Data.SQLite.SQLiteModuleNoop.GetDefaultResultCode"/> method will be
+ returned instead.
+ </summary>
+ <param name="methodName">
+ The name of the method. Currently, this method must be part of
+ the <see cref="T:System.Data.SQLite.ISQLiteManagedModule"/> interface.
+ </param>
+ <returns>
+ The <see cref="T:System.Data.SQLite.SQLiteErrorCode"/> value that should be returned
+ by the <see cref="T:System.Data.SQLite.ISQLiteManagedModule"/> interface method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.SetMethodResultCode(System.String,System.Data.SQLite.SQLiteErrorCode)">
+ <summary>
+ Sets the <see cref="T:System.Data.SQLite.SQLiteErrorCode"/> value that should be
+ returned by the specified <see cref="T:System.Data.SQLite.ISQLiteManagedModule"/>
+ interface method if it lack an overridden implementation.
+ </summary>
+ <param name="methodName">
+ The name of the method. Currently, this method must be part of
+ the <see cref="T:System.Data.SQLite.ISQLiteManagedModule"/> interface.
+ </param>
+ <param name="resultCode">
+ The <see cref="T:System.Data.SQLite.SQLiteErrorCode"/> value that should be returned
+ by the <see cref="T:System.Data.SQLite.ISQLiteManagedModule"/> interface method.
+ </param>
+ <returns>
+ Non-zero upon success.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </summary>
+ <param name="connection">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <param name="pClientData">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <param name="arguments">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <param name="error">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </summary>
+ <param name="connection">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <param name="pClientData">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <param name="arguments">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <param name="error">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)"/> method.
+ </param>
+ <param name="index">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Disconnect(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Disconnect(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Disconnect(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Disconnect(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Destroy(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Destroy(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Destroy(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Destroy(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Open(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteVirtualTableCursor@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Open(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteVirtualTableCursor@)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Open(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteVirtualTableCursor@)"/> method.
+ </param>
+ <param name="cursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Open(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteVirtualTableCursor@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Open(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteVirtualTableCursor@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Close(System.Data.SQLite.SQLiteVirtualTableCursor)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Close(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </summary>
+ <param name="cursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Close(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Close(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/> method.
+ </summary>
+ <param name="cursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/> method.
+ </param>
+ <param name="indexNumber">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/> method.
+ </param>
+ <param name="indexString">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/> method.
+ </param>
+ <param name="values">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Next(System.Data.SQLite.SQLiteVirtualTableCursor)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Next(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </summary>
+ <param name="cursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Next(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Next(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Eof(System.Data.SQLite.SQLiteVirtualTableCursor)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Eof(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </summary>
+ <param name="cursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Eof(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Eof(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)"/> method.
+ </summary>
+ <param name="cursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)"/> method.
+ </param>
+ <param name="context">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)"/> method.
+ </param>
+ <param name="index">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.RowId(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int64@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.RowId(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int64@)"/> method.
+ </summary>
+ <param name="cursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.RowId(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int64@)"/> method.
+ </param>
+ <param name="rowId">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.RowId(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int64@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.RowId(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int64@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Update(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteValue[],System.Int64@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Update(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteValue[],System.Int64@)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Update(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteValue[],System.Int64@)"/> method.
+ </param>
+ <param name="values">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Update(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteValue[],System.Int64@)"/> method.
+ </param>
+ <param name="rowId">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Update(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteValue[],System.Int64@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Update(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteValue[],System.Int64@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Begin(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Begin(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Begin(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Begin(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Sync(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Sync(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Sync(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Sync(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Commit(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Commit(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Commit(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Commit(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Rollback(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Rollback(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Rollback(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Rollback(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.FindFunction(System.Data.SQLite.SQLiteVirtualTable,System.Int32,System.String,System.Data.SQLite.SQLiteFunction@,System.IntPtr@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.FindFunction(System.Data.SQLite.SQLiteVirtualTable,System.Int32,System.String,System.Data.SQLite.SQLiteFunction@,System.IntPtr@)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.FindFunction(System.Data.SQLite.SQLiteVirtualTable,System.Int32,System.String,System.Data.SQLite.SQLiteFunction@,System.IntPtr@)"/> method.
+ </param>
+ <param name="argumentCount">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.FindFunction(System.Data.SQLite.SQLiteVirtualTable,System.Int32,System.String,System.Data.SQLite.SQLiteFunction@,System.IntPtr@)"/> method.
+ </param>
+ <param name="name">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.FindFunction(System.Data.SQLite.SQLiteVirtualTable,System.Int32,System.String,System.Data.SQLite.SQLiteFunction@,System.IntPtr@)"/> method.
+ </param>
+ <param name="function">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.FindFunction(System.Data.SQLite.SQLiteVirtualTable,System.Int32,System.String,System.Data.SQLite.SQLiteFunction@,System.IntPtr@)"/> method.
+ </param>
+ <param name="pClientData">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.FindFunction(System.Data.SQLite.SQLiteVirtualTable,System.Int32,System.String,System.Data.SQLite.SQLiteFunction@,System.IntPtr@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.FindFunction(System.Data.SQLite.SQLiteVirtualTable,System.Int32,System.String,System.Data.SQLite.SQLiteFunction@,System.IntPtr@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Rename(System.Data.SQLite.SQLiteVirtualTable,System.String)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Rename(System.Data.SQLite.SQLiteVirtualTable,System.String)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Rename(System.Data.SQLite.SQLiteVirtualTable,System.String)"/> method.
+ </param>
+ <param name="newName">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Rename(System.Data.SQLite.SQLiteVirtualTable,System.String)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Rename(System.Data.SQLite.SQLiteVirtualTable,System.String)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Savepoint(System.Data.SQLite.SQLiteVirtualTable,System.Int32)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Savepoint(System.Data.SQLite.SQLiteVirtualTable,System.Int32)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Savepoint(System.Data.SQLite.SQLiteVirtualTable,System.Int32)"/> method.
+ </param>
+ <param name="savepoint">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Savepoint(System.Data.SQLite.SQLiteVirtualTable,System.Int32)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Savepoint(System.Data.SQLite.SQLiteVirtualTable,System.Int32)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Release(System.Data.SQLite.SQLiteVirtualTable,System.Int32)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Release(System.Data.SQLite.SQLiteVirtualTable,System.Int32)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Release(System.Data.SQLite.SQLiteVirtualTable,System.Int32)"/> method.
+ </param>
+ <param name="savepoint">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Release(System.Data.SQLite.SQLiteVirtualTable,System.Int32)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Release(System.Data.SQLite.SQLiteVirtualTable,System.Int32)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.RollbackTo(System.Data.SQLite.SQLiteVirtualTable,System.Int32)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.RollbackTo(System.Data.SQLite.SQLiteVirtualTable,System.Int32)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.RollbackTo(System.Data.SQLite.SQLiteVirtualTable,System.Int32)"/> method.
+ </param>
+ <param name="savepoint">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.RollbackTo(System.Data.SQLite.SQLiteVirtualTable,System.Int32)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.RollbackTo(System.Data.SQLite.SQLiteVirtualTable,System.Int32)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.CheckDisposed">
+ <summary>
+ Throws an <see cref="T:System.ObjectDisposedException"/> if this object
+ instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleNoop.Dispose(System.Boolean)">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this method is being called from the
+ <see cref="M:System.IDisposable.Dispose"/> method. Zero if this method is
+ being called from the finalizer.
+ </param>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteModuleCommon.declareSql">
+ <summary>
+ The CREATE TABLE statement used to declare the schema for the
+ virtual table.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteModuleCommon.objectIdentity">
+ <summary>
+ Non-zero if different object instances with the same value should
+ generate different row identifiers, where applicable. This has no
+ effect on the .NET Compact Framework.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleCommon.#ctor(System.String)">
+ <summary>
+ Constructs an instance of this class.
+ </summary>
+ <param name="name">
+ The name of the module. This parameter cannot be null.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleCommon.#ctor(System.String,System.Boolean)">
+ <summary>
+ Constructs an instance of this class.
+ </summary>
+ <param name="name">
+ The name of the module. This parameter cannot be null.
+ </param>
+ <param name="objectIdentity">
+ Non-zero if different object instances with the same value should
+ generate different row identifiers, where applicable. This
+ parameter has no effect on the .NET Compact Framework.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleCommon.GetSqlForDeclareTable">
+ <summary>
+ Determines the SQL statement used to declare the virtual table.
+ This method should be overridden in derived classes if they require
+ a custom virtual table schema.
+ </summary>
+ <returns>
+ The SQL statement used to declare the virtual table -OR- null if it
+ cannot be determined.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleCommon.CursorTypeMismatchError(System.Data.SQLite.SQLiteVirtualTableCursor,System.Type)">
+ <summary>
+ Sets the table error message to one that indicates the virtual
+ table cursor is of the wrong type.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance.
+ </param>
+ <param name="type">
+ The <see cref="T:System.Type"/> that the virtual table cursor should be.
+ </param>
+ <returns>
+ The value of <see cref="F:System.Data.SQLite.SQLiteErrorCode.Error"/>.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleCommon.GetStringFromObject(System.Data.SQLite.SQLiteVirtualTableCursor,System.Object)">
+ <summary>
+ Determines the string to return as the column value for the object
+ instance value.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance
+ associated with the previously opened virtual table cursor to be
+ used.
+ </param>
+ <param name="value">
+ The object instance to return a string representation for.
+ </param>
+ <returns>
+ The string representation of the specified object instance or null
+ upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleCommon.MakeRowId(System.Int32,System.Int32)">
+ <summary>
+ Constructs an <see cref="T:System.Int64"/> unique row identifier from two
+ <see cref="T:System.Int32"/> values. The first <see cref="T:System.Int32"/> value
+ must contain the row sequence number for the current row and the
+ second value must contain the hash code of the key column value
+ for the current row.
+ </summary>
+ <param name="rowIndex">
+ The integer row sequence number for the current row.
+ </param>
+ <param name="hashCode">
+ The hash code of the key column value for the current row.
+ </param>
+ <returns>
+ The unique row identifier or zero upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleCommon.GetRowIdFromObject(System.Data.SQLite.SQLiteVirtualTableCursor,System.Object)">
+ <summary>
+ Determines the unique row identifier for the current row.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance
+ associated with the previously opened virtual table cursor to be
+ used.
+ </param>
+ <param name="value">
+ The object instance to return a unique row identifier for.
+ </param>
+ <returns>
+ The unique row identifier or zero upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleCommon.CheckDisposed">
+ <summary>
+ Throws an <see cref="T:System.ObjectDisposedException"/> if this object
+ instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleCommon.Dispose(System.Boolean)">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this method is being called from the
+ <see cref="M:System.IDisposable.Dispose"/> method. Zero if this method is
+ being called from the finalizer.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteVirtualTableCursorEnumerator">
+ <summary>
+ This class represents a virtual table cursor to be used with the
+ <see cref="T:System.Data.SQLite.SQLiteModuleEnumerable"/> class. It is not sealed and may
+ be used as the base class for any user-defined virtual table cursor
+ class that wraps an <see cref="T:System.Collections.IEnumerator"/> object instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteVirtualTableCursorEnumerator.enumerator">
+ <summary>
+ The <see cref="T:System.Collections.IEnumerator"/> instance provided when this cursor
+ was created.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteVirtualTableCursorEnumerator.endOfEnumerator">
+ <summary>
+ This value will be non-zero if false has been returned from the
+ <see cref="M:System.Collections.IEnumerator.MoveNext"/> method.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTableCursorEnumerator.#ctor(System.Data.SQLite.SQLiteVirtualTable,System.Collections.IEnumerator)">
+ <summary>
+ Constructs an instance of this class.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this object instance.
+ </param>
+ <param name="enumerator">
+ The <see cref="T:System.Collections.IEnumerator"/> instance to expose as a virtual
+ table cursor.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTableCursorEnumerator.MoveNext">
+ <summary>
+ Advances to the next row of the virtual table cursor using the
+ <see cref="M:System.Collections.IEnumerator.MoveNext"/> method of the
+ <see cref="T:System.Collections.IEnumerator"/> object instance.
+ </summary>
+ <returns>
+ Non-zero if the current row is valid; zero otherwise. If zero is
+ returned, no further rows are available.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTableCursorEnumerator.Reset">
+ <summary>
+ Resets the virtual table cursor position, also invalidating the
+ current row, using the <see cref="M:System.Collections.IEnumerator.Reset"/> method of
+ the <see cref="T:System.Collections.IEnumerator"/> object instance.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTableCursorEnumerator.Close">
+ <summary>
+ Closes the virtual table cursor. This method must not throw any
+ exceptions.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTableCursorEnumerator.CheckClosed">
+ <summary>
+ Throws an <see cref="T:System.InvalidOperationException"/> if the virtual
+ table cursor has been closed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTableCursorEnumerator.CheckDisposed">
+ <summary>
+ Throws an <see cref="T:System.ObjectDisposedException"/> if this object
+ instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteVirtualTableCursorEnumerator.Dispose(System.Boolean)">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this method is being called from the
+ <see cref="M:System.IDisposable.Dispose"/> method. Zero if this method is
+ being called from the finalizer.
+ </param>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteVirtualTableCursorEnumerator.Current">
+ <summary>
+ Returns the value for the current row of the virtual table cursor
+ using the <see cref="P:System.Collections.IEnumerator.Current"/> property of the
+ <see cref="T:System.Collections.IEnumerator"/> object instance.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteVirtualTableCursorEnumerator.EndOfEnumerator">
+ <summary>
+ Returns non-zero if the end of the virtual table cursor has been
+ seen (i.e. no more rows are available, including the current one).
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteVirtualTableCursorEnumerator.IsOpen">
+ <summary>
+ Returns non-zero if the virtual table cursor is open.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteModuleEnumerable">
+ <summary>
+ This class implements a virtual table module that exposes an
+ <see cref="T:System.Collections.IEnumerable"/> object instance as a read-only virtual
+ table. It is not sealed and may be used as the base class for any
+ user-defined virtual table class that wraps an
+ <see cref="T:System.Collections.IEnumerable"/> object instance. The following short
+ example shows it being used to treat an array of strings as a table
+ data source:
+ <code>
+ public static class Sample
+ {
+ public static void Main()
+ {
+ using (SQLiteConnection connection = new SQLiteConnection(
+ "Data Source=:memory:;"))
+ {
+ connection.Open();
+
+ connection.CreateModule(new SQLiteModuleEnumerable(
+ "sampleModule", new string[] { "one", "two", "three" }));
+
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ command.CommandText =
+ "CREATE VIRTUAL TABLE t1 USING sampleModule;";
+
+ command.ExecuteNonQuery();
+ }
+
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ command.CommandText = "SELECT * FROM t1;";
+
+ using (SQLiteDataReader dataReader = command.ExecuteReader())
+ {
+ while (dataReader.Read())
+ Console.WriteLine(dataReader[0].ToString());
+ }
+ }
+
+ connection.Close();
+ }
+ }
+ }
+ </code>
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteModuleEnumerable.enumerable">
+ <summary>
+ The <see cref="T:System.Collections.IEnumerable"/> instance containing the backing data
+ for the virtual table.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteModuleEnumerable.objectIdentity">
+ <summary>
+ Non-zero if different object instances with the same value should
+ generate different row identifiers, where applicable. This has no
+ effect on the .NET Compact Framework.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.#ctor(System.String,System.Collections.IEnumerable)">
+ <summary>
+ Constructs an instance of this class.
+ </summary>
+ <param name="name">
+ The name of the module. This parameter cannot be null.
+ </param>
+ <param name="enumerable">
+ The <see cref="T:System.Collections.IEnumerable"/> instance to expose as a virtual
+ table. This parameter cannot be null.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.#ctor(System.String,System.Collections.IEnumerable,System.Boolean)">
+ <summary>
+ Constructs an instance of this class.
+ </summary>
+ <param name="name">
+ The name of the module. This parameter cannot be null.
+ </param>
+ <param name="enumerable">
+ The <see cref="T:System.Collections.IEnumerable"/> instance to expose as a virtual
+ table. This parameter cannot be null.
+ </param>
+ <param name="objectIdentity">
+ Non-zero if different object instances with the same value should
+ generate different row identifiers, where applicable. This
+ parameter has no effect on the .NET Compact Framework.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.CursorEndOfEnumeratorError(System.Data.SQLite.SQLiteVirtualTableCursor)">
+ <summary>
+ Sets the table error message to one that indicates the virtual
+ table cursor has no current row.
+ </summary>
+ <param name="cursor">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTableCursor"/> object instance.
+ </param>
+ <returns>
+ The value of <see cref="F:System.Data.SQLite.SQLiteErrorCode.Error"/>.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </summary>
+ <param name="connection">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <param name="pClientData">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <param name="arguments">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <param name="error">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Create(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </summary>
+ <param name="connection">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <param name="pClientData">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <param name="arguments">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <param name="error">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Connect(System.Data.SQLite.SQLiteConnection,System.IntPtr,System.String[],System.Data.SQLite.SQLiteVirtualTable@,System.String@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)"/> method.
+ </param>
+ <param name="index">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.BestIndex(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteIndex)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.Disconnect(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Disconnect(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Disconnect(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Disconnect(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.Destroy(System.Data.SQLite.SQLiteVirtualTable)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Destroy(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Destroy(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Destroy(System.Data.SQLite.SQLiteVirtualTable)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.Open(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteVirtualTableCursor@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Open(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteVirtualTableCursor@)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Open(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteVirtualTableCursor@)"/> method.
+ </param>
+ <param name="cursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Open(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteVirtualTableCursor@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Open(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteVirtualTableCursor@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.Close(System.Data.SQLite.SQLiteVirtualTableCursor)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Close(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </summary>
+ <param name="cursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Close(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Close(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/> method.
+ </summary>
+ <param name="cursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/> method.
+ </param>
+ <param name="indexNumber">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/> method.
+ </param>
+ <param name="indexString">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/> method.
+ </param>
+ <param name="values">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Filter(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int32,System.String,System.Data.SQLite.SQLiteValue[])"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.Next(System.Data.SQLite.SQLiteVirtualTableCursor)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Next(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </summary>
+ <param name="cursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Next(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Next(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.Eof(System.Data.SQLite.SQLiteVirtualTableCursor)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Eof(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </summary>
+ <param name="cursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Eof(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Eof(System.Data.SQLite.SQLiteVirtualTableCursor)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)"/> method.
+ </summary>
+ <param name="cursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)"/> method.
+ </param>
+ <param name="context">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)"/> method.
+ </param>
+ <param name="index">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.RowId(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int64@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.RowId(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int64@)"/> method.
+ </summary>
+ <param name="cursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.RowId(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int64@)"/> method.
+ </param>
+ <param name="rowId">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.RowId(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int64@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.RowId(System.Data.SQLite.SQLiteVirtualTableCursor,System.Int64@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.Update(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteValue[],System.Int64@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Update(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteValue[],System.Int64@)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Update(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteValue[],System.Int64@)"/> method.
+ </param>
+ <param name="values">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Update(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteValue[],System.Int64@)"/> method.
+ </param>
+ <param name="rowId">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Update(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteValue[],System.Int64@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Update(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteValue[],System.Int64@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.Rename(System.Data.SQLite.SQLiteVirtualTable,System.String)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Rename(System.Data.SQLite.SQLiteVirtualTable,System.String)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Rename(System.Data.SQLite.SQLiteVirtualTable,System.String)"/> method.
+ </param>
+ <param name="newName">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Rename(System.Data.SQLite.SQLiteVirtualTable,System.String)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Rename(System.Data.SQLite.SQLiteVirtualTable,System.String)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.CheckDisposed">
+ <summary>
+ Throws an <see cref="T:System.ObjectDisposedException"/> if this object
+ instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteModuleEnumerable.Dispose(System.Boolean)">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this method is being called from the
+ <see cref="M:System.IDisposable.Dispose"/> method. Zero if this method is
+ being called from the finalizer.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.Generic.SQLiteVirtualTableCursorEnumerator`1">
+ <summary>
+ This class represents a virtual table cursor to be used with the
+ <see cref="T:System.Data.SQLite.SQLiteModuleEnumerable"/> class. It is not sealed and may
+ be used as the base class for any user-defined virtual table cursor
+ class that wraps an <see cref="T:System.Collections.Generic.IEnumerator`1"/> object instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.Generic.SQLiteVirtualTableCursorEnumerator`1.enumerator">
+ <summary>
+ The <see cref="T:System.Collections.Generic.IEnumerator`1"/> instance provided when this
+ cursor was created.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.Generic.SQLiteVirtualTableCursorEnumerator`1.#ctor(System.Data.SQLite.SQLiteVirtualTable,System.Collections.Generic.IEnumerator{`0})">
+ <summary>
+ Constructs an instance of this class.
+ </summary>
+ <param name="table">
+ The <see cref="T:System.Data.SQLite.SQLiteVirtualTable"/> object instance associated
+ with this object instance.
+ </param>
+ <param name="enumerator">
+ The <see cref="T:System.Collections.Generic.IEnumerator`1"/> instance to expose as a virtual
+ table cursor.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.Generic.SQLiteVirtualTableCursorEnumerator`1.Close">
+ <summary>
+ Closes the virtual table cursor. This method must not throw any
+ exceptions.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.Generic.SQLiteVirtualTableCursorEnumerator`1.CheckDisposed">
+ <summary>
+ Throws an <see cref="T:System.ObjectDisposedException"/> if this object
+ instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.Generic.SQLiteVirtualTableCursorEnumerator`1.Dispose(System.Boolean)">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this method is being called from the
+ <see cref="M:System.IDisposable.Dispose"/> method. Zero if this method is
+ being called from the finalizer.
+ </param>
+ </member>
+ <member name="P:System.Data.SQLite.Generic.SQLiteVirtualTableCursorEnumerator`1.System#Collections#Generic#IEnumerator{T}#Current">
+ <summary>
+ Returns the value for the current row of the virtual table cursor
+ using the <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property of the
+ <see cref="T:System.Collections.Generic.IEnumerator`1"/> object instance.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.Generic.SQLiteModuleEnumerable`1">
+ <summary>
+ This class implements a virtual table module that exposes an
+ <see cref="T:System.Collections.Generic.IEnumerable`1"/> object instance as a read-only virtual
+ table. It is not sealed and may be used as the base class for any
+ user-defined virtual table class that wraps an
+ <see cref="T:System.Collections.Generic.IEnumerable`1"/> object instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.Generic.SQLiteModuleEnumerable`1.enumerable">
+ <summary>
+ The <see cref="T:System.Collections.Generic.IEnumerable`1"/> instance containing the backing
+ data for the virtual table.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.Generic.SQLiteModuleEnumerable`1.#ctor(System.String,System.Collections.Generic.IEnumerable{`0})">
+ <summary>
+ Constructs an instance of this class.
+ </summary>
+ <param name="name">
+ The name of the module. This parameter cannot be null.
+ </param>
+ <param name="enumerable">
+ The <see cref="T:System.Collections.Generic.IEnumerable`1"/> instance to expose as a virtual
+ table. This parameter cannot be null.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.Generic.SQLiteModuleEnumerable`1.Open(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteVirtualTableCursor@)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Open(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteVirtualTableCursor@)"/> method.
+ </summary>
+ <param name="table">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Open(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteVirtualTableCursor@)"/> method.
+ </param>
+ <param name="cursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Open(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteVirtualTableCursor@)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Open(System.Data.SQLite.SQLiteVirtualTable,System.Data.SQLite.SQLiteVirtualTableCursor@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.Generic.SQLiteModuleEnumerable`1.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)">
+ <summary>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)"/> method.
+ </summary>
+ <param name="cursor">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)"/> method.
+ </param>
+ <param name="context">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)"/> method.
+ </param>
+ <param name="index">
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)"/> method.
+ </param>
+ <returns>
+ See the <see cref="M:System.Data.SQLite.ISQLiteManagedModule.Column(System.Data.SQLite.SQLiteVirtualTableCursor,System.Data.SQLite.SQLiteContext,System.Int32)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.Generic.SQLiteModuleEnumerable`1.CheckDisposed">
+ <summary>
+ Throws an <see cref="T:System.ObjectDisposedException"/> if this object
+ instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.Generic.SQLiteModuleEnumerable`1.Dispose(System.Boolean)">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this method is being called from the
+ <see cref="M:System.IDisposable.Dispose"/> method. Zero if this method is
+ being called from the finalizer.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteChangeSetConflictType">
+ <summary>
+ This enumerated type represents a type of conflict seen when apply
+ changes from a change set or patch set.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetConflictType.Data">
+ <summary>
+ This value is seen when processing a DELETE or UPDATE change if a
+ row with the required PRIMARY KEY fields is present in the
+ database, but one or more other (non primary-key) fields modified
+ by the update do not contain the expected "before" values.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetConflictType.NotFound">
+ <summary>
+ This value is seen when processing a DELETE or UPDATE change if a
+ row with the required PRIMARY KEY fields is not present in the
+ database. There is no conflicting row in this case.
+
+ The results of invoking the
+ <see cref="M:System.Data.SQLite.ISQLiteChangeSetMetadataItem.GetConflictValue(System.Int32)"/>
+ method are undefined.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetConflictType.Conflict">
+ <summary>
+ This value is seen when processing an INSERT change if the
+ operation would result in duplicate primary key values.
+ The conflicting row in this case is the database row with the
+ matching primary key.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetConflictType.Constraint">
+ <summary>
+ If a non-foreign key constraint violation occurs while applying a
+ change (i.e. a UNIQUE, CHECK or NOT NULL constraint), the conflict
+ callback will see this value.
+
+ There is no conflicting row in this case. The results of invoking
+ the <see cref="M:System.Data.SQLite.ISQLiteChangeSetMetadataItem.GetConflictValue(System.Int32)"/>
+ method are undefined.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetConflictType.ForeignKey">
+ <summary>
+ If foreign key handling is enabled, and applying a changes leaves
+ the database in a state containing foreign key violations, this
+ value will be seen exactly once before the changes are committed.
+ If the conflict handler
+ <see cref="F:System.Data.SQLite.SQLiteChangeSetConflictResult.Omit"/>, the changes,
+ including those that caused the foreign key constraint violation,
+ are committed. Or, if it returns
+ <see cref="F:System.Data.SQLite.SQLiteChangeSetConflictResult.Abort"/>, the changes are
+ rolled back.
+
+ No current or conflicting row information is provided. The only
+ method it is possible to call on the supplied
+ <see cref="T:System.Data.SQLite.ISQLiteChangeSetMetadataItem"/> object is
+ <see cref="P:System.Data.SQLite.ISQLiteChangeSetMetadataItem.NumberOfForeignKeyConflicts"/>.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteChangeSetConflictResult">
+ <summary>
+ This enumerated type represents the result of a user-defined conflict
+ resolution callback.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetConflictResult.Omit">
+ <summary>
+ If a conflict callback returns this value no special action is
+ taken. The change that caused the conflict is not applied. The
+ application of changes continues with the next change.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetConflictResult.Replace">
+ <summary>
+ This value may only be returned from a conflict callback if the
+ type of conflict was <see cref="F:System.Data.SQLite.SQLiteChangeSetConflictType.Data"/>
+ or <see cref="F:System.Data.SQLite.SQLiteChangeSetConflictType.Conflict"/>. If this is
+ not the case, any changes applied so far are rolled back and the
+ call to
+ <see cref="M:System.Data.SQLite.ISQLiteChangeSet.Apply(System.Data.SQLite.SessionConflictCallback,System.Data.SQLite.SessionTableFilterCallback,System.Object)"/>
+ will raise a <see cref="T:System.Data.SQLite.SQLiteException"/> with an error code of
+ <see cref="F:System.Data.SQLite.SQLiteErrorCode.Misuse"/>.
+
+ If this value is returned for a
+ <see cref="F:System.Data.SQLite.SQLiteChangeSetConflictType.Data"/> conflict, then the
+ conflicting row is either updated or deleted, depending on the type
+ of change.
+
+ If this value is returned for a
+ <see cref="F:System.Data.SQLite.SQLiteChangeSetConflictType.Conflict"/> conflict, then
+ the conflicting row is removed from the database and a second
+ attempt to apply the change is made. If this second attempt fails,
+ the original row is restored to the database before continuing.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetConflictResult.Abort">
+ <summary>
+ If this value is returned, any changes applied so far are rolled
+ back and the call to
+ <see cref="M:System.Data.SQLite.ISQLiteChangeSet.Apply(System.Data.SQLite.SessionConflictCallback,System.Data.SQLite.SessionTableFilterCallback,System.Object)"/>
+ will raise a <see cref="T:System.Data.SQLite.SQLiteException"/> with an error code of
+ <see cref="F:System.Data.SQLite.SQLiteErrorCode.Abort"/>.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteChangeSetStartFlags">
+ <summary>
+ This enumerated type represents possible flags that may be passed
+ to the appropriate overloads of various change set creation methods.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetStartFlags.None">
+ <summary>
+ No special handling.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetStartFlags.Invert">
+ <summary>
+ Invert the change set while iterating through it.
+ This is equivalent to inverting a change set using
+ <see cref="M:System.Data.SQLite.ISQLiteChangeSet.Invert"/> before
+ applying it. It is an error to specify this flag
+ with a patch set.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SessionTableFilterCallback">
+ <summary>
+ This callback is invoked when a determination must be made about
+ whether changes to a specific table should be tracked -OR- applied.
+ It will not be called for tables that are already attached to a
+ <see cref="T:System.Data.SQLite.ISQLiteSession"/>.
+ </summary>
+ <param name="clientData">
+ The optional application-defined context data that was originally
+ passed to the <see cref="M:System.Data.SQLite.ISQLiteSession.SetTableFilter(System.Data.SQLite.SessionTableFilterCallback,System.Object)"/> or
+ <see cref="M:System.Data.SQLite.ISQLiteChangeSet.Apply(System.Data.SQLite.SessionConflictCallback,System.Data.SQLite.SessionTableFilterCallback,System.Object)"/>
+ methods. This value may be null.
+ </param>
+ <param name="name">
+ The name of the table.
+ </param>
+ <returns>
+ Non-zero if changes to the table should be considered; otherwise,
+ zero. Throwing an exception from this callback will result in
+ undefined behavior.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.SessionConflictCallback">
+ <summary>
+ This callback is invoked when there is a conflict while apply changes
+ to a database.
+ </summary>
+ <param name="clientData">
+ The optional application-defined context data that was originally
+ passed to the
+ <see cref="M:System.Data.SQLite.ISQLiteChangeSet.Apply(System.Data.SQLite.SessionConflictCallback,System.Data.SQLite.SessionTableFilterCallback,System.Object)"/>
+ method. This value may be null.
+ </param>
+ <param name="type">
+ The type of this conflict.
+ </param>
+ <param name="item">
+ The <see cref="T:System.Data.SQLite.ISQLiteChangeSetMetadataItem"/> object associated with
+ this conflict. This value may not be null; however, only properties
+ that are applicable to the conflict type will be available. Further
+ information on this is available within the descriptions of the
+ available <see cref="T:System.Data.SQLite.SQLiteChangeSetConflictType"/> values.
+ </param>
+ <returns>
+ A <see cref="T:System.Data.SQLite.SQLiteChangeSetConflictResult"/> value that indicates the
+ action to be taken in order to resolve the conflict. Throwing an
+ exception from this callback will result in undefined behavior.
+ </returns>
+ </member>
+ <member name="T:System.Data.SQLite.ISQLiteChangeSet">
+ <summary>
+ This interface contains methods used to manipulate a set of changes for
+ a database.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteChangeSet.Invert">
+ <summary>
+ This method "inverts" the set of changes within this instance.
+ Applying an inverted set of changes to a database reverses the
+ effects of applying the uninverted changes. Specifically:
+ <![CDATA[<ul>]]><![CDATA[<li>]]>
+ Each DELETE change is changed to an INSERT, and
+ <![CDATA[</li>]]><![CDATA[<li>]]>
+ Each INSERT change is changed to a DELETE, and
+ <![CDATA[</li>]]><![CDATA[<li>]]>
+ For each UPDATE change, the old.* and new.* values are exchanged.
+ <![CDATA[</li>]]><![CDATA[</ul>]]>
+ This method does not change the order in which changes appear
+ within the set of changes. It merely reverses the sense of each
+ individual change.
+ </summary>
+ <returns>
+ The new <see cref="T:System.Data.SQLite.ISQLiteChangeSet"/> instance that represents
+ the resulting set of changes -OR- null if it is not available.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteChangeSet.CombineWith(System.Data.SQLite.ISQLiteChangeSet)">
+ <summary>
+ This method combines the specified set of changes with the ones
+ contained in this instance.
+ </summary>
+ <param name="changeSet">
+ The changes to be combined with those in this instance.
+ </param>
+ <returns>
+ The new <see cref="T:System.Data.SQLite.ISQLiteChangeSet"/> instance that represents
+ the resulting set of changes -OR- null if it is not available.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteChangeSet.Apply(System.Data.SQLite.SessionConflictCallback,System.Object)">
+ <summary>
+ Attempts to apply the set of changes in this instance to the
+ associated database.
+ </summary>
+ <param name="conflictCallback">
+ The <see cref="T:System.Data.SQLite.SessionConflictCallback"/> delegate that will need
+ to handle any conflicting changes that may arise.
+ </param>
+ <param name="clientData">
+ The optional application-defined context data. This value may be
+ null.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteChangeSet.Apply(System.Data.SQLite.SessionConflictCallback,System.Data.SQLite.SessionTableFilterCallback,System.Object)">
+ <summary>
+ Attempts to apply the set of changes in this instance to the
+ associated database.
+ </summary>
+ <param name="conflictCallback">
+ The <see cref="T:System.Data.SQLite.SessionConflictCallback"/> delegate that will need
+ to handle any conflicting changes that may arise.
+ </param>
+ <param name="tableFilterCallback">
+ The optional <see cref="T:System.Data.SQLite.SessionTableFilterCallback"/> delegate
+ that can be used to filter the list of tables impacted by the set
+ of changes.
+ </param>
+ <param name="clientData">
+ The optional application-defined context data. This value may be
+ null.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.ISQLiteChangeGroup">
+ <summary>
+ This interface contains methods used to manipulate multiple sets of
+ changes for a database.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteChangeGroup.AddChangeSet(System.Byte[])">
+ <summary>
+ Attempts to add a change set (or patch set) to this change group
+ instance. The underlying data must be contained entirely within
+ the <paramref name="rawData" /> byte array.
+ </summary>
+ <param name="rawData">
+ The raw byte data for the specified change set (or patch set).
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteChangeGroup.AddChangeSet(System.IO.Stream)">
+ <summary>
+ Attempts to add a change set (or patch set) to this change group
+ instance. The underlying data will be read from the specified
+ <see cref="T:System.IO.Stream"/>.
+ </summary>
+ <param name="stream">
+ The <see cref="T:System.IO.Stream"/> instance containing the raw change set
+ (or patch set) data to read.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteChangeGroup.CreateChangeSet(System.Byte[]@)">
+ <summary>
+ Attempts to create and return, via <paramref name="rawData" />, the
+ combined set of changes represented by this change group instance.
+ </summary>
+ <param name="rawData">
+ Upon success, this will contain the raw byte data for all the
+ changes in this change group instance.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteChangeGroup.CreateChangeSet(System.IO.Stream)">
+ <summary>
+ Attempts to create and write, via <paramref name="stream"/>, the
+ combined set of changes represented by this change group instance.
+ </summary>
+ <param name="stream">
+ Upon success, the raw byte data for all the changes in this change
+ group instance will be written to this <see cref="T:System.IO.Stream"/>.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.ISQLiteChangeSetMetadataItem">
+ <summary>
+ This interface contains properties and methods used to fetch metadata
+ about one change within a set of changes for a database.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteChangeSetMetadataItem.GetOldValue(System.Int32)">
+ <summary>
+ Queries and returns the original value of a given column for this
+ change. This method may only be called when the
+ <see cref="P:System.Data.SQLite.ISQLiteChangeSetMetadataItem.OperationCode"/> has a value of
+ <see cref="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Update"/> or
+ <see cref="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Delete"/>.
+ </summary>
+ <param name="columnIndex">
+ The index for the column. This value must be between zero and one
+ less than the total number of columns for this table.
+ </param>
+ <returns>
+ The original value of a given column for this change.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteChangeSetMetadataItem.GetNewValue(System.Int32)">
+ <summary>
+ Queries and returns the updated value of a given column for this
+ change. This method may only be called when the
+ <see cref="P:System.Data.SQLite.ISQLiteChangeSetMetadataItem.OperationCode"/> has a value of
+ <see cref="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Insert"/> or
+ <see cref="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Update"/>.
+ </summary>
+ <param name="columnIndex">
+ The index for the column. This value must be between zero and one
+ less than the total number of columns for this table.
+ </param>
+ <returns>
+ The updated value of a given column for this change.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteChangeSetMetadataItem.GetConflictValue(System.Int32)">
+ <summary>
+ Queries and returns the conflicting value of a given column for
+ this change. This method may only be called from within a
+ <see cref="T:System.Data.SQLite.SessionConflictCallback"/> delegate when the conflict
+ type is <see cref="F:System.Data.SQLite.SQLiteChangeSetConflictType.Data"/> or
+ <see cref="F:System.Data.SQLite.SQLiteChangeSetConflictType.Conflict"/>.
+ </summary>
+ <param name="columnIndex">
+ The index for the column. This value must be between zero and one
+ less than the total number of columns for this table.
+ </param>
+ <returns>
+ The conflicting value of a given column for this change.
+ </returns>
+ </member>
+ <member name="P:System.Data.SQLite.ISQLiteChangeSetMetadataItem.TableName">
+ <summary>
+ The name of the table the change was made to.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.ISQLiteChangeSetMetadataItem.NumberOfColumns">
+ <summary>
+ The number of columns impacted by this change. This value can be
+ used to determine the highest valid column index that may be used
+ with the <see cref="M:System.Data.SQLite.ISQLiteChangeSetMetadataItem.GetOldValue(System.Int32)"/>, <see cref="M:System.Data.SQLite.ISQLiteChangeSetMetadataItem.GetNewValue(System.Int32)"/>,
+ and <see cref="M:System.Data.SQLite.ISQLiteChangeSetMetadataItem.GetConflictValue(System.Int32)"/> methods of this interface. It
+ will be this value minus one.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.ISQLiteChangeSetMetadataItem.OperationCode">
+ <summary>
+ This will contain the value
+ <see cref="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Insert"/>,
+ <see cref="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Update"/>, or
+ <see cref="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Delete"/>, corresponding to
+ the overall type of change this item represents.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.ISQLiteChangeSetMetadataItem.Indirect">
+ <summary>
+ Non-zero if this change is considered to be indirect (i.e. as
+ though they were made via a trigger or foreign key action).
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.ISQLiteChangeSetMetadataItem.PrimaryKeyColumns">
+ <summary>
+ This array contains a <see cref="T:System.Boolean"/> for each column in
+ the table associated with this change. The element will be zero
+ if the column is not part of the primary key; otherwise, it will
+ be non-zero.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.ISQLiteChangeSetMetadataItem.NumberOfForeignKeyConflicts">
+ <summary>
+ This method may only be called from within a
+ <see cref="T:System.Data.SQLite.SessionConflictCallback"/> delegate when the conflict
+ type is <see cref="F:System.Data.SQLite.SQLiteChangeSetConflictType.ForeignKey"/>. It
+ returns the total number of known foreign key violations in the
+ destination database.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.ISQLiteSession">
+ <summary>
+ This interface contains methods to query and manipulate the state of a
+ change tracking session for a database.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteSession.IsEnabled">
+ <summary>
+ Determines if this session is currently tracking changes to its
+ associated database.
+ </summary>
+ <returns>
+ Non-zero if changes to the associated database are being trakced;
+ otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteSession.SetToEnabled">
+ <summary>
+ Enables tracking of changes to the associated database.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteSession.SetToDisabled">
+ <summary>
+ Disables tracking of changes to the associated database.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteSession.IsIndirect">
+ <summary>
+ Determines if this session is currently set to mark changes as
+ indirect (i.e. as though they were made via a trigger or foreign
+ key action).
+ </summary>
+ <returns>
+ Non-zero if changes to the associated database are being marked as
+ indirect; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteSession.SetToIndirect">
+ <summary>
+ Sets the indirect flag for this session. Subsequent changes will
+ be marked as indirect until this flag is changed again.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteSession.SetToDirect">
+ <summary>
+ Clears the indirect flag for this session. Subsequent changes will
+ be marked as direct until this flag is changed again.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteSession.IsEmpty">
+ <summary>
+ Determines if there are any tracked changes currently within the
+ data for this session.
+ </summary>
+ <returns>
+ Non-zero if there are no changes within the data for this session;
+ otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteSession.AttachTable(System.String)">
+ <summary>
+ Upon success, causes changes to the specified table(s) to start
+ being tracked. Any tables impacted by calls to this method will
+ not cause the <see cref="T:System.Data.SQLite.SessionTableFilterCallback"/> callback
+ to be invoked.
+ </summary>
+ <param name="name">
+ The name of the table to be tracked -OR- null to track all
+ applicable tables within this database.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteSession.SetTableFilter(System.Data.SQLite.SessionTableFilterCallback,System.Object)">
+ <summary>
+ This method is used to set the table filter for this instance.
+ </summary>
+ <param name="callback">
+ The table filter callback -OR- null to clear any existing table
+ filter callback.
+ </param>
+ <param name="clientData">
+ The optional application-defined context data. This value may be
+ null.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteSession.CreateChangeSet(System.Byte[]@)">
+ <summary>
+ Attempts to create and return, via <paramref name="rawData" />, the
+ combined set of changes represented by this session instance.
+ </summary>
+ <param name="rawData">
+ Upon success, this will contain the raw byte data for all the
+ changes in this session instance.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteSession.CreateChangeSet(System.IO.Stream)">
+ <summary>
+ Attempts to create and write, via <paramref name="stream"/>, the
+ combined set of changes represented by this session instance.
+ </summary>
+ <param name="stream">
+ Upon success, the raw byte data for all the changes in this session
+ instance will be written to this <see cref="T:System.IO.Stream"/>.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteSession.CreatePatchSet(System.Byte[]@)">
+ <summary>
+ Attempts to create and return, via <paramref name="rawData" />, the
+ combined set of changes represented by this session instance as a
+ patch set.
+ </summary>
+ <param name="rawData">
+ Upon success, this will contain the raw byte data for all the
+ changes in this session instance.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteSession.CreatePatchSet(System.IO.Stream)">
+ <summary>
+ Attempts to create and write, via <paramref name="stream"/>, the
+ combined set of changes represented by this session instance as a
+ patch set.
+ </summary>
+ <param name="stream">
+ Upon success, the raw byte data for all the changes in this session
+ instance will be written to this <see cref="T:System.IO.Stream"/>.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.ISQLiteSession.LoadDifferencesFromTable(System.String,System.String)">
+ <summary>
+ This method loads the differences between two tables [with the same
+ name, set of columns, and primary key definition] into this session
+ instance.
+ </summary>
+ <param name="fromDatabaseName">
+ The name of the database containing the table with the original
+ data (i.e. it will need updating in order to be identical to the
+ one within the database associated with this session instance).
+ </param>
+ <param name="tableName">
+ The name of the table.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteSessionHelpers">
+ <summary>
+ This class contains some static helper methods for use within this
+ subsystem.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSessionHelpers.CheckRawData(System.Byte[])">
+ <summary>
+ This method checks the byte array specified by the caller to make
+ sure it will be usable.
+ </summary>
+ <param name="rawData">
+ A byte array provided by the caller into one of the public methods
+ for the classes that belong to this subsystem. This value cannot
+ be null or represent an empty array; otherwise, an appropriate
+ exception will be thrown.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteConnectionLock">
+ <summary>
+ This class is used to hold the native connection handle associated with
+ a <see cref="T:System.Data.SQLite.SQLiteConnection"/> open until this subsystem is totally
+ done with it. This class is for internal use by this subsystem only.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionLock.LockNopSql">
+ <summary>
+ The SQL statement used when creating the native statement handle.
+ There are no special requirements for this other than counting as
+ an "open statement handle".
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionLock.StatementMessageFormat">
+ <summary>
+ The format of the error message used when reporting, during object
+ disposal, that the statement handle is still open (i.e. because
+ this situation is considered a fairly serious programming error).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionLock.handle">
+ <summary>
+ The wrapped native connection handle associated with this lock.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionLock.flags">
+ <summary>
+ The flags associated with the connection represented by the
+ <see cref="F:System.Data.SQLite.SQLiteConnectionLock.handle"/> value.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionLock.statement">
+ <summary>
+ The native statement handle for this lock. The garbage collector
+ cannot cause this statement to be finalized; therefore, it will
+ serve to hold the associated native connection open until it is
+ freed manually using the <see cref="M:System.Data.SQLite.SQLiteConnectionLock.Unlock"/> method.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionLock.#ctor(System.Data.SQLite.SQLiteConnectionHandle,System.Data.SQLite.SQLiteConnectionFlags,System.Boolean)">
+ <summary>
+ Constructs a new instance of this class using the specified wrapped
+ native connection handle and associated flags.
+ </summary>
+ <param name="handle">
+ The wrapped native connection handle to be associated with this
+ lock.
+ </param>
+ <param name="flags">
+ The flags associated with the connection represented by the
+ <paramref name="handle"/> value.
+ </param>
+ <param name="autoLock">
+ Non-zero if the <see cref="M:System.Data.SQLite.SQLiteConnectionLock.Lock"/> method should be called prior
+ to returning from this constructor.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionLock.GetHandle">
+ <summary>
+ Queries and returns the wrapped native connection handle for this
+ instance.
+ </summary>
+ <returns>
+ The wrapped native connection handle for this instance -OR- null
+ if it is unavailable.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionLock.GetFlags">
+ <summary>
+ Queries and returns the flags associated with the connection for
+ this instance.
+ </summary>
+ <returns>
+ The <see cref="T:System.Data.SQLite.SQLiteConnectionFlags"/> value. There is no return
+ value reserved to indicate an error.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionLock.GetIntPtr">
+ <summary>
+ Queries and returns the native connection handle for this instance.
+ </summary>
+ <returns>
+ The native connection handle for this instance. If this value is
+ unavailable or invalid an exception will be thrown.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionLock.Lock">
+ <summary>
+ This method attempts to "lock" the associated native connection
+ handle by preparing a SQL statement that will not be finalized
+ until the <see cref="M:System.Data.SQLite.SQLiteConnectionLock.Unlock"/> method is called (i.e. and which
+ cannot be done by the garbage collector). If the statement is
+ already prepared, nothing is done. If the statement cannot be
+ prepared for any reason, an exception will be thrown.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionLock.Unlock">
+ <summary>
+ This method attempts to "unlock" the associated native connection
+ handle by finalizing the previously prepared statement. If the
+ statement is already finalized, nothing is done. If the statement
+ cannot be finalized for any reason, an exception will be thrown.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionLock.Dispose">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteConnectionLock.disposed">
+ <summary>
+ Non-zero if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionLock.CheckDisposed">
+ <summary>
+ Throws an exception if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionLock.Dispose(System.Boolean)">
+ <summary>
+ Disposes or finalizes this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this object is being disposed; otherwise, this object
+ is being finalized.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteConnectionLock.Finalize">
+ <summary>
+ Finalizes this object instance.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteChangeSetIterator">
+ <summary>
+ This class manages the native change set iterator. It is used as the
+ base class for the <see cref="T:System.Data.SQLite.SQLiteMemoryChangeSetIterator"/> and
+ <see cref="T:System.Data.SQLite.SQLiteStreamChangeSetIterator"/> classes. It knows how to
+ advance the native iterator handle as well as finalize it.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetIterator.iterator">
+ <summary>
+ The native change set (a.k.a. iterator) handle.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetIterator.ownHandle">
+ <summary>
+ Non-zero if this instance owns the native iterator handle in the
+ <see cref="F:System.Data.SQLite.SQLiteChangeSetIterator.iterator"/> field. In that case, this instance will
+ finalize the native iterator handle upon being disposed or
+ finalized.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetIterator.#ctor(System.IntPtr,System.Boolean)">
+ <summary>
+ Constructs a new instance of this class using the specified native
+ iterator handle.
+ </summary>
+ <param name="iterator">
+ The native iterator handle to use.
+ </param>
+ <param name="ownHandle">
+ Non-zero if this instance is to take ownership of the native
+ iterator handle specified by <paramref name="iterator" />.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetIterator.CheckHandle">
+ <summary>
+ Throws an exception if the native iterator handle is invalid.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetIterator.GetIntPtr">
+ <summary>
+ Used to query the native iterator handle. This method is only used
+ by the <see cref="T:System.Data.SQLite.SQLiteChangeSetMetadataItem"/> class.
+ </summary>
+ <returns>
+ The native iterator handle -OR- <see cref="F:System.IntPtr.Zero"/> if it
+ is not available.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetIterator.Next">
+ <summary>
+ Attempts to advance the native iterator handle to its next item.
+ </summary>
+ <returns>
+ Non-zero if the native iterator handle was advanced and contains
+ more data; otherwise, zero. If the underlying native API returns
+ an unexpected value then an exception will be thrown.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetIterator.Attach(System.IntPtr)">
+ <summary>
+ Attempts to create an instance of this class that is associated
+ with the specified native iterator handle. Ownership of the
+ native iterator handle is NOT transferred to the new instance of
+ this class.
+ </summary>
+ <param name="iterator">
+ The native iterator handle to use.
+ </param>
+ <returns>
+ The new instance of this class. No return value is reserved to
+ indicate an error; however, if the native iterator handle is not
+ valid, any subsequent attempt to make use of it via the returned
+ instance of this class may throw exceptions.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetIterator.Dispose">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetIterator.disposed">
+ <summary>
+ Non-zero if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetIterator.CheckDisposed">
+ <summary>
+ Throws an exception if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetIterator.Dispose(System.Boolean)">
+ <summary>
+ Disposes or finalizes this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this object is being disposed; otherwise, this object
+ is being finalized.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetIterator.Finalize">
+ <summary>
+ Finalizes this object instance.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteMemoryChangeSetIterator">
+ <summary>
+ This class manages the native change set iterator for a set of changes
+ contained entirely in memory.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteMemoryChangeSetIterator.pData">
+ <summary>
+ The native memory buffer allocated to contain the set of changes
+ associated with this instance. This will always be freed when this
+ instance is disposed or finalized.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSetIterator.#ctor(System.IntPtr,System.IntPtr,System.Boolean)">
+ <summary>
+ Constructs an instance of this class using the specified native
+ memory buffer and native iterator handle.
+ </summary>
+ <param name="pData">
+ The native memory buffer to use.
+ </param>
+ <param name="iterator">
+ The native iterator handle to use.
+ </param>
+ <param name="ownHandle">
+ Non-zero if this instance is to take ownership of the native
+ iterator handle specified by <paramref name="iterator" />.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSetIterator.Create(System.Byte[])">
+ <summary>
+ Attempts to create an instance of this class using the specified
+ raw byte data.
+ </summary>
+ <param name="rawData">
+ The raw byte data containing the set of changes for this native
+ iterator.
+ </param>
+ <returns>
+ The new instance of this class -OR- null if it cannot be created.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSetIterator.Create(System.Byte[],System.Data.SQLite.SQLiteChangeSetStartFlags)">
+ <summary>
+ Attempts to create an instance of this class using the specified
+ raw byte data.
+ </summary>
+ <param name="rawData">
+ The raw byte data containing the set of changes for this native
+ iterator.
+ </param>
+ <param name="flags">
+ The flags used to create the change set iterator.
+ </param>
+ <returns>
+ The new instance of this class -OR- null if it cannot be created.
+ </returns>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteMemoryChangeSetIterator.disposed">
+ <summary>
+ Non-zero if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSetIterator.CheckDisposed">
+ <summary>
+ Throws an exception if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSetIterator.Dispose(System.Boolean)">
+ <summary>
+ Disposes or finalizes this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this object is being disposed; otherwise, this object
+ is being finalized.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteStreamChangeSetIterator">
+ <summary>
+ This class manages the native change set iterator for a set of changes
+ backed by a <see cref="T:System.IO.Stream"/> instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStreamChangeSetIterator.streamAdapter">
+ <summary>
+ The <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/> instance that is managing
+ the underlying <see cref="T:System.IO.Stream"/> used as the backing store for
+ the set of changes associated with this native change set iterator.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSetIterator.#ctor(System.Data.SQLite.SQLiteStreamAdapter,System.IntPtr,System.Boolean)">
+ <summary>
+ Constructs an instance of this class using the specified native
+ iterator handle and <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/>.
+ </summary>
+ <param name="streamAdapter">
+ The <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/> instance to use.
+ </param>
+ <param name="iterator">
+ The native iterator handle to use.
+ </param>
+ <param name="ownHandle">
+ Non-zero if this instance is to take ownership of the native
+ iterator handle specified by <paramref name="iterator"/>.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSetIterator.Create(System.IO.Stream,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Attempts to create an instance of this class using the specified
+ <see cref="T:System.IO.Stream"/>.
+ </summary>
+ <param name="stream">
+ The <see cref="T:System.IO.Stream"/> where the raw byte data for the set of
+ changes may be read.
+ </param>
+ <param name="connectionFlags">
+ The flags associated with the parent connection.
+ </param>
+ <returns>
+ The new instance of this class -OR- null if it cannot be created.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSetIterator.Create(System.IO.Stream,System.Data.SQLite.SQLiteConnectionFlags,System.Data.SQLite.SQLiteChangeSetStartFlags)">
+ <summary>
+ Attempts to create an instance of this class using the specified
+ <see cref="T:System.IO.Stream"/>.
+ </summary>
+ <param name="stream">
+ The <see cref="T:System.IO.Stream"/> where the raw byte data for the set of
+ changes may be read.
+ </param>
+ <param name="connectionFlags">
+ The flags associated with the parent connection.
+ </param>
+ <param name="startFlags">
+ The flags used to create the change set iterator.
+ </param>
+ <returns>
+ The new instance of this class -OR- null if it cannot be created.
+ </returns>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStreamChangeSetIterator.disposed">
+ <summary>
+ Non-zero if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSetIterator.CheckDisposed">
+ <summary>
+ Throws an exception if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSetIterator.Dispose(System.Boolean)">
+ <summary>
+ Disposes or finalizes this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this object is being disposed; otherwise, this object
+ is being finalized.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteStreamAdapter">
+ <summary>
+ This class is used to act as a bridge between a <see cref="T:System.IO.Stream"/>
+ instance and the delegates used with the native streaming API.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStreamAdapter.stream">
+ <summary>
+ The managed stream instance used to in order to service the native
+ delegates for both input and output.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStreamAdapter.flags">
+ <summary>
+ The flags associated with the connection.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStreamAdapter.xInput">
+ <summary>
+ The delegate used to provide input to the native streaming API.
+ It will be null -OR- point to the <see cref="M:System.Data.SQLite.SQLiteStreamAdapter.Input(System.IntPtr,System.IntPtr,System.Int32@)"/> method.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStreamAdapter.xOutput">
+ <summary>
+ The delegate used to provide output to the native streaming API.
+ It will be null -OR- point to the <see cref="M:System.Data.SQLite.SQLiteStreamAdapter.Output(System.IntPtr,System.IntPtr,System.Int32)"/> method.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamAdapter.#ctor(System.IO.Stream,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Constructs a new instance of this class using the specified managed
+ stream and connection flags.
+ </summary>
+ <param name="stream">
+ The managed stream instance to be used in order to service the
+ native delegates for both input and output.
+ </param>
+ <param name="flags">
+ The flags associated with the parent connection.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamAdapter.GetFlags">
+ <summary>
+ Queries and returns the flags associated with the connection for
+ this instance.
+ </summary>
+ <returns>
+ The <see cref="T:System.Data.SQLite.SQLiteConnectionFlags"/> value. There is no return
+ value reserved to indicate an error.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamAdapter.GetInputDelegate">
+ <summary>
+ Returns a delegate that wraps the <see cref="M:System.Data.SQLite.SQLiteStreamAdapter.Input(System.IntPtr,System.IntPtr,System.Int32@)"/> method,
+ creating it first if necessary.
+ </summary>
+ <returns>
+ A delegate that refers to the <see cref="M:System.Data.SQLite.SQLiteStreamAdapter.Input(System.IntPtr,System.IntPtr,System.Int32@)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamAdapter.GetOutputDelegate">
+ <summary>
+ Returns a delegate that wraps the <see cref="M:System.Data.SQLite.SQLiteStreamAdapter.Output(System.IntPtr,System.IntPtr,System.Int32)"/> method,
+ creating it first if necessary.
+ </summary>
+ <returns>
+ A delegate that refers to the <see cref="M:System.Data.SQLite.SQLiteStreamAdapter.Output(System.IntPtr,System.IntPtr,System.Int32)"/> method.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamAdapter.Input(System.IntPtr,System.IntPtr,System.Int32@)">
+ <summary>
+ This method attempts to read <paramref name="nData"/> bytes from
+ the managed stream, writing them to the <paramref name="pData"/>
+ buffer.
+ </summary>
+ <param name="context">
+ Optional extra context information. Currently, this will always
+ have a value of <see cref="F:System.IntPtr.Zero"/>.
+ </param>
+ <param name="pData">
+ A preallocated native buffer to receive the requested input bytes.
+ It must be at least <paramref name="nData"/> bytes in size.
+ </param>
+ <param name="nData">
+ Upon entry, the number of bytes to read. Upon exit, the number of
+ bytes actually read. This value may be zero upon exit.
+ </param>
+ <returns>
+ The value <see cref="F:System.Data.SQLite.SQLiteErrorCode.Ok"/> upon success -OR- an
+ appropriate error code upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamAdapter.Output(System.IntPtr,System.IntPtr,System.Int32)">
+ <summary>
+ This method attempts to write <paramref name="nData"/> bytes to
+ the managed stream, reading them from the <paramref name="pData"/>
+ buffer.
+ </summary>
+ <param name="context">
+ Optional extra context information. Currently, this will always
+ have a value of <see cref="F:System.IntPtr.Zero"/>.
+ </param>
+ <param name="pData">
+ A preallocated native buffer containing the requested output
+ bytes. It must be at least <paramref name="nData"/> bytes in
+ size.
+ </param>
+ <param name="nData">
+ The number of bytes to write.
+ </param>
+ <returns>
+ The value <see cref="F:System.Data.SQLite.SQLiteErrorCode.Ok"/> upon success -OR- an
+ appropriate error code upon failure.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamAdapter.Dispose">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStreamAdapter.disposed">
+ <summary>
+ Non-zero if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamAdapter.CheckDisposed">
+ <summary>
+ Throws an exception if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamAdapter.Dispose(System.Boolean)">
+ <summary>
+ Disposes or finalizes this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this object is being disposed; otherwise, this object
+ is being finalized.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamAdapter.Finalize">
+ <summary>
+ Finalizes this object instance.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteSessionStreamManager">
+ <summary>
+ This class manages a collection of <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/>
+ instances. When used, it takes responsibility for creating, returning,
+ and disposing of its <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/> instances.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteSessionStreamManager.streamAdapters">
+ <summary>
+ The managed collection of <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/>
+ instances, keyed by their associated <see cref="T:System.IO.Stream"/>
+ instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteSessionStreamManager.flags">
+ <summary>
+ The flags associated with the connection.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSessionStreamManager.#ctor(System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Constructs a new instance of this class using the specified
+ connection flags.
+ </summary>
+ <param name="flags">
+ The flags associated with the parent connection.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSessionStreamManager.InitializeStreamAdapters">
+ <summary>
+ Makes sure the collection of <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/>
+ is created.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSessionStreamManager.DisposeStreamAdapters">
+ <summary>
+ Makes sure the collection of <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/>
+ is disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSessionStreamManager.GetAdapter(System.IO.Stream)">
+ <summary>
+ Attempts to return a <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/> instance
+ suitable for the specified <see cref="T:System.IO.Stream"/>.
+ </summary>
+ <param name="stream">
+ The <see cref="T:System.IO.Stream"/> instance. If this value is null, a null
+ value will be returned.
+ </param>
+ <returns>
+ A <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/> instance. Typically, these
+ are always freshly created; however, this method is designed to
+ return the existing <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/> instance
+ associated with the specified stream, should one exist.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSessionStreamManager.Dispose">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteSessionStreamManager.disposed">
+ <summary>
+ Non-zero if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSessionStreamManager.CheckDisposed">
+ <summary>
+ Throws an exception if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSessionStreamManager.Dispose(System.Boolean)">
+ <summary>
+ Disposes or finalizes this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this object is being disposed; otherwise, this object
+ is being finalized.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSessionStreamManager.Finalize">
+ <summary>
+ Finalizes this object instance.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteChangeGroup">
+ <summary>
+ This class represents a group of change sets (or patch sets).
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeGroup.streamManager">
+ <summary>
+ The <see cref="T:System.Data.SQLite.SQLiteSessionStreamManager"/> instance associated
+ with this change group.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeGroup.flags">
+ <summary>
+ The flags associated with the connection.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeGroup.changeGroup">
+ <summary>
+ The native handle for this change group. This will be deleted when
+ this instance is disposed or finalized.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeGroup.#ctor(System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Constructs a new instance of this class using the specified
+ connection flags.
+ </summary>
+ <param name="flags">
+ The flags associated with the parent connection.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeGroup.CheckHandle">
+ <summary>
+ Throws an exception if the native change group handle is invalid.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeGroup.InitializeHandle">
+ <summary>
+ Makes sure the native change group handle is valid, creating it if
+ necessary.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeGroup.InitializeStreamManager">
+ <summary>
+ Makes sure the <see cref="T:System.Data.SQLite.SQLiteSessionStreamManager"/> instance
+ is available, creating it if necessary.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeGroup.GetStreamAdapter(System.IO.Stream)">
+ <summary>
+ Attempts to return a <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/> instance
+ suitable for the specified <see cref="T:System.IO.Stream"/>.
+ </summary>
+ <param name="stream">
+ The <see cref="T:System.IO.Stream"/> instance. If this value is null, a null
+ value will be returned.
+ </param>
+ <returns>
+ A <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/> instance. Typically, these
+ are always freshly created; however, this method is designed to
+ return the existing <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/> instance
+ associated with the specified stream, should one exist.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeGroup.AddChangeSet(System.Byte[])">
+ <summary>
+ Attempts to add a change set (or patch set) to this change group
+ instance. The underlying data must be contained entirely within
+ the <paramref name="rawData" /> byte array.
+ </summary>
+ <param name="rawData">
+ The raw byte data for the specified change set (or patch set).
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeGroup.AddChangeSet(System.IO.Stream)">
+ <summary>
+ Attempts to add a change set (or patch set) to this change group
+ instance. The underlying data will be read from the specified
+ <see cref="T:System.IO.Stream"/>.
+ </summary>
+ <param name="stream">
+ The <see cref="T:System.IO.Stream"/> instance containing the raw change set
+ (or patch set) data to read.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeGroup.CreateChangeSet(System.Byte[]@)">
+ <summary>
+ Attempts to create and return, via <paramref name="rawData" />, the
+ combined set of changes represented by this change group instance.
+ </summary>
+ <param name="rawData">
+ Upon success, this will contain the raw byte data for all the
+ changes in this change group instance.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeGroup.CreateChangeSet(System.IO.Stream)">
+ <summary>
+ Attempts to create and write, via <paramref name="stream"/>, the
+ combined set of changes represented by this change group instance.
+ </summary>
+ <param name="stream">
+ Upon success, the raw byte data for all the changes in this change
+ group instance will be written to this <see cref="T:System.IO.Stream"/>.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeGroup.Dispose">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeGroup.disposed">
+ <summary>
+ Non-zero if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeGroup.CheckDisposed">
+ <summary>
+ Throws an exception if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeGroup.Dispose(System.Boolean)">
+ <summary>
+ Disposes or finalizes this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this object is being disposed; otherwise, this object
+ is being finalized.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeGroup.Finalize">
+ <summary>
+ Finalizes this object instance.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteSession">
+ <summary>
+ This class represents the change tracking session associated with a
+ database.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteSession.streamManager">
+ <summary>
+ The <see cref="T:System.Data.SQLite.SQLiteSessionStreamManager"/> instance associated
+ with this session.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteSession.databaseName">
+ <summary>
+ The name of the database (e.g. "main") for this session.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteSession.session">
+ <summary>
+ The native handle for this session. This will be deleted when
+ this instance is disposed or finalized.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteSession.xFilter">
+ <summary>
+ The delegate used to provide table filtering to the native API.
+ It will be null -OR- point to the <see cref="M:System.Data.SQLite.SQLiteSession.Filter(System.IntPtr,System.IntPtr)"/> method.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteSession.tableFilterCallback">
+ <summary>
+ The managed callback used to filter tables for this session. Set
+ via the <see cref="M:System.Data.SQLite.SQLiteSession.SetTableFilter(System.Data.SQLite.SessionTableFilterCallback,System.Object)"/> method.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteSession.tableFilterClientData">
+ <summary>
+ The optional application-defined context data that was passed to
+ the <see cref="M:System.Data.SQLite.SQLiteSession.SetTableFilter(System.Data.SQLite.SessionTableFilterCallback,System.Object)"/> method. This value may be null.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.#ctor(System.Data.SQLite.SQLiteConnectionHandle,System.Data.SQLite.SQLiteConnectionFlags,System.String)">
+ <summary>
+ Constructs a new instance of this class using the specified wrapped
+ native connection handle and associated flags.
+ </summary>
+ <param name="handle">
+ The wrapped native connection handle to be associated with this
+ session.
+ </param>
+ <param name="flags">
+ The flags associated with the connection represented by the
+ <paramref name="handle" /> value.
+ </param>
+ <param name="databaseName">
+ The name of the database (e.g. "main") for this session.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.CheckHandle">
+ <summary>
+ Throws an exception if the native session handle is invalid.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.InitializeHandle">
+ <summary>
+ Makes sure the native session handle is valid, creating it if
+ necessary.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.ApplyTableFilter(System.Data.SQLite.SessionTableFilterCallback,System.Object)">
+ <summary>
+ This method sets up the internal table filtering associated state
+ of this instance.
+ </summary>
+ <param name="callback">
+ The table filter callback -OR- null to clear any existing table
+ filter callback.
+ </param>
+ <param name="clientData">
+ The optional application-defined context data. This value may be
+ null.
+ </param>
+ <returns>
+ The <see cref="T:System.Data.SQLite.UnsafeNativeMethods.xSessionFilter"/> native
+ delegate -OR- null to clear any existing table filter.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.InitializeStreamManager">
+ <summary>
+ Makes sure the <see cref="T:System.Data.SQLite.SQLiteSessionStreamManager"/> instance
+ is available, creating it if necessary.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.GetStreamAdapter(System.IO.Stream)">
+ <summary>
+ Attempts to return a <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/> instance
+ suitable for the specified <see cref="T:System.IO.Stream"/>.
+ </summary>
+ <param name="stream">
+ The <see cref="T:System.IO.Stream"/> instance. If this value is null, a null
+ value will be returned.
+ </param>
+ <returns>
+ A <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/> instance. Typically, these
+ are always freshly created; however, this method is designed to
+ return the existing <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/> instance
+ associated with the specified stream, should one exist.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.Filter(System.IntPtr,System.IntPtr)">
+ <summary>
+ This method is called when determining if a table needs to be
+ included in the tracked changes for the associated database.
+ </summary>
+ <param name="context">
+ Optional extra context information. Currently, this will always
+ have a value of <see cref="F:System.IntPtr.Zero"/>.
+ </param>
+ <param name="pTblName">
+ The native pointer to the name of the table.
+ </param>
+ <returns>
+ Non-zero if changes to the specified table should be considered;
+ otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.IsEnabled">
+ <summary>
+ Determines if this session is currently tracking changes to its
+ associated database.
+ </summary>
+ <returns>
+ Non-zero if changes to the associated database are being trakced;
+ otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.SetToEnabled">
+ <summary>
+ Enables tracking of changes to the associated database.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.SetToDisabled">
+ <summary>
+ Disables tracking of changes to the associated database.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.IsIndirect">
+ <summary>
+ Determines if this session is currently set to mark changes as
+ indirect (i.e. as though they were made via a trigger or foreign
+ key action).
+ </summary>
+ <returns>
+ Non-zero if changes to the associated database are being marked as
+ indirect; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.SetToIndirect">
+ <summary>
+ Sets the indirect flag for this session. Subsequent changes will
+ be marked as indirect until this flag is changed again.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.SetToDirect">
+ <summary>
+ Clears the indirect flag for this session. Subsequent changes will
+ be marked as direct until this flag is changed again.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.IsEmpty">
+ <summary>
+ Determines if there are any tracked changes currently within the
+ data for this session.
+ </summary>
+ <returns>
+ Non-zero if there are no changes within the data for this session;
+ otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.AttachTable(System.String)">
+ <summary>
+ Upon success, causes changes to the specified table(s) to start
+ being tracked. Any tables impacted by calls to this method will
+ not cause the <see cref="T:System.Data.SQLite.SessionTableFilterCallback"/> callback
+ to be invoked.
+ </summary>
+ <param name="name">
+ The name of the table to be tracked -OR- null to track all
+ applicable tables within this database.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.SetTableFilter(System.Data.SQLite.SessionTableFilterCallback,System.Object)">
+ <summary>
+ This method is used to set the table filter for this instance.
+ </summary>
+ <param name="callback">
+ The table filter callback -OR- null to clear any existing table
+ filter callback.
+ </param>
+ <param name="clientData">
+ The optional application-defined context data. This value may be
+ null.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.CreateChangeSet(System.Byte[]@)">
+ <summary>
+ Attempts to create and return, via <paramref name="rawData" />, the
+ set of changes represented by this session instance.
+ </summary>
+ <param name="rawData">
+ Upon success, this will contain the raw byte data for all the
+ changes in this session instance.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.CreateChangeSet(System.IO.Stream)">
+ <summary>
+ Attempts to create and write, via <paramref name="stream"/>, the
+ set of changes represented by this session instance.
+ </summary>
+ <param name="stream">
+ Upon success, the raw byte data for all the changes in this session
+ instance will be written to this <see cref="T:System.IO.Stream"/>.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.CreatePatchSet(System.Byte[]@)">
+ <summary>
+ Attempts to create and return, via <paramref name="rawData" />, the
+ set of changes represented by this session instance as a patch set.
+ </summary>
+ <param name="rawData">
+ Upon success, this will contain the raw byte data for all the
+ changes in this session instance.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.CreatePatchSet(System.IO.Stream)">
+ <summary>
+ Attempts to create and write, via <paramref name="stream"/>, the
+ set of changes represented by this session instance as a patch set.
+ </summary>
+ <param name="stream">
+ Upon success, the raw byte data for all the changes in this session
+ instance will be written to this <see cref="T:System.IO.Stream"/>.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.LoadDifferencesFromTable(System.String,System.String)">
+ <summary>
+ This method loads the differences between two tables [with the same
+ name, set of columns, and primary key definition] into this session
+ instance.
+ </summary>
+ <param name="fromDatabaseName">
+ The name of the database containing the table with the original
+ data (i.e. it will need updating in order to be identical to the
+ one within the database associated with this session instance).
+ </param>
+ <param name="tableName">
+ The name of the table.
+ </param>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteSession.disposed">
+ <summary>
+ Non-zero if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.CheckDisposed">
+ <summary>
+ Throws an exception if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteSession.Dispose(System.Boolean)">
+ <summary>
+ Disposes or finalizes this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this object is being disposed; otherwise, this object
+ is being finalized.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteChangeSetBase">
+ <summary>
+ This class represents the abstract concept of a set of changes. It
+ acts as the base class for the <see cref="T:System.Data.SQLite.SQLiteMemoryChangeSet"/>
+ and <see cref="T:System.Data.SQLite.SQLiteStreamChangeSet"/> classes. It derives from
+ the <see cref="T:System.Data.SQLite.SQLiteConnectionLock"/> class, which is used to hold
+ the underlying native connection handle open until the instances of
+ this class are disposed or finalized. It also provides the ability
+ to construct wrapped native delegates of the
+ <see cref="T:System.Data.SQLite.UnsafeNativeMethods.xSessionFilter"/> and
+ <see cref="T:System.Data.SQLite.UnsafeNativeMethods.xSessionConflict"/> types.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetBase.#ctor(System.Data.SQLite.SQLiteConnectionHandle,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Constructs an instance of this class using the specified wrapped
+ native connection handle.
+ </summary>
+ <param name="handle">
+ The wrapped native connection handle to be associated with this
+ change set.
+ </param>
+ <param name="flags">
+ The flags associated with the connection represented by the
+ <paramref name="handle" /> value.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetBase.CreateMetadataItem(System.IntPtr)">
+ <summary>
+ Creates and returns a concrete implementation of the
+ <see cref="T:System.Data.SQLite.ISQLiteChangeSetMetadataItem"/> interface.
+ </summary>
+ <param name="iterator">
+ The native iterator handle to use.
+ </param>
+ <returns>
+ An instance of the <see cref="T:System.Data.SQLite.ISQLiteChangeSetMetadataItem"/>
+ interface, which can be used to fetch metadata associated with
+ the current item in this set of changes.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetBase.GetDelegate(System.Data.SQLite.SessionTableFilterCallback,System.Object)">
+ <summary>
+ Attempts to create a
+ <see cref="T:System.Data.SQLite.UnsafeNativeMethods.xSessionFilter"/> native delegate
+ that invokes the specified
+ <see cref="T:System.Data.SQLite.SessionTableFilterCallback"/> delegate.
+ </summary>
+ <param name="tableFilterCallback">
+ The <see cref="T:System.Data.SQLite.SessionTableFilterCallback"/> to invoke when the
+ <see cref="T:System.Data.SQLite.UnsafeNativeMethods.xSessionFilter"/> native delegate
+ is called. If this value is null then null is returned.
+ </param>
+ <param name="clientData">
+ The optional application-defined context data. This value may be
+ null.
+ </param>
+ <returns>
+ The created <see cref="T:System.Data.SQLite.UnsafeNativeMethods.xSessionFilter"/>
+ native delegate -OR- null if it cannot be created.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetBase.GetDelegate(System.Data.SQLite.SessionConflictCallback,System.Object)">
+ <summary>
+ Attempts to create a
+ <see cref="T:System.Data.SQLite.UnsafeNativeMethods.xSessionConflict"/> native delegate
+ that invokes the specified
+ <see cref="T:System.Data.SQLite.SessionConflictCallback"/> delegate.
+ </summary>
+ <param name="conflictCallback">
+ The <see cref="T:System.Data.SQLite.SessionConflictCallback"/> to invoke when the
+ <see cref="T:System.Data.SQLite.UnsafeNativeMethods.xSessionConflict"/> native delegate
+ is called. If this value is null then null is returned.
+ </param>
+ <param name="clientData">
+ The optional application-defined context data. This value may be
+ null.
+ </param>
+ <returns>
+ The created <see cref="T:System.Data.SQLite.UnsafeNativeMethods.xSessionConflict"/>
+ native delegate -OR- null if it cannot be created.
+ </returns>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetBase.disposed">
+ <summary>
+ Non-zero if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetBase.CheckDisposed">
+ <summary>
+ Throws an exception if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetBase.Dispose(System.Boolean)">
+ <summary>
+ Disposes or finalizes this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this object is being disposed; otherwise, this object
+ is being finalized.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteMemoryChangeSet">
+ <summary>
+ This class represents a set of changes contained entirely in memory.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteMemoryChangeSet.rawData">
+ <summary>
+ The raw byte data for this set of changes. Since this data must
+ be marshalled to a native memory buffer before being used, there
+ must be enough memory available to store at least two times the
+ amount of data contained within it.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteMemoryChangeSet.startFlags">
+ <summary>
+ The flags used to create the change set iterator.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSet.#ctor(System.Byte[],System.Data.SQLite.SQLiteConnectionHandle,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Constructs an instance of this class using the specified raw byte
+ data and wrapped native connection handle.
+ </summary>
+ <param name="rawData">
+ The raw byte data for the specified change set (or patch set).
+ </param>
+ <param name="handle">
+ The wrapped native connection handle to be associated with this
+ set of changes.
+ </param>
+ <param name="connectionFlags">
+ The flags associated with the connection represented by the
+ <paramref name="handle" /> value.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSet.#ctor(System.Byte[],System.Data.SQLite.SQLiteConnectionHandle,System.Data.SQLite.SQLiteConnectionFlags,System.Data.SQLite.SQLiteChangeSetStartFlags)">
+ <summary>
+ Constructs an instance of this class using the specified raw byte
+ data and wrapped native connection handle.
+ </summary>
+ <param name="rawData">
+ The raw byte data for the specified change set (or patch set).
+ </param>
+ <param name="handle">
+ The wrapped native connection handle to be associated with this
+ set of changes.
+ </param>
+ <param name="connectionFlags">
+ The flags associated with the connection represented by the
+ <paramref name="handle" /> value.
+ </param>
+ <param name="startFlags">
+ The flags used to create the change set iterator.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSet.Invert">
+ <summary>
+ This method "inverts" the set of changes within this instance.
+ Applying an inverted set of changes to a database reverses the
+ effects of applying the uninverted changes. Specifically:
+ <![CDATA[<ul>]]><![CDATA[<li>]]>
+ Each DELETE change is changed to an INSERT, and
+ <![CDATA[</li>]]><![CDATA[<li>]]>
+ Each INSERT change is changed to a DELETE, and
+ <![CDATA[</li>]]><![CDATA[<li>]]>
+ For each UPDATE change, the old.* and new.* values are exchanged.
+ <![CDATA[</li>]]><![CDATA[</ul>]]>
+ This method does not change the order in which changes appear
+ within the set of changes. It merely reverses the sense of each
+ individual change.
+ </summary>
+ <returns>
+ The new <see cref="T:System.Data.SQLite.ISQLiteChangeSet"/> instance that represents
+ the resulting set of changes.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSet.CombineWith(System.Data.SQLite.ISQLiteChangeSet)">
+ <summary>
+ This method combines the specified set of changes with the ones
+ contained in this instance.
+ </summary>
+ <param name="changeSet">
+ The changes to be combined with those in this instance.
+ </param>
+ <returns>
+ The new <see cref="T:System.Data.SQLite.ISQLiteChangeSet"/> instance that represents
+ the resulting set of changes.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSet.Apply(System.Data.SQLite.SessionConflictCallback,System.Object)">
+ <summary>
+ Attempts to apply the set of changes in this instance to the
+ associated database.
+ </summary>
+ <param name="conflictCallback">
+ The <see cref="T:System.Data.SQLite.SessionConflictCallback"/> delegate that will need
+ to handle any conflicting changes that may arise.
+ </param>
+ <param name="clientData">
+ The optional application-defined context data. This value may be
+ null.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSet.Apply(System.Data.SQLite.SessionConflictCallback,System.Data.SQLite.SessionTableFilterCallback,System.Object)">
+ <summary>
+ Attempts to apply the set of changes in this instance to the
+ associated database.
+ </summary>
+ <param name="conflictCallback">
+ The <see cref="T:System.Data.SQLite.SessionConflictCallback"/> delegate that will need
+ to handle any conflicting changes that may arise.
+ </param>
+ <param name="tableFilterCallback">
+ The optional <see cref="T:System.Data.SQLite.SessionTableFilterCallback"/> delegate
+ that can be used to filter the list of tables impacted by the set
+ of changes.
+ </param>
+ <param name="clientData">
+ The optional application-defined context data. This value may be
+ null.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSet.GetEnumerator">
+ <summary>
+ Creates an <see cref="T:System.Collections.IEnumerator"/> capable of iterating over the
+ items within this set of changes.
+ </summary>
+ <returns>
+ The new <see cref="T:System.Collections.Generic.IEnumerator`1"/>
+ instance.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSet.System#Collections#IEnumerable#GetEnumerator">
+ <summary>
+ Creates an <see cref="T:System.Collections.IEnumerator"/> capable of iterating over the
+ items within this set of changes.
+ </summary>
+ <returns>
+ The new <see cref="T:System.Collections.IEnumerator"/> instance.
+ </returns>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteMemoryChangeSet.disposed">
+ <summary>
+ Non-zero if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSet.CheckDisposed">
+ <summary>
+ Throws an exception if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSet.Dispose(System.Boolean)">
+ <summary>
+ Disposes or finalizes this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this object is being disposed; otherwise, this object
+ is being finalized.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteStreamChangeSet">
+ <summary>
+ This class represents a set of changes that are backed by a
+ <see cref="T:System.IO.Stream"/> instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStreamChangeSet.inputStreamAdapter">
+ <summary>
+ The <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/> instance that is managing
+ the underlying input <see cref="T:System.IO.Stream"/> used as the backing
+ store for the set of changes associated with this instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStreamChangeSet.outputStreamAdapter">
+ <summary>
+ The <see cref="T:System.Data.SQLite.SQLiteStreamAdapter"/> instance that is managing
+ the underlying output <see cref="T:System.IO.Stream"/> used as the backing
+ store for the set of changes generated by the <see cref="M:System.Data.SQLite.SQLiteStreamChangeSet.Invert"/>
+ or <see cref="M:System.Data.SQLite.SQLiteStreamChangeSet.CombineWith(System.Data.SQLite.ISQLiteChangeSet)"/> methods.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStreamChangeSet.inputStream">
+ <summary>
+ The <see cref="T:System.IO.Stream"/> instance used as the backing store for
+ the set of changes associated with this instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStreamChangeSet.outputStream">
+ <summary>
+ The <see cref="T:System.IO.Stream"/> instance used as the backing store for
+ the set of changes generated by the <see cref="M:System.Data.SQLite.SQLiteStreamChangeSet.Invert"/> or
+ <see cref="M:System.Data.SQLite.SQLiteStreamChangeSet.CombineWith(System.Data.SQLite.ISQLiteChangeSet)"/> methods.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStreamChangeSet.startFlags">
+ <summary>
+ The flags used to create the change set iterator.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSet.#ctor(System.IO.Stream,System.IO.Stream,System.Data.SQLite.SQLiteConnectionHandle,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Constructs an instance of this class using the specified streams
+ and wrapped native connection handle.
+ </summary>
+ <param name="inputStream">
+ The <see cref="T:System.IO.Stream"/> where the raw byte data for the set of
+ changes may be read.
+ </param>
+ <param name="outputStream">
+ The <see cref="T:System.IO.Stream"/> where the raw byte data for resulting
+ sets of changes may be written.
+ </param>
+ <param name="handle">
+ The wrapped native connection handle to be associated with this
+ set of changes.
+ </param>
+ <param name="connectionFlags">
+ The flags associated with the connection represented by the
+ <paramref name="handle"/> value.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSet.#ctor(System.IO.Stream,System.IO.Stream,System.Data.SQLite.SQLiteConnectionHandle,System.Data.SQLite.SQLiteConnectionFlags,System.Data.SQLite.SQLiteChangeSetStartFlags)">
+ <summary>
+ Constructs an instance of this class using the specified streams
+ and wrapped native connection handle.
+ </summary>
+ <param name="inputStream">
+ The <see cref="T:System.IO.Stream"/> where the raw byte data for the set of
+ changes may be read.
+ </param>
+ <param name="outputStream">
+ The <see cref="T:System.IO.Stream"/> where the raw byte data for resulting
+ sets of changes may be written.
+ </param>
+ <param name="handle">
+ The wrapped native connection handle to be associated with this
+ set of changes.
+ </param>
+ <param name="connectionFlags">
+ The flags associated with the connection represented by the
+ <paramref name="handle"/> value.
+ </param>
+ <param name="startFlags">
+ The flags used to create the change set iterator.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSet.CheckInputStream">
+ <summary>
+ Throws an exception if the input stream or its associated stream
+ adapter are invalid.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSet.CheckOutputStream">
+ <summary>
+ Throws an exception if the output stream or its associated stream
+ adapter are invalid.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSet.Invert">
+ <summary>
+ This method "inverts" the set of changes within this instance.
+ Applying an inverted set of changes to a database reverses the
+ effects of applying the uninverted changes. Specifically:
+ <![CDATA[<ul>]]><![CDATA[<li>]]>
+ Each DELETE change is changed to an INSERT, and
+ <![CDATA[</li>]]><![CDATA[<li>]]>
+ Each INSERT change is changed to a DELETE, and
+ <![CDATA[</li>]]><![CDATA[<li>]]>
+ For each UPDATE change, the old.* and new.* values are exchanged.
+ <![CDATA[</li>]]><![CDATA[</ul>]]>
+ This method does not change the order in which changes appear
+ within the set of changes. It merely reverses the sense of each
+ individual change.
+ </summary>
+ <returns>
+ Since the resulting set of changes is written to the output stream,
+ this method always returns null.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSet.CombineWith(System.Data.SQLite.ISQLiteChangeSet)">
+ <summary>
+ This method combines the specified set of changes with the ones
+ contained in this instance.
+ </summary>
+ <param name="changeSet">
+ The changes to be combined with those in this instance.
+ </param>
+ <returns>
+ Since the resulting set of changes is written to the output stream,
+ this method always returns null.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSet.Apply(System.Data.SQLite.SessionConflictCallback,System.Object)">
+ <summary>
+ Attempts to apply the set of changes in this instance to the
+ associated database.
+ </summary>
+ <param name="conflictCallback">
+ The <see cref="T:System.Data.SQLite.SessionConflictCallback"/> delegate that will need
+ to handle any conflicting changes that may arise.
+ </param>
+ <param name="clientData">
+ The optional application-defined context data. This value may be
+ null.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSet.Apply(System.Data.SQLite.SessionConflictCallback,System.Data.SQLite.SessionTableFilterCallback,System.Object)">
+ <summary>
+ Attempts to apply the set of changes in this instance to the
+ associated database.
+ </summary>
+ <param name="conflictCallback">
+ The <see cref="T:System.Data.SQLite.SessionConflictCallback"/> delegate that will need
+ to handle any conflicting changes that may arise.
+ </param>
+ <param name="tableFilterCallback">
+ The optional <see cref="T:System.Data.SQLite.SessionTableFilterCallback"/> delegate
+ that can be used to filter the list of tables impacted by the set
+ of changes.
+ </param>
+ <param name="clientData">
+ The optional application-defined context data. This value may be
+ null.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSet.GetEnumerator">
+ <summary>
+ Creates an <see cref="T:System.Collections.IEnumerator"/> capable of iterating over the
+ items within this set of changes.
+ </summary>
+ <returns>
+ The new <see cref="T:System.Collections.Generic.IEnumerator`1"/>
+ instance.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSet.System#Collections#IEnumerable#GetEnumerator">
+ <summary>
+ Creates an <see cref="T:System.Collections.IEnumerator"/> capable of iterating over the
+ items within this set of changes.
+ </summary>
+ <returns>
+ The new <see cref="T:System.Collections.IEnumerator"/> instance.
+ </returns>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStreamChangeSet.disposed">
+ <summary>
+ Non-zero if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSet.CheckDisposed">
+ <summary>
+ Throws an exception if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSet.Dispose(System.Boolean)">
+ <summary>
+ Disposes or finalizes this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this object is being disposed; otherwise, this object
+ is being finalized.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteChangeSetEnumerator">
+ <summary>
+ This class represents an <see cref="T:System.Collections.IEnumerator"/> that is capable of
+ enumerating over a set of changes. It serves as the base class for the
+ <see cref="T:System.Data.SQLite.SQLiteMemoryChangeSetEnumerator"/> and
+ <see cref="T:System.Data.SQLite.SQLiteStreamChangeSetEnumerator"/> classes. It manages and
+ owns an instance of the <see cref="T:System.Data.SQLite.SQLiteChangeSetIterator"/> class.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetEnumerator.iterator">
+ <summary>
+ This managed change set iterator is managed and owned by this
+ class. It will be disposed when this class is disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetEnumerator.#ctor(System.Data.SQLite.SQLiteChangeSetIterator)">
+ <summary>
+ Constructs an instance of this class using the specified managed
+ change set iterator.
+ </summary>
+ <param name="iterator">
+ The managed iterator instance to use.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetEnumerator.CheckIterator">
+ <summary>
+ Throws an exception if the managed iterator instance is invalid.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetEnumerator.SetIterator(System.Data.SQLite.SQLiteChangeSetIterator)">
+ <summary>
+ Sets the managed iterator instance to a new value.
+ </summary>
+ <param name="iterator">
+ The new managed iterator instance to use.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetEnumerator.CloseIterator">
+ <summary>
+ Disposes of the managed iterator instance and sets its value to
+ null.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetEnumerator.ResetIterator(System.Data.SQLite.SQLiteChangeSetIterator)">
+ <summary>
+ Disposes of the existing managed iterator instance and then sets it
+ to a new value.
+ </summary>
+ <param name="iterator">
+ The new managed iterator instance to use.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetEnumerator.MoveNext">
+ <summary>
+ Attempts to advance to the next item in the set of changes.
+ </summary>
+ <returns>
+ Non-zero if more items are available; otherwise, zero.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetEnumerator.Reset">
+ <summary>
+ Throws <see cref="T:System.NotImplementedException"/> because not all the
+ derived classes are able to support reset functionality.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetEnumerator.Dispose">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetEnumerator.disposed">
+ <summary>
+ Non-zero if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetEnumerator.CheckDisposed">
+ <summary>
+ Throws an exception if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetEnumerator.Dispose(System.Boolean)">
+ <summary>
+ Disposes or finalizes this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this object is being disposed; otherwise, this object
+ is being finalized.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetEnumerator.Finalize">
+ <summary>
+ Finalizes this object instance.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteChangeSetEnumerator.Current">
+ <summary>
+ Returns the current change within the set of changes, represented
+ by a <see cref="T:System.Data.SQLite.ISQLiteChangeSetMetadataItem"/> instance.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteChangeSetEnumerator.System#Collections#IEnumerator#Current">
+ <summary>
+ Returns the current change within the set of changes, represented
+ by a <see cref="T:System.Data.SQLite.ISQLiteChangeSetMetadataItem"/> instance.
+ </summary>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteMemoryChangeSetEnumerator">
+ <summary>
+ This class represents an <see cref="T:System.Collections.IEnumerator"/> that is capable of
+ enumerating over a set of changes contained entirely in memory.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteMemoryChangeSetEnumerator.rawData">
+ <summary>
+ The raw byte data for this set of changes. Since this data must
+ be marshalled to a native memory buffer before being used, there
+ must be enough memory available to store at least two times the
+ amount of data contained within it.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteMemoryChangeSetEnumerator.flags">
+ <summary>
+ The flags used to create the change set iterator.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSetEnumerator.#ctor(System.Byte[])">
+ <summary>
+ Constructs an instance of this class using the specified raw byte
+ data.
+ </summary>
+ <param name="rawData">
+ The raw byte data containing the set of changes for this
+ enumerator.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSetEnumerator.#ctor(System.Byte[],System.Data.SQLite.SQLiteChangeSetStartFlags)">
+ <summary>
+ Constructs an instance of this class using the specified raw byte
+ data.
+ </summary>
+ <param name="rawData">
+ The raw byte data containing the set of changes for this
+ enumerator.
+ </param>
+ <param name="flags">
+ The flags used to create the change set iterator.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSetEnumerator.Reset">
+ <summary>
+ Resets the enumerator to its initial position.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteMemoryChangeSetEnumerator.disposed">
+ <summary>
+ Non-zero if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSetEnumerator.CheckDisposed">
+ <summary>
+ Throws an exception if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteMemoryChangeSetEnumerator.Dispose(System.Boolean)">
+ <summary>
+ Disposes or finalizes this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this object is being disposed; otherwise, this object
+ is being finalized.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteStreamChangeSetEnumerator">
+ <summary>
+ This class represents an <see cref="T:System.Collections.IEnumerator"/> that is capable of
+ enumerating over a set of changes backed by a <see cref="T:System.IO.Stream"/>
+ instance.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSetEnumerator.#ctor(System.IO.Stream,System.Data.SQLite.SQLiteConnectionFlags)">
+ <summary>
+ Constructs an instance of this class using the specified stream.
+ </summary>
+ <param name="stream">
+ The <see cref="T:System.IO.Stream"/> where the raw byte data for the set of
+ changes may be read.
+ </param>
+ <param name="connectionFlags">
+ The flags associated with the parent connection.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSetEnumerator.#ctor(System.IO.Stream,System.Data.SQLite.SQLiteConnectionFlags,System.Data.SQLite.SQLiteChangeSetStartFlags)">
+ <summary>
+ Constructs an instance of this class using the specified stream.
+ </summary>
+ <param name="stream">
+ The <see cref="T:System.IO.Stream"/> where the raw byte data for the set of
+ changes may be read.
+ </param>
+ <param name="connectionFlags">
+ The flags associated with the parent connection.
+ </param>
+ <param name="startFlags">
+ The flags used to create the change set iterator.
+ </param>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteStreamChangeSetEnumerator.disposed">
+ <summary>
+ Non-zero if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSetEnumerator.CheckDisposed">
+ <summary>
+ Throws an exception if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteStreamChangeSetEnumerator.Dispose(System.Boolean)">
+ <summary>
+ Disposes or finalizes this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this object is being disposed; otherwise, this object
+ is being finalized.
+ </param>
+ </member>
+ <member name="T:System.Data.SQLite.SQLiteChangeSetMetadataItem">
+ <summary>
+ This interface implements properties and methods used to fetch metadata
+ about one change within a set of changes for a database.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetMetadataItem.iterator">
+ <summary>
+ The <see cref="T:System.Data.SQLite.SQLiteChangeSetIterator"/> instance to use. This
+ will NOT be owned by this class and will not be disposed upon this
+ class being disposed or finalized.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetMetadataItem.#ctor(System.Data.SQLite.SQLiteChangeSetIterator)">
+ <summary>
+ Constructs an instance of this class using the specified iterator
+ instance.
+ </summary>
+ <param name="iterator">
+ The managed iterator instance to use.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetMetadataItem.CheckIterator">
+ <summary>
+ Throws an exception if the managed iterator instance is invalid.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetMetadataItem.PopulateOperationMetadata">
+ <summary>
+ Populates the underlying data for the <see cref="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.TableName"/>,
+ <see cref="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.NumberOfColumns"/>, <see cref="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.OperationCode"/>, and
+ <see cref="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.Indirect"/> properties, using the appropriate native
+ API.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetMetadataItem.PopulatePrimaryKeyColumns">
+ <summary>
+ Populates the underlying data for the
+ <see cref="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.PrimaryKeyColumns"/> property using the appropriate
+ native API.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetMetadataItem.PopulateNumberOfForeignKeyConflicts">
+ <summary>
+ Populates the underlying data for the
+ <see cref="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.NumberOfForeignKeyConflicts"/> property using the
+ appropriate native API.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetMetadataItem.tableName">
+ <summary>
+ Backing field for the <see cref="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.TableName"/> property. This value
+ will be null if this field has not yet been populated via the
+ underlying native API.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetMetadataItem.numberOfColumns">
+ <summary>
+ Backing field for the <see cref="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.NumberOfColumns"/> property. This
+ value will be null if this field has not yet been populated via the
+ underlying native API.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetMetadataItem.operationCode">
+ <summary>
+ Backing field for the <see cref="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.OperationCode"/> property. This
+ value will be null if this field has not yet been populated via the
+ underlying native API.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetMetadataItem.indirect">
+ <summary>
+ Backing field for the <see cref="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.Indirect"/> property. This value
+ will be null if this field has not yet been populated via the
+ underlying native API.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetMetadataItem.primaryKeyColumns">
+ <summary>
+ Backing field for the <see cref="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.PrimaryKeyColumns"/> property.
+ This value will be null if this field has not yet been populated
+ via the underlying native API.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetMetadataItem.numberOfForeignKeyConflicts">
+ <summary>
+ Backing field for the <see cref="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.NumberOfForeignKeyConflicts"/>
+ property. This value will be null if this field has not yet been
+ populated via the underlying native API.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetMetadataItem.GetOldValue(System.Int32)">
+ <summary>
+ Queries and returns the original value of a given column for this
+ change. This method may only be called when the
+ <see cref="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.OperationCode"/> has a value of
+ <see cref="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Update"/> or
+ <see cref="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Delete"/>.
+ </summary>
+ <param name="columnIndex">
+ The index for the column. This value must be between zero and one
+ less than the total number of columns for this table.
+ </param>
+ <returns>
+ The original value of a given column for this change.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetMetadataItem.GetNewValue(System.Int32)">
+ <summary>
+ Queries and returns the updated value of a given column for this
+ change. This method may only be called when the
+ <see cref="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.OperationCode"/> has a value of
+ <see cref="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Insert"/> or
+ <see cref="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Update"/>.
+ </summary>
+ <param name="columnIndex">
+ The index for the column. This value must be between zero and one
+ less than the total number of columns for this table.
+ </param>
+ <returns>
+ The updated value of a given column for this change.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetMetadataItem.GetConflictValue(System.Int32)">
+ <summary>
+ Queries and returns the conflicting value of a given column for
+ this change. This method may only be called from within a
+ <see cref="T:System.Data.SQLite.SessionConflictCallback"/> delegate when the conflict
+ type is <see cref="F:System.Data.SQLite.SQLiteChangeSetConflictType.Data"/> or
+ <see cref="F:System.Data.SQLite.SQLiteChangeSetConflictType.Conflict"/>.
+ </summary>
+ <param name="columnIndex">
+ The index for the column. This value must be between zero and one
+ less than the total number of columns for this table.
+ </param>
+ <returns>
+ The conflicting value of a given column for this change.
+ </returns>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetMetadataItem.Dispose">
+ <summary>
+ Disposes of this object instance.
+ </summary>
+ </member>
+ <member name="F:System.Data.SQLite.SQLiteChangeSetMetadataItem.disposed">
+ <summary>
+ Non-zero if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetMetadataItem.CheckDisposed">
+ <summary>
+ Throws an exception if this object instance has been disposed.
+ </summary>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetMetadataItem.Dispose(System.Boolean)">
+ <summary>
+ Disposes or finalizes this object instance.
+ </summary>
+ <param name="disposing">
+ Non-zero if this object is being disposed; otherwise, this object
+ is being finalized.
+ </param>
+ </member>
+ <member name="M:System.Data.SQLite.SQLiteChangeSetMetadataItem.Finalize">
+ <summary>
+ Finalizes this object instance.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.TableName">
+ <summary>
+ The name of the table the change was made to.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.NumberOfColumns">
+ <summary>
+ The number of columns impacted by this change. This value can be
+ used to determine the highest valid column index that may be used
+ with the <see cref="M:System.Data.SQLite.SQLiteChangeSetMetadataItem.GetOldValue(System.Int32)"/>, <see cref="M:System.Data.SQLite.SQLiteChangeSetMetadataItem.GetNewValue(System.Int32)"/>,
+ and <see cref="M:System.Data.SQLite.SQLiteChangeSetMetadataItem.GetConflictValue(System.Int32)"/> methods of this interface. It
+ will be this value minus one.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.OperationCode">
+ <summary>
+ This will contain the value
+ <see cref="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Insert"/>,
+ <see cref="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Update"/>, or
+ <see cref="F:System.Data.SQLite.SQLiteAuthorizerActionCode.Delete"/>, corresponding to
+ the overall type of change this item represents.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.Indirect">
+ <summary>
+ Non-zero if this change is considered to be indirect (i.e. as
+ though they were made via a trigger or foreign key action).
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.PrimaryKeyColumns">
+ <summary>
+ This array contains a <see cref="T:System.Boolean"/> for each column in
+ the table associated with this change. The element will be zero
+ if the column is not part of the primary key; otherwise, it will
+ be non-zero.
+ </summary>
+ </member>
+ <member name="P:System.Data.SQLite.SQLiteChangeSetMetadataItem.NumberOfForeignKeyConflicts">
+ <summary>
+ This method may only be called from within a
+ <see cref="T:System.Data.SQLite.SessionConflictCallback"/> delegate when the conflict
+ type is <see cref="F:System.Data.SQLite.SQLiteChangeSetConflictType.ForeignKey"/>. It
+ returns the total number of known foreign key violations in the
+ destination database.
+ </summary>
+ </member>
+ </members>
+</doc>
diff --git a/VisionBuilder.Core/VisionBuilder.Core.csproj b/VisionBuilder.Core/VisionBuilder.Core.csproj
deleted file mode 100644
index f8dbc78..0000000
--- a/VisionBuilder.Core/VisionBuilder.Core.csproj
+++ /dev/null
@@ -1,52 +0,0 @@
-锘�<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{3E3BF44A-0B69-45C5-9512-528CB48A7106}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>VisionBuilder.Core</RootNamespace>
- <AssemblyName>VisionBuilder.Core</AssemblyName>
- <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <Deterministic>true</Deterministic>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="Microsoft.CSharp" />
- <Reference Include="System.Data" />
- <Reference Include="System.Net.Http" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Api\IProgram.cs" />
- <Compile Include="Api\ISequnce.cs" />
- <Compile Include="Api\IStep.cs" />
- <Compile Include="Api\IStepRunner.cs" />
- <Compile Include="Entity\Param.cs" />
- <Compile Include="Properties\AssemblyInfo.cs" />
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-</Project>
\ No newline at end of file
diff --git a/VisionBuilder.Engine/VisionBuilder.Engine.csproj b/VisionBuilder.Engine/VisionBuilder.Engine.csproj
index 3100f32..553239e 100644
--- a/VisionBuilder.Engine/VisionBuilder.Engine.csproj
+++ b/VisionBuilder.Engine/VisionBuilder.Engine.csproj
@@ -30,6 +30,24 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>bin\x64\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <DebugType>full</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ <OutputPath>bin\x64\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <Optimize>true</Optimize>
+ <DebugType>pdbonly</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
@@ -45,9 +63,9 @@
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\VisionBuilder.Core\VisionBuilder.Core.csproj">
+ <ProjectReference Include="..\HMI.Core\HMI.Core.csproj">
<Project>{3e3bf44a-0b69-45c5-9512-528cb48a7106}</Project>
- <Name>VisionBuilder.Core</Name>
+ <Name>HMI.Core</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
diff --git a/VisionBuilder.Engine/app.config b/VisionBuilder.Engine/app.config
new file mode 100644
index 0000000..d23a83e
--- /dev/null
+++ b/VisionBuilder.Engine/app.config
@@ -0,0 +1,19 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <dependentAssembly>
+ <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.ComponentModel.Annotations" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
+</configuration>
\ No newline at end of file
diff --git a/VisionBuilder.Run/Properties/AssemblyInfo.cs b/VisionBuilder.Run/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..63a35d4
--- /dev/null
+++ b/VisionBuilder.Run/Properties/AssemblyInfo.cs
@@ -0,0 +1,52 @@
+锘縰sing System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// 鏈夊叧绋嬪簭闆嗙殑涓�鑸俊鎭敱浠ヤ笅
+// 鎺у埗銆傛洿鏀硅繖浜涚壒鎬у�煎彲淇敼
+// 涓庣▼搴忛泦鍏宠仈鐨勪俊鎭��
+[assembly: AssemblyTitle("VisionBuilder.Run")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Organization")]
+[assembly: AssemblyProduct("VisionBuilder.Run")]
+[assembly: AssemblyCopyright("Copyright 漏 Organization 2025")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 灏� ComVisible 璁剧疆涓� false 浼氫娇姝ょ▼搴忛泦涓殑绫诲瀷
+//瀵� COM 缁勪欢涓嶅彲瑙併�傚鏋滈渶瑕佷粠 COM 璁块棶姝ょ▼搴忛泦涓殑绫诲瀷
+//璇峰皢姝ょ被鍨嬬殑 ComVisible 鐗规�ц缃负 true銆�
+[assembly: ComVisible(false)]
+
+//鑻ヨ寮�濮嬬敓鎴愬彲鏈湴鍖栫殑搴旂敤绋嬪簭锛岃璁剧疆
+//.csproj 鏂囦欢涓殑 <UICulture>CultureYouAreCodingWith</UICulture>
+//鍦� <PropertyGroup> 涓�備緥濡傦紝濡傛灉浣犱娇鐢ㄧ殑鏄編鍥借嫳璇��
+//浣跨敤鐨勬槸缇庡浗鑻辫锛岃灏� <UICulture> 璁剧疆涓� en-US銆� 鐒跺悗鍙栨秷
+//瀵逛互涓� NeutralResourceLanguage 鐗规�х殑娉ㄩ噴銆� 鏇存柊
+//浠ヤ笅琛屼腑鐨勨�渆n-US鈥濅互鍖归厤椤圭洰鏂囦欢涓殑 UICulture 璁剧疆銆�
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly:ThemeInfo(
+ ResourceDictionaryLocation.None, //涓婚鐗瑰畾璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //鎴栧簲鐢ㄧ▼搴忚祫婧愬瓧鍏镐腑鎵惧埌鏃朵娇鐢�)
+ ResourceDictionaryLocation.SourceAssembly //甯歌璧勬簮璇嶅吀鎵�澶勪綅缃�
+ //(鏈湪椤甸潰涓壘鍒拌祫婧愭椂浣跨敤锛�
+ //銆佸簲鐢ㄧ▼搴忔垨浠讳綍涓婚涓撶敤璧勬簮瀛楀吀涓壘鍒版椂浣跨敤)
+)]
+
+
+// 绋嬪簭闆嗙殑鐗堟湰淇℃伅鐢变笅鍒楀洓涓�肩粍鎴�:
+//
+// 涓荤増鏈�
+// 娆$増鏈�
+// 鐢熸垚鍙�
+// 淇鍙�
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/VisionBuilder.Run/Properties/Resources.Designer.cs b/VisionBuilder.Run/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..d74c4aa
--- /dev/null
+++ b/VisionBuilder.Run/Properties/Resources.Designer.cs
@@ -0,0 +1,62 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// 姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+// 杩愯鏃剁増鏈�: 4.0.30319.42000
+//
+// 瀵规鏂囦欢鐨勬洿鏀瑰彲鑳藉鑷翠笉姝g‘鐨勮涓猴紝濡傛灉
+// 閲嶆柊鐢熸垚浠g爜锛屽垯鎵�鍋氭洿鏀瑰皢涓㈠け銆�
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace VisionBuilder.Run.Properties {
+
+
+ /// <summary>
+ /// 寮虹被鍨嬭祫婧愮被锛岀敤浜庢煡鎵炬湰鍦板寲瀛楃涓茬瓑銆�
+ /// </summary>
+ // 姝ょ被鏄敱 StronglyTypedResourceBuilder
+ // 绫婚�氳繃绫讳技浜� ResGen 鎴� Visual Studio 鐨勫伐鍏疯嚜鍔ㄧ敓鎴愮殑銆�
+ // 鑻ヨ娣诲姞鎴栫Щ闄ゆ垚鍛橈紝璇风紪杈� .ResX 鏂囦欢锛岀劧鍚庨噸鏂拌繍琛� ResGen
+ // (浠� /str 浣滀负鍛戒护閫夐」)锛屾垨閲嶆柊鐢熸垚 VS 椤圭洰銆�
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// 杩斿洖姝ょ被浣跨敤鐨勭紦瀛� ResourceManager 瀹炰緥銆�
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if ((resourceMan == null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("VisionBuilder.Run.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// 閲嶅啓褰撳墠绾跨▼鐨� CurrentUICulture 灞炴�э紝瀵�
+ /// 浣跨敤姝ゅ己绫诲瀷璧勬簮绫荤殑鎵�鏈夎祫婧愭煡鎵炬墽琛岄噸鍐欍��
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/VisionBuilder.Run/Properties/Resources.resx b/VisionBuilder.Run/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/VisionBuilder.Run/Properties/Resources.resx
@@ -0,0 +1,117 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
diff --git a/VisionBuilder.Run/Properties/Settings.Designer.cs b/VisionBuilder.Run/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..90546e5
--- /dev/null
+++ b/VisionBuilder.Run/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace VisionBuilder.Run.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/VisionBuilder.Run/Properties/Settings.settings b/VisionBuilder.Run/Properties/Settings.settings
new file mode 100644
index 0000000..033d7a5
--- /dev/null
+++ b/VisionBuilder.Run/Properties/Settings.settings
@@ -0,0 +1,7 @@
+锘�<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile>
\ No newline at end of file
diff --git a/VisionBuilder.Run/VisionBuilder.Run.csproj b/VisionBuilder.Run/VisionBuilder.Run.csproj
new file mode 100644
index 0000000..023d44e
--- /dev/null
+++ b/VisionBuilder.Run/VisionBuilder.Run.csproj
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{7C299AED-88CC-437E-A68B-1550AA72E6B0}</ProjectGuid>
+ <OutputType>library</OutputType>
+ <RootNamespace>VisionBuilder.Run</RootNamespace>
+ <AssemblyName>VisionBuilder.Run</AssemblyName>
+ <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <WarningLevel>4</WarningLevel>
+ <Deterministic>true</Deterministic>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Xaml">
+ <RequiredTargetFramework>4.0</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="WindowsBase" />
+ <Reference Include="PresentationCore" />
+ <Reference Include="PresentationFramework" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Properties\AssemblyInfo.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ </EmbeddedResource>
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/VisionBuilder.Test/PluginOne.cs b/VisionBuilder.Test/PluginOne.cs
index c11bb3b..06f122a 100644
--- a/VisionBuilder.Test/PluginOne.cs
+++ b/VisionBuilder.Test/PluginOne.cs
@@ -1,6 +1,6 @@
锘縰sing System.Collections.Generic;
-using VisionBuilder.Core.Api;
-using VisionBuilder.Core.Entity;
+using HMI.Core.Api;
+using HMI.Core.Entity;
namespace VisionBuilder.Test
{
diff --git a/VisionBuilder.Test/VisionBuilder.Test.csproj b/VisionBuilder.Test/VisionBuilder.Test.csproj
index e0e52f2..e9a3d64 100644
--- a/VisionBuilder.Test/VisionBuilder.Test.csproj
+++ b/VisionBuilder.Test/VisionBuilder.Test.csproj
@@ -30,6 +30,24 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>bin\x64\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <DebugType>full</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ <OutputPath>bin\x64\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <Optimize>true</Optimize>
+ <DebugType>pdbonly</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>7.3</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
@@ -45,9 +63,9 @@
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\VisionBuilder.Core\VisionBuilder.Core.csproj">
+ <ProjectReference Include="..\HMI.Core\HMI.Core.csproj">
<Project>{3e3bf44a-0b69-45c5-9512-528cb48a7106}</Project>
- <Name>VisionBuilder.Core</Name>
+ <Name>HMI.Core</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
diff --git a/VisionBuilder.Test/app.config b/VisionBuilder.Test/app.config
new file mode 100644
index 0000000..d23a83e
--- /dev/null
+++ b/VisionBuilder.Test/app.config
@@ -0,0 +1,19 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <dependentAssembly>
+ <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.ComponentModel.Annotations" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
+</configuration>
\ No newline at end of file
diff --git a/WPFProject/App.config b/WPFProject/App.config
index d17fa4e..6c4d0d1 100644
--- a/WPFProject/App.config
+++ b/WPFProject/App.config
@@ -1,11 +1,23 @@
-锘�<?xml version="1.0" encoding="utf-8" ?>
+锘�<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <probing privatePath="Libs;ThirdParty"/>
+ <probing privatePath="Libs;ThirdParty;Plugin;" />
+ <dependentAssembly>
+ <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.ComponentModel.Annotations" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
+ </dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
\ No newline at end of file
diff --git a/WPFProject/App.xaml b/WPFProject/App.xaml
index 292ccd8..bfd14e2 100644
--- a/WPFProject/App.xaml
+++ b/WPFProject/App.xaml
@@ -2,8 +2,24 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WPFProject"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
Startup="Application_Startup">
<Application.Resources>
-
+ <ResourceDictionary>
+ <ResourceDictionary.MergedDictionaries>
+ <ResourceDictionary Source="/HMI.UI;component/Style/BaseWindow.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/FormStyle.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/Colors.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/PanuonResource.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/MsgBoxStyle.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+
+ <Style TargetType="{x:Type pu:FormGroup}" BasedOn="{StaticResource InputFormGroupStyle}"></Style>
+ <uic:PathImageConverter x:Key="path2Image"/>
+ <uic:DataGridRowNumberConverter x:Key="rowNumber"/>
+ </ResourceDictionary>
</Application.Resources>
</Application>
diff --git a/WPFProject/App.xaml.cs b/WPFProject/App.xaml.cs
index 437e4c9..2715cec 100644
--- a/WPFProject/App.xaml.cs
+++ b/WPFProject/App.xaml.cs
@@ -5,6 +5,10 @@
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
+using HMI.UI.Util;
+using System.Windows.Markup;
+using log4net;
+using Panuon.WPF.UI;
namespace WPFProject
{
@@ -13,14 +17,26 @@
/// </summary>
public partial class App : Application
{
- public void test()
+ private ILog log;
+ public App()
{
-
+ log = LogManager.GetLogger("APP");
+ AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
+ }
+
+ private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
+ {
+ log.Error("鏈煡寮傚父", e.ExceptionObject as Exception);
+ Dispatcher.Invoke(() =>
+ {
+ MsgBoxHelper.ErrorMessage(Current.MainWindow, $"鍙戠敓鏈煡寮傚父锛佺▼搴忓嵆灏嗗叧闂�", "閿欒", MessageBoxButton.OK,
+ MessageBoxIcon.Error, DefaultButton.YesOK, 5);
+ });
}
private void Application_Startup(object sender, StartupEventArgs e)
{
- MainWindow window = new MainWindow();
+ LoadingWindow window = new LoadingWindow();
window.Show();
}
}
diff --git a/WPFProject/Controls/IconTabItem.cs b/WPFProject/Controls/IconTabItem.cs
index 1c5faa3..2371f33 100644
--- a/WPFProject/Controls/IconTabItem.cs
+++ b/WPFProject/Controls/IconTabItem.cs
@@ -1,8 +1,8 @@
-锘縰sing System.ComponentModel;
+锘縰sing System.Collections.ObjectModel;
+using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Windows;
using System.Windows.Controls;
-using System.Windows.Media;
using System.Windows.Media.Imaging;
namespace WPFProject.Controls
@@ -37,6 +37,13 @@
set => _isFont = value;
}
+ private string _Header;
+ public string Header
+ {
+ get => _Header;
+ set => _Header = value;
+ }
+
private Window _Body;
public Window Body
{
@@ -44,6 +51,13 @@
set => _Body = value;
}
+ private ObservableCollection<IconTabItem> _Children;
+ public ObservableCollection<IconTabItem> Children
+ {
+ get => _Children;
+ set => RaiseAndSetIfChanged(ref _Children, value);
+ }
+
public BitmapImage Icon
{
get { return (BitmapImage)GetValue(IconProperty); }
diff --git a/WPFProject/Controls/InnerWindow.xaml b/WPFProject/Controls/InnerWindow.xaml
index 293674d..a3c832e 100644
--- a/WPFProject/Controls/InnerWindow.xaml
+++ b/WPFProject/Controls/InnerWindow.xaml
@@ -14,8 +14,8 @@
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
- <ResourceDictionary Source="/WPFProject;component/Style/colors.xaml"/>
- <ResourceDictionary Source="/WPFProject;component/Style/WindowResources.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/colors.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/WindowResources.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style x:Key="SliderThumbStyle" TargetType="{x:Type Thumb}">
diff --git a/WPFProject/Controls/MainTabControl.xaml b/WPFProject/Controls/MainTabControl.xaml
new file mode 100644
index 0000000..e2655f1
--- /dev/null
+++ b/WPFProject/Controls/MainTabControl.xaml
@@ -0,0 +1,113 @@
+锘�<UserControl x:Class="WPFProject.Controls.MainTabControl"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:local="clr-namespace:WPFProject.Controls"
+ mc:Ignorable="d"
+ d:DesignHeight="450" d:DesignWidth="800">
+ <UserControl.Resources>
+ <ResourceDictionary>
+ <ResourceDictionary.MergedDictionaries>
+ <ResourceDictionary Source="/HMI.UI;component/Style/Colors.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+
+ <Style TargetType="ListBox" x:Key="ListBoxItemStyle1">
+ <Setter Property="Background" Value="{StaticResource MainMenu}"/>
+ <Setter Property="ItemContainerStyle">
+ <Setter.Value>
+ <Style TargetType="ListBoxItem">
+ <Setter Property="Margin" Value="0"/>
+ <Setter Property="Padding" Value="0"/>
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="ListBoxItem">
+ <Border x:Name="border" Background="{StaticResource MainMenu}"
+ Padding="10" Margin="0" BorderThickness="0,0,1,0" BorderBrush="Gray">
+ <!-- 鍐呭鍛堢幇鍣� -->
+ <StackPanel>
+ <ContentPresenter Content="{TemplateBinding Content}"
+ ContentStringFormat="{TemplateBinding ContentStringFormat}"
+ ContentTemplate="{TemplateBinding ContentTemplate}" />
+ </StackPanel>
+
+ </Border>
+
+ <ControlTemplate.Triggers>
+ <Trigger Property="IsSelected" Value="True">
+ <Setter TargetName="border" Property="Background" Value="{StaticResource ButtonSelected}" />
+ </Trigger>
+
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=(ItemsControl.AlternationIndex)}" Value="0">
+ <Setter TargetName="border" Property="BorderThickness" Value="1,0,1,0" />
+ </DataTrigger>
+
+ <Trigger Property="IsMouseOver" Value="True">
+ <Setter TargetName="border" Property="Background" Value="Red" />
+ </Trigger>
+ </ControlTemplate.Triggers>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+ </Setter.Value>
+ </Setter>
+ <Setter Property="ItemsPanel">
+ <Setter.Value>
+ <ItemsPanelTemplate>
+ <StackPanel HorizontalAlignment="Left" Orientation="Horizontal"/>
+ </ItemsPanelTemplate>
+ </Setter.Value>
+ </Setter>
+ <Setter Property="ItemTemplate">
+ <Setter.Value>
+ <DataTemplate>
+ <StackPanel Orientation="Horizontal" VerticalAlignment="Center" >
+ <Image Width="20" Height="20" Margin="5" Source="{Binding Icon}"/>
+ <Label x:Name="txt" Visibility="Visible" BorderThickness="0"
+ Foreground="{StaticResource PrimaryColorContract}"
+ FontWeight="Bold"
+ FontSize="16"
+ VerticalContentAlignment="Center"
+ HorizontalAlignment="Left"
+ Content="{Binding Name}" ToolTip="{Binding Name}"/>
+ </StackPanel>
+ </DataTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+ </ResourceDictionary>
+ </UserControl.Resources>
+
+ <Grid x:Name="mainGrid">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition/>
+ </Grid.RowDefinitions>
+
+ <ListBox Grid.Row="0" x:Name="Menu" Margin="0" Padding="-1"
+ Style="{StaticResource ListBoxItemStyle1}"
+ BorderBrush="Gray"
+ BorderThickness="0,1,0,1"
+ Visibility="{Binding MenuVisibility}"
+ SelectionChanged="Menu_SelectionChanged"
+ SelectedItem="{Binding SelectedMenu}"
+ AlternationCount="{Binding MenuItemsCount}" ItemsSource="{Binding MenuItems}">
+
+ </ListBox>
+
+ <ListBox Grid.Row="1" x:Name="SubMenu" Margin="0" Padding="-1"
+ Style="{StaticResource ListBoxItemStyle1}"
+ BorderBrush="Gray"
+ Visibility="{Binding MenuVisibility}"
+ SelectedItem="{Binding SelectedSubMenu}" AlternationCount="{Binding SubMenuItemsCount}"
+ SelectionChanged="SubMenu_SelectionChanged"
+BorderThickness="0,0,0,1" ItemsSource="{Binding SubMenuItems}">
+ </ListBox>
+
+ <Border x:Name="page" Grid.Row="2" BorderThickness="0" Margin="0" Padding="0">
+
+ </Border>
+ </Grid>
+</UserControl>
diff --git a/WPFProject/Controls/MainTabControl.xaml.cs b/WPFProject/Controls/MainTabControl.xaml.cs
new file mode 100644
index 0000000..ea85aaf
--- /dev/null
+++ b/WPFProject/Controls/MainTabControl.xaml.cs
@@ -0,0 +1,156 @@
+锘縰sing System.Collections.ObjectModel;
+using System.ComponentModel;
+using System.Runtime.CompilerServices;
+using System.Windows;
+using System.Windows.Controls;
+using HMI.Base;
+using HMI.Core.Api;
+using WPFProject.UI;
+
+namespace WPFProject.Controls
+{
+ /// <summary>
+ /// MainTabControl.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class MainTabControl : UserControl, INotifyPropertyChanged
+ {
+ #region ...
+ public virtual event PropertyChangedEventHandler PropertyChanged;
+
+ protected virtual void RaisePropertyChanged(string name)
+ {
+
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
+ }
+
+ protected void RaiseAndSetIfChanged<T>(ref T old, T @new, [CallerMemberName] string propertyName = null)
+ {
+ old = @new;
+ if (propertyName != null)
+ {
+ RaisePropertyChanged(propertyName);
+ }
+ }
+ #endregion
+
+ public MainTabControl()
+ {
+ IPlugin plugin = new WorkControl();
+ MenuItems = PluginLoader.GetLoader().Menus;
+ SubMenuItems = MenuItems[0].Children;
+ this.DataContext = this;
+ InitializeComponent();
+ }
+
+ // Tab鍒囨崲浜嬩欢
+ public static readonly RoutedEvent OnTabChangeEvent =
+ EventManager.RegisterRoutedEvent("OnTabChange", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MenuTabControl));
+
+ public event RoutedEventHandler OnTabChange
+ {
+ add
+ {
+ AddHandler(OnTabChangeEvent, value);
+ }
+
+ remove
+ {
+ RemoveHandler(OnTabChangeEvent, value);
+ }
+ }
+
+ private ObservableCollection<PluginInfo> _MenuItems;
+
+ public ObservableCollection<PluginInfo> MenuItems
+ {
+ get { return _MenuItems; }
+ set
+ {
+ RaiseAndSetIfChanged(ref _MenuItems, value);
+ RaisePropertyChanged("MenuItemsCount");
+ }
+ }
+
+ public int MenuItemsCount
+ {
+ get => MenuItems == null ? 0 : MenuItems.Count;
+ }
+
+ private PluginInfo _SelectedMenu;
+
+ public PluginInfo SelectedMenu
+ {
+ get { return _SelectedMenu; }
+ set
+ {
+ RaiseAndSetIfChanged(ref _SelectedMenu, value);
+ }
+ }
+
+
+ private ObservableCollection<PluginInfo> _SubMenuItems;
+
+ public ObservableCollection<PluginInfo> SubMenuItems
+ {
+ get { return _SubMenuItems; }
+ set
+ {
+ RaiseAndSetIfChanged(ref _SubMenuItems, value);
+ RaisePropertyChanged("SubMenuItemsCount");
+ }
+ }
+
+ public int SubMenuItemsCount
+ {
+ get => MenuItems == null ? 0 : MenuItems.Count;
+ }
+
+ private PluginInfo _SelectedSubMenu;
+
+ public PluginInfo SelectedSubMenu
+ {
+ get { return _SelectedSubMenu; }
+ set => RaiseAndSetIfChanged(ref _SelectedSubMenu, value);
+ }
+
+ private Visibility _MenuVisibility = Visibility.Collapsed;
+ public Visibility MenuVisibility
+ {
+ get => _MenuVisibility;
+ set { RaiseAndSetIfChanged(ref _MenuVisibility, value); }
+ }
+
+ public void ChangeItemVisibility()
+ {
+ MenuVisibility = MenuVisibility == Visibility.Collapsed ? Visibility.Visible : Visibility.Collapsed;
+ }
+
+ private void Menu_SelectionChanged(object sender, SelectionChangedEventArgs e)
+ {
+ if (e.AddedItems?.Count > 0)
+ {
+ var data = (PluginInfo)e.AddedItems[0];
+ SubMenuItems = data?.Children;
+ }
+ }
+
+ private void SwithMenu(PluginInfo menu)
+ {
+
+ }
+
+
+ private void SubMenu_SelectionChanged(object sender, SelectionChangedEventArgs e)
+ {
+ if (e.AddedItems?.Count > 0)
+ {
+ var data = (PluginInfo)e.AddedItems[0];
+ var content = (UIElement)data.Content;
+ var last = (IPlugin)page.Child;
+ last?.DeActive();
+ page.Child = content;
+ ((IPlugin)content)?.Active();
+ }
+ }
+ }
+}
diff --git a/WPFProject/Controls/MenuTabControl.xaml b/WPFProject/Controls/MenuTabControl.xaml
index b9a6ce9..3b42b64 100644
--- a/WPFProject/Controls/MenuTabControl.xaml
+++ b/WPFProject/Controls/MenuTabControl.xaml
@@ -11,7 +11,7 @@
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
- <ResourceDictionary Source="/WPFProject;component/Style/colors.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/Colors.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style x:Key="tabItemStyle" TargetType="{x:Type ctl:IconTabItem}">
@@ -58,6 +58,88 @@
</Setter>
</Style>
+ <Style x:Key="SubControlStyle" TargetType="{x:Type TabControl}">
+ <Setter Property="BorderThickness" Value="0"/>
+ <Setter Property="BorderBrush" Value="Transparent"/>
+ <Setter Property="ItemContainerStyle" Value="{StaticResource tabItemStyle}"/>
+ <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type TabControl}">
+ <Grid x:Name="templateRoot" ClipToBounds="True" SnapsToDevicePixels="True" KeyboardNavigation.TabNavigation="Local">
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition x:Name="ColumnDefinition0" />
+ <ColumnDefinition x:Name="ColumnDefinition1" Width="0"/>
+ </Grid.ColumnDefinitions>
+ <Grid.RowDefinitions>
+ <RowDefinition x:Name="RowDefinition0" Height="Auto"/>
+ <RowDefinition x:Name="RowDefinition1" Height="*"/>
+ </Grid.RowDefinitions>
+ <!--<UniformGrid x:Name="HeaderPanel" Rows="1" Background="Transparent" Grid.Column="0" IsItemsHost="True" Margin="0" Grid.Row="0" KeyboardNavigation.TabIndex="1" Panel.ZIndex="1"/>-->
+ <ScrollViewer Visibility="{Binding ShowMenu}" Grid.Row="0" Grid.Column="0" VerticalScrollBarVisibility="Auto"
+ HorizontalScrollBarVisibility="Auto" >
+ <StackPanel Orientation="Horizontal" x:Name="HeaderPanel"
+ ScrollViewer.HorizontalScrollBarVisibility="Auto"
+ IsItemsHost="True"
+ Margin="0" KeyboardNavigation.TabIndex="1"
+ Background="{StaticResource MainMenu}"
+ Panel.ZIndex="1"/>
+ </ScrollViewer>
+
+ <!--<Line X1="0" X2="{Binding ActualWidth, RelativeSource={RelativeSource Self}}"
+ Stroke="Transparent" StrokeThickness="0.1"
+ VerticalAlignment="Bottom" Margin="0" SnapsToDevicePixels="True"/>-->
+ <Border x:Name="ContentPanel" BorderBrush="{TemplateBinding BorderBrush}"
+ BorderThickness="{TemplateBinding BorderThickness}"
+ Background="{TemplateBinding Background}"
+ Grid.Column="0" KeyboardNavigation.DirectionalNavigation="Contained"
+ Grid.Row="1" KeyboardNavigation.TabIndex="2" KeyboardNavigation.TabNavigation="Local">
+
+ <ContentPresenter x:Name="PART_SelectedContentHost"
+ ContentTemplate="{TemplateBinding SelectedContentTemplate}"
+ Content="{TemplateBinding SelectedContent}"
+ ContentStringFormat="{TemplateBinding SelectedContentStringFormat}"
+ ContentSource="SelectedContent" Margin="0"
+ SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
+
+ </Border>
+ </Grid>
+ <ControlTemplate.Triggers>
+ <Trigger Property="TabStripPlacement" Value="Bottom">
+ <Setter Property="Grid.Row" TargetName="HeaderPanel" Value="1"/>
+ <Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/>
+ <Setter Property="Height" TargetName="RowDefinition0" Value="*"/>
+ <Setter Property="Height" TargetName="RowDefinition1" Value="Auto"/>
+ </Trigger>
+ <Trigger Property="TabStripPlacement" Value="Left">
+ <Setter Property="Grid.Row" TargetName="HeaderPanel" Value="0"/>
+ <Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/>
+ <Setter Property="Grid.Column" TargetName="HeaderPanel" Value="0"/>
+ <Setter Property="Grid.Column" TargetName="ContentPanel" Value="1"/>
+ <Setter Property="Width" TargetName="ColumnDefinition0" Value="Auto"/>
+ <Setter Property="Width" TargetName="ColumnDefinition1" Value="*"/>
+ <Setter Property="Height" TargetName="RowDefinition0" Value="*"/>
+ <Setter Property="Height" TargetName="RowDefinition1" Value="0"/>
+ </Trigger>
+ <Trigger Property="TabStripPlacement" Value="Right">
+ <Setter Property="Grid.Row" TargetName="HeaderPanel" Value="0"/>
+ <Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/>
+ <Setter Property="Grid.Column" TargetName="HeaderPanel" Value="1"/>
+ <Setter Property="Grid.Column" TargetName="ContentPanel" Value="0"/>
+ <Setter Property="Width" TargetName="ColumnDefinition0" Value="*"/>
+ <Setter Property="Width" TargetName="ColumnDefinition1" Value="Auto"/>
+ <Setter Property="Height" TargetName="RowDefinition0" Value="*"/>
+ <Setter Property="Height" TargetName="RowDefinition1" Value="0"/>
+ </Trigger>
+ <Trigger Property="IsEnabled" Value="False">
+ <Setter Property="TextElement.Foreground" TargetName="templateRoot" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
+ </Trigger>
+ </ControlTemplate.Triggers>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
<Style x:Key="ControlStyle" TargetType="{x:Type TabControl}">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="BorderBrush" Value="Transparent"/>
@@ -94,12 +176,21 @@
Background="{TemplateBinding Background}"
Grid.Column="0" KeyboardNavigation.DirectionalNavigation="Contained"
Grid.Row="1" KeyboardNavigation.TabIndex="2" KeyboardNavigation.TabNavigation="Local">
- <ContentPresenter x:Name="PART_SelectedContentHost"
- ContentTemplate="{TemplateBinding SelectedContentTemplate}"
- Content="{TemplateBinding SelectedContent}"
- ContentStringFormat="{TemplateBinding SelectedContentStringFormat}"
- ContentSource="SelectedContent" Margin="0"
- SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
+
+ <TabControl x:Name="contentTab"
+ Style="{StaticResource SubControlStyle}"
+ ItemsSource="{Binding TabSelectedItem.Children,Mode=TwoWay}">
+
+
+ </TabControl>
+
+ <!--<ContentPresenter x:Name="PART_SelectedContentHost"
+ ContentTemplate="{TemplateBinding SelectedContentTemplate}"
+ Content="{TemplateBinding SelectedContent}"
+ ContentStringFormat="{TemplateBinding SelectedContentStringFormat}"
+ ContentSource="SelectedContent" Margin="0"
+ SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>-->
+
</Border>
</Grid>
<ControlTemplate.Triggers>
@@ -142,10 +233,12 @@
<Grid>
<TabControl x:Name="tabLevel_1"
+ Grid.Row="0"
Style="{StaticResource ControlStyle}" ItemsSource="{Binding Items}"
- SelectedItem="{Binding SelectedItem,Mode=TwoWay}"
+ SelectedItem="{Binding TabSelectedItem,Mode=TwoWay}"
SelectionChanged="tabLevel_1_SelectionChanged">
</TabControl>
+
</Grid>
</UserControl>
diff --git a/WPFProject/Controls/MenuTabControl.xaml.cs b/WPFProject/Controls/MenuTabControl.xaml.cs
index d257500..9a765d1 100644
--- a/WPFProject/Controls/MenuTabControl.xaml.cs
+++ b/WPFProject/Controls/MenuTabControl.xaml.cs
@@ -4,9 +4,8 @@
using System.Runtime.CompilerServices;
using System.Windows;
using System.Windows.Controls;
-using WPFProject.Events;
+using HMI.Core.Api;
using WPFProject.UI;
-using WPFProject.Utils;
namespace WPFProject.Controls
{
@@ -70,12 +69,20 @@
set => RaiseAndSetIfChanged(ref _Items, value);
}
- private IconTabItem _SelectedItem;
+ private ObservableCollection<IconTabItem> _Items_Level2;
- public IconTabItem SelectedItem
+ public ObservableCollection<IconTabItem> Items_Level2
{
- get { return _SelectedItem; }
- set => RaiseAndSetIfChanged(ref _SelectedItem, value);
+ get { return _Items_Level2; }
+ set => RaiseAndSetIfChanged(ref _Items_Level2, value);
+ }
+
+ private IconTabItem _TabSelectedItem;
+
+ public IconTabItem TabSelectedItem
+ {
+ get { return _TabSelectedItem; }
+ set => RaiseAndSetIfChanged(ref _TabSelectedItem, value);
}
@@ -99,13 +106,18 @@
InitializeComponent();
Items = new ObservableCollection<IconTabItem> {
new IconTabItem(){
- Header="123",
- Content = plugin
+ Header="111",
+ Children = new ObservableCollection<IconTabItem>{
+ new IconTabItem(){
+ Header = "112",
+ Content = plugin
+ }
+ }
},
new IconTabItem(){
- Header="321"
- },
-
+ Header="222",
+ Children = new ObservableCollection<IconTabItem>()
+ }
};
}
@@ -144,6 +156,11 @@
foreach (IconTabItem item in Items)
{
item.Visibility = ItemVisibility;
+ if (item.Children != null) {
+ foreach (var child in item.Children) {
+ child.Visibility = ItemVisibility;
+ }
+ }
}
}
}
diff --git a/WPFProject/Controls/MinInnerWindow.xaml b/WPFProject/Controls/MinInnerWindow.xaml
index 666c587..03defd0 100644
--- a/WPFProject/Controls/MinInnerWindow.xaml
+++ b/WPFProject/Controls/MinInnerWindow.xaml
@@ -10,8 +10,8 @@
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
- <ResourceDictionary Source="/WPFProject;component/Style/colors.xaml"/>
- <ResourceDictionary Source="/WPFProject;component/Style/WindowResources.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/colors.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/WindowResources.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
diff --git a/WPFProject/Entity/PluginLoadMessage.cs b/WPFProject/Entity/PluginLoadMessage.cs
new file mode 100644
index 0000000..6b2e6b4
--- /dev/null
+++ b/WPFProject/Entity/PluginLoadMessage.cs
@@ -0,0 +1,18 @@
+锘縩amespace WPFProject.Entity
+{
+ public enum PluginLoadMessageType
+ {
+ Message, Completed, Error
+ }
+
+ public class PluginLoadMessage
+ {
+ public PluginLoadMessageType Type { get; set; }
+ public string Message { get; set; }
+ public int Total { get; set; }
+ public int Completed { get; set; }
+ public int Error { get; set; }
+ public bool Success { get; set; }
+ public PluginLoadMessage() { }
+ }
+}
diff --git a/WPFProject/Entity/PluginSettingInfo.cs b/WPFProject/Entity/PluginSettingInfo.cs
new file mode 100644
index 0000000..4a61b29
--- /dev/null
+++ b/WPFProject/Entity/PluginSettingInfo.cs
@@ -0,0 +1,15 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WPFProject.Entity
+{
+ public class PluginSettingInfo
+ {
+ public string Name { get; set; }
+ public object View { get; set; }
+ public object Setting { get; set; }
+ }
+}
diff --git a/WPFProject/Icon/xinzeng_1.png b/WPFProject/Icon/xinzeng_1.png
new file mode 100644
index 0000000..0b16aa2
--- /dev/null
+++ b/WPFProject/Icon/xinzeng_1.png
Binary files differ
diff --git a/WPFProject/LoadingWindow.xaml b/WPFProject/LoadingWindow.xaml
new file mode 100644
index 0000000..a9c532f
--- /dev/null
+++ b/WPFProject/LoadingWindow.xaml
@@ -0,0 +1,20 @@
+锘�<Window x:Class="WPFProject.LoadingWindow"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:local="clr-namespace:WPFProject"
+ mc:Ignorable="d"
+ WindowStartupLocation="CenterScreen"
+ WindowStyle="None"
+ Loaded="Window_Loaded"
+ Title="LoadingWindow" Height="450" Width="800">
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition/>
+ <RowDefinition Height="Auto"/>
+ </Grid.RowDefinitions>
+ <TextBox x:Name="Console" IsReadOnly="True"/>
+ <Button Grid.Row="1" Content="涓嬩竴姝�" Click="Button_Click"/>
+ </Grid>
+</Window>
diff --git a/WPFProject/LoadingWindow.xaml.cs b/WPFProject/LoadingWindow.xaml.cs
new file mode 100644
index 0000000..a9755db
--- /dev/null
+++ b/WPFProject/LoadingWindow.xaml.cs
@@ -0,0 +1,36 @@
+锘縰sing System.Windows;
+using HMI.Base;
+
+namespace WPFProject
+{
+ /// <summary>
+ /// LoadingWindow.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class LoadingWindow : Window
+ {
+ public LoadingWindow()
+ {
+ InitializeComponent();
+ }
+
+ private void Window_Loaded(object sender, RoutedEventArgs e)
+ {
+ PluginLoader loader = PluginLoader.GetLoader();
+ loader.LoadMessageAppend += Loader_LoadMessageAppend;
+ loader.LoadMenuAndPlugin();
+ Button_Click(null,null);
+ }
+
+ private void Loader_LoadMessageAppend(object sender, string e)
+ {
+ Console.Text += $"{e}\r\n";
+ }
+
+ private void Button_Click(object sender, RoutedEventArgs e)
+ {
+ PanuonWindow window = new PanuonWindow();
+ window.Show();
+ this.Close();
+ }
+ }
+}
diff --git a/WPFProject/MainWindow.xaml b/WPFProject/MainWindow.xaml
index 1db740a..1b5359a 100644
--- a/WPFProject/MainWindow.xaml
+++ b/WPFProject/MainWindow.xaml
@@ -17,8 +17,8 @@
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
- <ResourceDictionary Source="/WPFProject;component/Style/colors.xaml"/>
- <ResourceDictionary Source="/WPFProject;component/Style/WindowResources.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/colors.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/WindowResources.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
@@ -39,15 +39,19 @@
<StackPanel Grid.Column="0"></StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Style="{StaticResource WindowButton}" x:Name="openCloseButton" Click="Button_Click_2"></Button>
- <Button Style="{StaticResource WindowButton}" Click="Button_Click"></Button>
- <Button Style="{StaticResource WindowButton}" Click="Button_Click"></Button>
- <Button Style="{StaticResource WindowCloseButton}" Click="Button_Click_1"></Button>
+ <Button Style="{StaticResource WindowButton}" Click="Min_Click"></Button>
+ <Button Style="{StaticResource WindowButton}" Click="Max_Click"></Button>
+ <Button Style="{StaticResource WindowCloseButton}" Click="Close_Click"></Button>
</StackPanel>
</Grid>
- <ctl:MenuTabControl Grid.Row="1" x:Name="mainControl" OnTabChange="mainControl_OnTabChange">
+ <ctl:MainTabControl Grid.Row="1" x:Name="menuTab" OnTabChange="menuTab_OnTabChange">
- </ctl:MenuTabControl>
+ </ctl:MainTabControl>
+
+ <!--<ctl:MenuTabControl Grid.Row="1" x:Name="menuTab" OnTabChange="menuTab_OnTabChange">
+
+ </ctl:MenuTabControl>-->
<StatusBar Grid.Row="2" Background="{StaticResource MainStatusBar}">99999</StatusBar>
diff --git a/WPFProject/MainWindow.xaml.cs b/WPFProject/MainWindow.xaml.cs
index 337c43e..d458e3c 100644
--- a/WPFProject/MainWindow.xaml.cs
+++ b/WPFProject/MainWindow.xaml.cs
@@ -1,8 +1,6 @@
锘縰sing System;
using System.Windows;
using System.Windows.Media;
-using WPFProject.Events;
-using WPFProject.Utils;
namespace WPFProject
{
@@ -16,12 +14,17 @@
InitializeComponent();
}
- private void Button_Click(object sender, RoutedEventArgs e)
+ private void Min_Click(object sender, RoutedEventArgs e)
+ {
+ WindowState = WindowState.Minimized;
+ }
+
+ private void Max_Click(object sender, RoutedEventArgs e)
{
WindowState = WindowState == WindowState.Maximized ? WindowState.Normal : WindowState.Maximized;
}
- private void Button_Click_1(object sender, RoutedEventArgs e)
+ private void Close_Click(object sender, RoutedEventArgs e)
{
Application.Current.Shutdown();
}
@@ -31,19 +34,19 @@
// Resize.SetIsResizeable(this, true);
}
- private void mainControl_OnTabChange(object sender, RoutedEventArgs e)
+ private void menuTab_OnTabChange(object sender, RoutedEventArgs e)
{
-
+
}
private void Button_Click_2(object sender, RoutedEventArgs e)
{
-
+
double temp = openCloseButton.RenderTransform.Value.Determinant;
openCloseButton.RenderTransformOrigin = new Point(0.5, 0.5);
- ScaleTransform verticalFlipTransform = new ScaleTransform(1, temp*-1);
+ ScaleTransform verticalFlipTransform = new ScaleTransform(1, temp * -1);
openCloseButton.RenderTransform = verticalFlipTransform;
- mainControl.ChangeItemVisibility();
+ menuTab.ChangeItemVisibility();
}
}
}
diff --git a/WPFProject/MigrationBackup/fde93b81/VisionBuilder.Core/NuGetUpgradeLog.html b/WPFProject/MigrationBackup/fde93b81/VisionBuilder.Core/NuGetUpgradeLog.html
new file mode 100644
index 0000000..990a35a
--- /dev/null
+++ b/WPFProject/MigrationBackup/fde93b81/VisionBuilder.Core/NuGetUpgradeLog.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html>
+<!-- saved from url=(0014)about:internet -->
+
+ <html xmlns:msxsl="urn:schemas-microsoft-com:xslt"><head><meta content="en-us" http-equiv="Content-Language" /><meta content="text/html; charset=utf-16" http-equiv="Content-Type" /><title _locID="NuGetUpgradeReportTitle">
+ NuGetMigrationLog
+ </title><style>
+
+ /* Body style, for the entire document */
+ body
+ {
+ background: #F3F3F4;
+ color: #1E1E1F;
+ font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
+ font-size: 12pt;
+ padding: 0;
+ margin: 0;
+ }
+
+ /* Header1 style, used for the main title */
+ h1
+ {
+ padding: 10px 0px 10px 10px;
+ font-size: 21pt;
+ background-color: #E2E2E2;
+ border-bottom: 1px #C1C1C2 solid;
+ color: #201F20;
+ margin: 0;
+ font-weight: normal;
+ }
+
+ /* Header2 style, used for "Overview" and other sections */
+ h2
+ {
+ font-size: 18pt;
+ font-weight: normal;
+ padding: 15px 0 5px 0;
+ margin: 0;
+ }
+
+ /* Header3 style, used for sub-sections, such as project name */
+ h3
+ {
+ font-weight: normal;
+ font-size: 15pt;
+ margin: 0;
+ padding: 15px 0 5px 0;
+ background-color: transparent;
+ }
+
+ .info-text
+ {
+ margin: 0px 0 0.75em 0;
+ }
+
+ /* Color all hyperlinks one color */
+ a
+ {
+ color: #1382CE;
+ }
+
+ /* Table styles */
+ table
+ {
+ border-spacing: 0 0;
+ border-collapse: collapse;
+ font-size: 11pt;
+ }
+
+ table th
+ {
+ background: #E7E7E8;
+ text-align: left;
+ text-decoration: none;
+ font-weight: normal;
+ padding: 3px 6px 3px 6px;
+ }
+
+ table td
+ {
+ vertical-align: top;
+ padding: 3px 6px 5px 5px;
+ margin: 0px;
+ border: 1px solid #E7E7E8;
+ background: #F7F7F8;
+ }
+
+ /* Local link is a style for hyperlinks that link to file:/// content, there are lots so color them as 'normal' text until the user mouse overs */
+ .localLink
+ {
+ color: #1E1E1F;
+ background: #EEEEED;
+ text-decoration: none;
+ }
+
+ .localLink:hover
+ {
+ color: #1382CE;
+ background: #FFFF99;
+ text-decoration: none;
+ }
+
+ .issueCell
+ {
+ width: 100%;
+ }
+
+ .packageIssue
+ {
+ margin-left: 25px;
+ }
+
+ /* Padding around the content after the h1 */
+ #content
+ {
+ padding: 0px 20px 20px 20px;
+ }
+
+ .issues table
+ {
+ width: 97%;
+ }
+
+ /* All Icons */
+ .IconSuccessEncoded, .IconInfoEncoded, .IconWarningEncoded, .IconErrorEncoded
+ {
+ min-width:18px;
+ min-height:18px;
+ background-repeat:no-repeat;
+ background-position:center;
+ }
+
+ .IconSuccessEncoded
+ {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABcElEQVR4Xq2TsUsCURzHv15g8ZJcBWlyiYYgCIWcb9DFRRwMW5TA2c0/QEFwFkxxUQdxVlBwCYWOi6IhWgQhBLHJUCkhLr/BW8S7gvrAg+N+v8/v+x68Z8MGy+XSCyABQAXgBgHGALoASkIIDWSLeLBetdHryMjd5IxQPWT4rn1c/P7+xxp72Cs9m5SZ0Bq2vPnbPFafK2zDvmNHypdC0BPkLlQhxJsCAhQoZwdZU5mwxh720qGo8MzTxTTKZDPCx2HoVzp6lz0Q9tKhyx0kGs8Ny+TkWRKk8lCROwEduhyg9l/6lunOPSfmH3NUH6uQ0KHLAe7JYvJjevm+DAMGJHToKtigE+vwvIidxLamb8IBY9e+C5LiXREkfho3TSd06HJA13/oh6T51MTsfQbHrsMynQ5dDihFjiK8JJAU9AKIWTp76dCVN7HWHrajmUEGvyF9nkbAE6gLIS7kTUyuf2gscLoJrElZo/Mvj+nPz/kLTmfnEwP3tB0AAAAASUVORK5CYII=);
+ }
+
+ .IconInfoEncoded
+ {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR4Xs2TsUoDQRRF7wwoziokjZUKadInhdhukR9YP8DMX1hYW+QvdsXa/QHBbcXC7W0CamWTQnclFutceIQJwwaWNLlwm5k5d94M76mmaeCrrmsLYOocY12FcxZFUeozCqKqqgYA8uevv1H6VuPxcwlfk5N92KHBxfFeCSAxxswlYAW/Xr989x/mv9gkhtyMDhcAxgzRsp7flj8B/HF1RsMXq+NZMkopaHe7lbKxQUEIGbKsYNoGn969060hZBkQex/W8oRQwsQaW2o3Ago2SVcJUzAgY3N0lTCZZm+zPS8HB51gMmS1DEYyOz9acKO1D8JWTlafKIMxdhvlfdyT94Vv5h7P8Ky7nQzACmhvKq3zk3PjW9asz9D/1oigecsioooAAAAASUVORK5CYII=);
+ }
+
+ .IconWarningEncoded
+ {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAx0lEQVR4XpWSMQ7CMAxFf4xAyBMLCxMrO8dhaBcuwdCJS3RJBw7SA/QGTCxdWJgiQYWKXJWKIXHIlyw5lqr34tQgEOdcBsCOx5yZK3hCCKdYXneQkh4pEfqzLfu+wVDSyyzFoJjfz9NB+pAF+eizx2Vruts0k15mPgvS6GYvpVtQhB61IB/dk6AF6fS4Ben0uIX5odtFe8Q/eW1KvFeH4e8khT6+gm5B+t3juyDt7n0jpe+CANTd+oTUjN/U3yVaABnSUjFz/gFq44JaVSCXeQAAAABJRU5ErkJggg==);
+ }
+
+ .IconErrorEncoded
+ {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABQElEQVR4XqWTvUoEQRCE6wYPZUA80AfwAQz23uCMjA7MDRQEIzPBVEyNTQUFIw00vcQTTMzuAh/AxEQQT8HF/3G/oGGnEUGuoNnd6qoZuqltyKEsyzVJq5I6rnUp6SjGeGhESikzzlc1eL7opfuVbrqbU1Zw9NCgtQMaZpY0eNnaaL2fHusvTK5vKu7sjSS1Y4y3QUA6K3e3Mau5UFDyMP7tYF9o8cAHZv68vipoIJg971PZIZ5HiwdvYGGvFVFHmGmZ2MxwmQYPXubPl9Up0tfoMQGetXd6mRbvhBw+boZ6WF7Mbv1+GsHRk0fQmPAH1GfmZirbCfDJ61tw3Px8/8pZsPAG4jlVhcPgZ7adwNWBB68lkRQWFiTgFlbnLY3DGGM7izIJIyT/jjIvEJw6fdJTc6krDzh6aMwMP9bvDH4ADSsa9uSWVJkAAAAASUVORK5CYII=);
+ }
+
+ </style></head><body><h1>
+ NuGet Migration Report - VisionBuilder.Core</h1><div id="content"><h2 _locID="OverviewTitle">Overview</h2><div class="info-text">Migration to PackageReference was completed successfully. Please build and run your solution to verify that all packages are available.</div><div class="info-text">
+ If you run into any problems, have feedback, questions, or concerns, please
+ <a href="https://github.com/NuGet/Home/issues/">file an issue on the NuGet GitHub repository.</a></div><div class="info-text">
+ Changed files and this report have been backed up here:
+ <a href="C:\Main\Workspace\VisualStudio\WPFProject\WPFProject\MigrationBackup\fde93b81\VisionBuilder.Core">C:\Main\Workspace\VisualStudio\WPFProject\WPFProject\MigrationBackup\fde93b81\VisionBuilder.Core</a></div><div class="info-text"><a href="https://aka.ms/nuget-pc2pr-migrator-rollback">Help me rollback to packages.config</a></div><h2 _locID="PackagesTitle">Packages processed</h2><h3 _locID="IncludePackagesTitle">Top-level dependencies:</h3><div class="issues"><table><tr><th class="issueCell">Package Id</th><th>Version</th></tr><tr><td class="issueCell"><span>CommunityToolkit.Mvvm</span></td><td><span>
+ v8.2.2</span></td></tr></table></div><p /><h3 _locID="IncludePackagesTitle">Transitive dependencies:</h3><div class="issues"><table><tr><th class="issueCell">Package Id</th><th>Version</th></tr><tr><td class="issueCell"><span>Microsoft.Bcl.AsyncInterfaces</span></td><td><span>
+ v7.0.0</span></td></tr><tr><td class="issueCell"><span>System.Buffers</span></td><td><span>
+ v4.5.1</span></td></tr><tr><td class="issueCell"><span>System.ComponentModel.Annotations</span></td><td><span>
+ v5.0.0</span></td></tr><tr><td class="issueCell"><span>System.Memory</span></td><td><span>
+ v4.5.5</span></td></tr><tr><td class="issueCell"><span>System.Numerics.Vectors</span></td><td><span>
+ v4.5.0</span></td></tr><tr><td class="issueCell"><span>System.Runtime.CompilerServices.Unsafe</span></td><td><span>
+ v6.0.0</span></td></tr><tr><td class="issueCell"><span>System.Threading.Tasks.Extensions</span></td><td><span>
+ v4.5.4</span></td></tr></table></div><h2 _locID="IssuesTitle">Package compatibility issues</h2><div class="issues"><table><tr><th /><th class="issueCell" _locID="DescriptionTableHeader">Description</th></tr><tr><td class="IconInfoEncoded" /><td class="issueCell">
+ No issues were found.
+ </td></tr></table></div></div></body></html>
\ No newline at end of file
diff --git a/WPFProject/MigrationBackup/fde93b81/VisionBuilder.Core/VisionBuilder.Core.csproj b/WPFProject/MigrationBackup/fde93b81/VisionBuilder.Core/VisionBuilder.Core.csproj
new file mode 100644
index 0000000..df6199c
--- /dev/null
+++ b/WPFProject/MigrationBackup/fde93b81/VisionBuilder.Core/VisionBuilder.Core.csproj
@@ -0,0 +1,93 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{3E3BF44A-0B69-45C5-9512-528CB48A7106}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>VisionBuilder.Core</RootNamespace>
+ <AssemblyName>VisionBuilder.Core</AssemblyName>
+ <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <Deterministic>true</Deterministic>
+ <NuGetPackageImportStamp>
+ </NuGetPackageImportStamp>
+ <TargetFrameworkProfile />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="CommunityToolkit.Mvvm, Version=8.2.0.0, Culture=neutral, PublicKeyToken=4aff67a105548ee2, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\CommunityToolkit.Mvvm.8.2.2\lib\netstandard2.0\CommunityToolkit.Mvvm.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\Microsoft.Bcl.AsyncInterfaces.7.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
+ </Reference>
+ <Reference Include="System.ComponentModel.Annotations, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\System.ComponentModel.Annotations.5.0.0\lib\net461\System.ComponentModel.Annotations.dll</HintPath>
+ </Reference>
+ <Reference Include="System.ComponentModel.DataAnnotations" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Numerics" />
+ <Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
+ <HintPath>..\WPFProject\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Api\IProgram.cs" />
+ <Compile Include="Api\ISequnce.cs" />
+ <Compile Include="Api\IStep.cs" />
+ <Compile Include="Api\IStepRunner.cs" />
+ <Compile Include="Entity\Param.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="TestModel.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="app.config" />
+ <None Include="packages.config" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <Import Project="..\WPFProject\packages\CommunityToolkit.Mvvm.8.2.2\build\netstandard2.0\CommunityToolkit.Mvvm.targets" Condition="Exists('..\WPFProject\packages\CommunityToolkit.Mvvm.8.2.2\build\netstandard2.0\CommunityToolkit.Mvvm.targets')" />
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+ <PropertyGroup>
+ <ErrorText>杩欏彴璁$畻鏈轰笂缂哄皯姝ら」鐩紩鐢ㄧ殑 NuGet 绋嬪簭鍖呫�備娇鐢ㄢ�淣uGet 绋嬪簭鍖呰繕鍘熲�濆彲涓嬭浇杩欎簺绋嬪簭鍖呫�傛湁鍏虫洿澶氫俊鎭紝璇峰弬瑙� http://go.microsoft.com/fwlink/?LinkID=322105銆傜己灏戠殑鏂囦欢鏄� {0}銆�</ErrorText>
+ </PropertyGroup>
+ <Error Condition="!Exists('..\WPFProject\packages\CommunityToolkit.Mvvm.8.2.2\build\netstandard2.0\CommunityToolkit.Mvvm.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\WPFProject\packages\CommunityToolkit.Mvvm.8.2.2\build\netstandard2.0\CommunityToolkit.Mvvm.targets'))" />
+ </Target>
+</Project>
\ No newline at end of file
diff --git a/WPFProject/MigrationBackup/fde93b81/VisionBuilder.Core/packages.config b/WPFProject/MigrationBackup/fde93b81/VisionBuilder.Core/packages.config
new file mode 100644
index 0000000..eb9f3e3
--- /dev/null
+++ b/WPFProject/MigrationBackup/fde93b81/VisionBuilder.Core/packages.config
@@ -0,0 +1,11 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="CommunityToolkit.Mvvm" version="8.2.2" targetFramework="net472" />
+ <package id="Microsoft.Bcl.AsyncInterfaces" version="7.0.0" targetFramework="net472" />
+ <package id="System.Buffers" version="4.5.1" targetFramework="net472" />
+ <package id="System.ComponentModel.Annotations" version="5.0.0" targetFramework="net472" />
+ <package id="System.Memory" version="4.5.5" targetFramework="net472" />
+ <package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
+ <package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net472" />
+ <package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net472" />
+</packages>
\ No newline at end of file
diff --git a/WPFProject/Models/Program.cs b/WPFProject/Models/Program.cs
index 2d42db7..e3b126c 100644
--- a/WPFProject/Models/Program.cs
+++ b/WPFProject/Models/Program.cs
@@ -2,8 +2,8 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Xml.Serialization;
-using VisionBuilder.Core.Api;
-using VisionBuilder.Core.Entity;
+using HMI.Core.Api;
+using HMI.Core.Entity;
namespace WPFProject.Models
{
diff --git a/WPFProject/Models/Sequence.cs b/WPFProject/Models/Sequence.cs
index f563b94..52b1492 100644
--- a/WPFProject/Models/Sequence.cs
+++ b/WPFProject/Models/Sequence.cs
@@ -1,7 +1,5 @@
-锘縰sing System.Collections.Generic;
-using System.Collections.ObjectModel;
+锘縰sing System.Collections.ObjectModel;
using System.Xml.Serialization;
-using VisionBuilder.Core.Api;
namespace WPFProject.Models
{
diff --git a/WPFProject/Models/Step.cs b/WPFProject/Models/Step.cs
index 2e4fbab..4e26b1d 100644
--- a/WPFProject/Models/Step.cs
+++ b/WPFProject/Models/Step.cs
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Reflection;
using System.Xml.Serialization;
-using VisionBuilder.Core.Api;
+using HMI.Core.Api;
namespace WPFProject.Models
{
diff --git a/WPFProject/PanuonWindow.xaml b/WPFProject/PanuonWindow.xaml
new file mode 100644
index 0000000..4f54589
--- /dev/null
+++ b/WPFProject/PanuonWindow.xaml
@@ -0,0 +1,58 @@
+锘�<pu:WindowX x:Class="WPFProject.PanuonWindow"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:local="clr-namespace:WPFProject"
+ xmlns:pw="https://opensource.panuon.com/wpf"
+ xmlns:pu="https://opensource.panuon.com/wpf-ui"
+ xmlns:ctl="clr-namespace:WPFProject.Controls"
+ mc:Ignorable="d"
+ WindowStartupLocation="CenterOwner"
+ WindowState="Maximized"
+ x:Name="window"
+ BorderBrush="{StaticResource MainBorder}"
+ Loaded="window_Loaded"
+ pu:WindowXCaption.Background="{StaticResource MainBorder}"
+ pu:WindowXCaption.Foreground="#FFF" d:DesignHeight="115.146" d:DesignWidth="341.223">
+
+ <pu:WindowXCaption.HeaderTemplate>
+ <DataTemplate>
+ <StackPanel DataContext="{Binding ElementName=window}" Orientation="Horizontal"
+ Margin="5,0,0,0">
+ <Image Source="{Binding WindowLogo}"
+ RenderOptions.BitmapScalingMode="HighQuality"
+ Height="{StaticResource TitleFontSize}" />
+ <TextBlock FontSize="{StaticResource TitleFontSize}" VerticalAlignment="Center" Text="{Binding WindowTitle}"/>
+ </StackPanel>
+ </DataTemplate>
+ </pu:WindowXCaption.HeaderTemplate>
+
+ <pu:WindowXCaption.ExtendControl>
+ <StackPanel Orientation="Horizontal">
+ <Button x:Name="BtnSwitchTheme"
+ FontSize="18"
+ ToolTip="Light / Dark"
+ Style="{StaticResource {x:Static pu:WindowXCaption.MinimizeButtonStyleKey}}"
+ FontFamily="/HMI.UI;component/Resources/Font/#iconfont"
+ Content=""
+ Click="Button_Click_2"/>
+ </StackPanel>
+ </pu:WindowXCaption.ExtendControl>
+
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition/>
+ <RowDefinition Height="30"/>
+ </Grid.RowDefinitions>
+
+ <ctl:MainTabControl Grid.Row="0" x:Name="menuTab">
+
+ </ctl:MainTabControl>
+
+ <!--<ctl:MenuTabControl Grid.Row="1" x:Name="menuTab" OnTabChange="menuTab_OnTabChange"> </ctl:MenuTabControl>-->
+
+
+ <StatusBar Grid.Row="1" Background="{StaticResource MainStatusBar}">99999</StatusBar>
+ </Grid>
+</pu:WindowX>
diff --git a/WPFProject/PanuonWindow.xaml.cs b/WPFProject/PanuonWindow.xaml.cs
new file mode 100644
index 0000000..d59e870
--- /dev/null
+++ b/WPFProject/PanuonWindow.xaml.cs
@@ -0,0 +1,93 @@
+锘縰sing System;
+using System.IO;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using HandyControl.Tools.Extension;
+using HMI.Core.Api;
+using HMI.Core.Setting;
+using HMI.Core.Util;
+using HMI.UI.Util;
+using Panuon.WPF.UI;
+using WPFProject.Utils;
+
+namespace WPFProject
+{
+ /// <summary>
+ /// PanuonWindow.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class PanuonWindow : WindowX
+ {
+ public PanuonWindow()
+ {
+ ToastHelper.Register(new MainToastHandler());
+ DataContext = this;
+ RefrshConfig();
+ InitializeComponent();
+ }
+
+ private void RefrshConfig()
+ {
+ WindowTitle = SystemSetting.Instance.WindowTitle;
+ try
+ {
+ WindowLogo = new BitmapImage(new Uri(Path.Combine(PathHelper.IconFolder,
+ SystemSetting.Instance.LogoPath)));
+ }
+ catch (Exception ex)
+ {
+ WindowLogo = null;
+ }
+ }
+
+ private string windowTitle;
+
+ public string WindowTitle
+ {
+ get { return windowTitle; }
+ set { Set(ref windowTitle, value); }
+ }
+
+ private BitmapImage windowLogo;
+
+ public BitmapImage WindowLogo
+ {
+ get { return windowLogo; }
+ set { Set(ref windowLogo, value); }
+ }
+
+ private void Button_Click_2(object sender, RoutedEventArgs e)
+ {
+ Button btn = (Button)sender;
+ double temp = btn.RenderTransform.Value.Determinant;
+ btn.RenderTransformOrigin = new Point(0.5, 0.5);
+ ScaleTransform verticalFlipTransform = new ScaleTransform(1, temp * -1);
+ btn.RenderTransform = verticalFlipTransform;
+ menuTab.ChangeItemVisibility();
+ }
+
+ private void window_Loaded(object sender, RoutedEventArgs e)
+ {
+ SystemSetting.SystemSettingChanged += SystemSetting_SystemSettingChanged;
+ }
+
+ private void SystemSetting_SystemSettingChanged(object sender, SystemSetting e)
+ {
+ RefrshConfig();
+ }
+
+ //private void BaseWindow_Loaded(object sender, RoutedEventArgs e)
+ //{
+ // var s = (Style)this.Resources["WindowButton"];
+ // Button button = new Button
+ // {
+ // Content = "\ue60e",
+ // Style = (Style)this.Resources["WindowButton"]
+ // };
+ // WindowChrome.SetIsHitTestVisibleInChrome(button, true);
+ // button.Click += Button_Click_2;
+ // this.InsertButton(button, 0);
+ //}
+ }
+}
diff --git a/WPFProject/Properties/AssemblyInfo.cs b/WPFProject/Properties/AssemblyInfo.cs
index 77f7d3a..d748efd 100644
--- a/WPFProject/Properties/AssemblyInfo.cs
+++ b/WPFProject/Properties/AssemblyInfo.cs
@@ -3,6 +3,8 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;
+using log4net;
+using log4net.Config;
// 鏈夊叧绋嬪簭闆嗙殑涓�鑸俊鎭敱浠ヤ笅
// 鎺у埗銆傛洿鏀硅繖浜涚壒鎬у�煎彲淇敼
@@ -53,3 +55,4 @@
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
\ No newline at end of file
diff --git a/WPFProject/Style/Colors.xaml b/WPFProject/Style/Colors.xaml
deleted file mode 100644
index 845ba16..0000000
--- a/WPFProject/Style/Colors.xaml
+++ /dev/null
@@ -1,17 +0,0 @@
-锘�<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
- <Brush x:Key="MainBorder">#0d4d84</Brush>
- <Brush x:Key="MainMenu">#1d6eb2</Brush>
- <Brush x:Key="ChildBorder">#3692e1</Brush>
- <Brush x:Key="MainStatusBar">#1d6eb2</Brush>
-
- <Brush x:Key="SecondaryImportant">Orange</Brush>
- <Brush x:Key="Important">#e17933</Brush>
- <Brush x:Key="ImportantFont">#FFF</Brush>
-
-
- <Brush x:Key="ButtonColor">#103156</Brush>
- <Brush x:Key="ButtonSelected">#02579E</Brush>
- <Brush x:Key="ButtonFont">White</Brush>
- <Brush x:Key="ButtonFontSelected">White</Brush>
-</ResourceDictionary>
\ No newline at end of file
diff --git a/WPFProject/Style/CommonTree.xaml b/WPFProject/Style/CommonTree.xaml
index 7055e27..0d1cb1e 100644
--- a/WPFProject/Style/CommonTree.xaml
+++ b/WPFProject/Style/CommonTree.xaml
@@ -5,7 +5,7 @@
>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml"/>
- <ResourceDictionary Source="/WPFProject;component/Style/colors.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/colors.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="TreeViewItem" BasedOn="{StaticResource TreeViewItemBaseStyle}">
diff --git a/WPFProject/Style/MainTab.xaml b/WPFProject/Style/MainTab.xaml
index 129964b..b90c76d 100644
--- a/WPFProject/Style/MainTab.xaml
+++ b/WPFProject/Style/MainTab.xaml
@@ -2,7 +2,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<ResourceDictionary.MergedDictionaries>
- <ResourceDictionary Source="/WPFProject;component/Style/colors.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/colors.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style x:Key="tabItemStyle" TargetType="TabItem">
diff --git a/WPFProject/TestWindow.xaml b/WPFProject/TestWindow.xaml
new file mode 100644
index 0000000..0e9ddb6
--- /dev/null
+++ b/WPFProject/TestWindow.xaml
@@ -0,0 +1,37 @@
+锘�<ui:BaseWindow x:Class="WPFProject.TestWindow"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:local="clr-namespace:WPFProject"
+ xmlns:ui="clr-namespace:HMI.UI;assembly=HMI.UI"
+ xmlns:ctl="clr-namespace:WPFProject.Controls"
+ mc:Ignorable="d"
+ Loaded="BaseWindow_Loaded"
+ WindowState="Maximized"
+ Style="{StaticResource BaseWindow}"
+ Title="TestWindow">
+ <Window.Resources>
+ <ResourceDictionary>
+ <ResourceDictionary.MergedDictionaries>
+ <ResourceDictionary Source="/HMI.UI;component/Style/WindowResources.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+ </ResourceDictionary>
+ </Window.Resources>
+
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition/>
+ <RowDefinition Height="30"/>
+ </Grid.RowDefinitions>
+
+ <ctl:MainTabControl Grid.Row="0" x:Name="menuTab" OnTabChange="menuTab_OnTabChange">
+
+ </ctl:MainTabControl>
+
+ <!--<ctl:MenuTabControl Grid.Row="1" x:Name="menuTab" OnTabChange="menuTab_OnTabChange"> </ctl:MenuTabControl>-->
+
+
+ <StatusBar Grid.Row="1" Background="{StaticResource MainStatusBar}">99999</StatusBar>
+ </Grid>
+</ui:BaseWindow>
diff --git a/WPFProject/TestWindow.xaml.cs b/WPFProject/TestWindow.xaml.cs
new file mode 100644
index 0000000..9feb282
--- /dev/null
+++ b/WPFProject/TestWindow.xaml.cs
@@ -0,0 +1,57 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+using HMI.UI;
+
+namespace WPFProject
+{
+ /// <summary>
+ /// TestWindow.xaml 鐨勪氦浜掗�昏緫
+ /// </summary>
+ public partial class TestWindow : BaseWindow
+ {
+ public TestWindow()
+ {
+ InitializeComponent();
+ }
+
+ private void Button_Click_2(object sender, RoutedEventArgs e)
+ {
+ Button btn = (Button)sender;
+ double temp = btn.RenderTransform.Value.Determinant;
+ btn.RenderTransformOrigin = new Point(0.5, 0.5);
+ ScaleTransform verticalFlipTransform = new ScaleTransform(1, temp * -1);
+ btn.RenderTransform = verticalFlipTransform;
+ menuTab.ChangeItemVisibility();
+ }
+
+ private void menuTab_OnTabChange(object sender, RoutedEventArgs e)
+ {
+
+ }
+
+ private void BaseWindow_Loaded(object sender, RoutedEventArgs e)
+ {
+ var s = (Style)this.Resources["WindowButton"];
+ Button button = new Button
+ {
+ Content = "\ue60e",
+ Style = (Style)this.Resources["WindowButton"]
+ };
+ WindowChrome.SetIsHitTestVisibleInChrome(button, true);
+ button.Click += Button_Click_2;
+ this.InsertButton(button,0);
+ }
+ }
+}
diff --git a/WPFProject/UI/BottomBar.xaml.cs b/WPFProject/UI/BottomBar.xaml.cs
index 0d2d80d..fccca99 100644
--- a/WPFProject/UI/BottomBar.xaml.cs
+++ b/WPFProject/UI/BottomBar.xaml.cs
@@ -15,8 +15,6 @@
InitializeComponent();
}
-
-
public void AddMinWindow(MinInnerWindow min)
{
stackPanel.Children.Add(min);
diff --git a/WPFProject/UI/StepSetting.xaml b/WPFProject/UI/StepSetting.xaml
index 5650b51..8c8cb5c 100644
--- a/WPFProject/UI/StepSetting.xaml
+++ b/WPFProject/UI/StepSetting.xaml
@@ -12,7 +12,7 @@
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml"/>
- <ResourceDictionary Source="/WPFProject;component/Style/colors.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/colors.xaml"/>
<ResourceDictionary Source="/WPFProject;component/Style/MainTab.xaml"/>
</ResourceDictionary.MergedDictionaries>
diff --git a/WPFProject/UI/Test/FunctionSetting.xaml b/WPFProject/UI/Test/FunctionSetting.xaml
index a54d9e2..794b0ea 100644
--- a/WPFProject/UI/Test/FunctionSetting.xaml
+++ b/WPFProject/UI/Test/FunctionSetting.xaml
@@ -16,7 +16,7 @@
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml"/>
- <ResourceDictionary Source="/WPFProject;component/Style/colors.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/Colors.xaml"/>
<ResourceDictionary Source="/WPFProject;component/Style/CommonTree.xaml"/>
<ResourceDictionary Source="/WPFProject;component/Style/MainTab.xaml"/>
</ResourceDictionary.MergedDictionaries>
diff --git a/WPFProject/UI/Test/SequnceList.xaml b/WPFProject/UI/Test/SequnceList.xaml
index dc3d834..2a47d96 100644
--- a/WPFProject/UI/Test/SequnceList.xaml
+++ b/WPFProject/UI/Test/SequnceList.xaml
@@ -15,8 +15,8 @@
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml"/>
- <ResourceDictionary Source="/WPFProject;component/Style/colors.xaml"/>
- <ResourceDictionary Source="/WPFProject;component/Style/WindowResources.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/Colors.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/WindowResources.xaml"/>
<ResourceDictionary Source="/WPFProject;component/Style/ListViewStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
@@ -193,7 +193,7 @@
ItemsSource="{Binding Steps}">
<DataGrid.Columns>
- <DataGridTextColumn IsReadOnly="True" Binding="{Binding Index}" Header="搴忓彿"/>
+ <DataGridTextColumn IsReadOnly="True" Binding="{Binding Index}" Header="#"/>
<DataGridTextColumn Header="鏍囬1" Binding="{Binding Name}"></DataGridTextColumn>
<DataGridTextColumn Header="鏍囬2" Binding="{Binding Name}"></DataGridTextColumn>
diff --git a/WPFProject/UI/WorkControl.xaml b/WPFProject/UI/WorkControl.xaml
index e549395..84bb897 100644
--- a/WPFProject/UI/WorkControl.xaml
+++ b/WPFProject/UI/WorkControl.xaml
@@ -1,9 +1,10 @@
-锘�<UserControl x:Class="WPFProject.UI.WorkControl"
+锘�<hb:PluginControl x:Class="WPFProject.UI.WorkControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:local="clr-namespace:WPFProject.UI"
+ xmlns:hb="clr-namespace:HMI.Base;assembly=HMI.Base"
+ xmlns:ui="clr-namespace:WPFProject.UI"
xmlns:vm="clr-namespace:WPFProject.ViewModels"
xmlns:view="clr-namespace:WPFProject.UI"
xmlns:utils="clr-namespace:WPFProject.Utils"
@@ -13,18 +14,18 @@
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
- <ResourceDictionary Source="/WPFProject;component/Style/colors.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/Colors.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
<Grid>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
- <Canvas x:Name="WorkArea" Background="{StaticResource MainMenu}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
+ <Canvas x:Name="WorkArea" Background="#FFF" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<!--<vt:ProgramList BorderThickness="1" BorderBrush="#000" Canvas.Left="335" Canvas.Top="121" utils:Resize.IsResizeable="True"></vt:ProgramList>
<vt:ProgramList BorderThickness="1" BorderBrush="#000" Canvas.Left="600" Canvas.Top="121" FocusableChanged="ProgramList_FocusableChanged"></vt:ProgramList>-->
- <local:BottomBar x:Name="BottomBar" Canvas.Bottom="0" Panel.ZIndex="9999999"/>
+ <ui:BottomBar x:Name="BottomBar" Canvas.Bottom="0" Panel.ZIndex="9999999"/>
</Canvas>
</ScrollViewer>
@@ -66,4 +67,4 @@
<vt:ProgramList Grid.Row="2" BorderThickness="1" BorderBrush="#000"></vt:ProgramList>
</Grid>-->
</Grid>
-</UserControl>
+</hb:PluginControl>
diff --git a/WPFProject/UI/WorkControl.xaml.cs b/WPFProject/UI/WorkControl.xaml.cs
index 755b5d2..725407c 100644
--- a/WPFProject/UI/WorkControl.xaml.cs
+++ b/WPFProject/UI/WorkControl.xaml.cs
@@ -2,10 +2,10 @@
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
-using System.Windows.Media;
+using HMI.Base;
+using log4net;
using WPFProject.Controls;
using WPFProject.Models;
-using WPFProject.UI.Test;
using WPFProject.Utils;
namespace WPFProject.UI
@@ -13,8 +13,9 @@
/// <summary>
/// WorkControl.xaml 鐨勪氦浜掗�昏緫
/// </summary>
- public partial class WorkControl : UserControl, IPlugin
+ public partial class WorkControl : PluginControl
{
+ private ILog log;
public WorkControl()
{
InitializeComponent();
@@ -68,49 +69,49 @@
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
- List<CanvasPosition> pos = InitGridSize();
- ProgramList programList = new ProgramList();
- InnerWindow p = new InnerWindow(pos[0])
- {
- Title = "绋嬪簭鍒楄〃",
- Content = programList
- };
- HandleInnerWindow(p);
+ //List<CanvasPosition> pos = InitGridSize();
+ //ProgramList programList = new ProgramList();
+ //InnerWindow p = new InnerWindow(pos[0])
+ //{
+ // Title = "绋嬪簭鍒楄〃",
+ // Content = programList
+ //};
+ //HandleInnerWindow(p);
- InnerWindow p1 = new InnerWindow(pos[1])
- {
- Title = "鍥剧墖",
- };
- HandleInnerWindow(p1);
+ //InnerWindow p1 = new InnerWindow(pos[1])
+ //{
+ // Title = "鍥剧墖",
+ //};
+ //HandleInnerWindow(p1);
- SequnceList sequnceList = new SequnceList();
- programList.ProgramChanged += sequnceList.Selected_Program_Changed;
+ //SequnceList sequnceList = new SequnceList();
+ //programList.ProgramChanged += sequnceList.Selected_Program_Changed;
- InnerWindow p2 = new InnerWindow(pos[2])
- {
- Title = "搴忓垪",
- Content = sequnceList
- };
- HandleInnerWindow(p2);
+ //InnerWindow p2 = new InnerWindow(pos[2])
+ //{
+ // Title = "搴忓垪",
+ // Content = sequnceList
+ //};
+ //HandleInnerWindow(p2);
- FunctionSetting functionSetting = new FunctionSetting();
- InnerWindow p3 = new InnerWindow(pos[3])
- {
- Title = "鍑芥暟",
- Content = functionSetting
- };
- HandleInnerWindow(p3);
+ //FunctionSetting functionSetting = new FunctionSetting();
+ //InnerWindow p3 = new InnerWindow(pos[3])
+ //{
+ // Title = "鍑芥暟",
+ // Content = functionSetting
+ //};
+ //HandleInnerWindow(p3);
- StepSetting stepSetting = new StepSetting();
- InnerWindow p4 = new InnerWindow(pos[4])
- {
- Title = "鍗曟璁剧疆",
- Content = stepSetting
- };
- HandleInnerWindow(p4);
+ //StepSetting stepSetting = new StepSetting();
+ //InnerWindow p4 = new InnerWindow(pos[4])
+ //{
+ // Title = "鍗曟璁剧疆",
+ // Content = stepSetting
+ //};
+ //HandleInnerWindow(p4);
- SizeChanged += WorkControl_SizeChanged;
+ //SizeChanged += WorkControl_SizeChanged;
Loaded -= UserControl_Loaded;
}
@@ -283,5 +284,30 @@
}
}
}
+
+ public object Active()
+ {
+ return null;
+ }
+
+ public object DeActive()
+ {
+ return null;
+ }
+
+ public void OnTabChange(object sender, object args)
+ {
+
+ }
+
+ public object Init()
+ {
+ return null;
+ }
+
+ public void SetLogger(ILog logger)
+ {
+ log = logger;
+ }
}
}
\ No newline at end of file
diff --git a/WPFProject/Utils/IPlugin.cs b/WPFProject/Utils/IPlugin.cs
deleted file mode 100644
index fd72209..0000000
--- a/WPFProject/Utils/IPlugin.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Controls;
-
-namespace WPFProject.Utils
-{
- public interface IPlugin
- {
- public void OnTabChange(object sender, SelectionChangedEventArgs args);
- }
-}
diff --git a/WPFProject/Utils/MainToastHandler.cs b/WPFProject/Utils/MainToastHandler.cs
new file mode 100644
index 0000000..ed44805
--- /dev/null
+++ b/WPFProject/Utils/MainToastHandler.cs
@@ -0,0 +1,42 @@
+锘縰sing System.Windows;
+using Panuon.WPF.UI;
+using Panuon.WPF.UI.Configurations;
+using HMI.UI.Util;
+
+namespace WPFProject.Utils
+{
+ public class MainToastHandler : ToastHandler
+ {
+ public void Success(Window window, string message,
+ MessageBoxIcon icon, ToastPosition position,
+ double offset, int durationMs, ToastWindow targetWindow)
+ {
+ var setting = Application.Current.FindResource("toastSuccess") as ToastSetting;
+ if (window is PanuonWindow pw)
+ {
+ double num = 20 + (pw.menuTab.MenuVisibility == Visibility.Visible ? pw.menuTab.Menu.ActualHeight + pw.menuTab.SubMenu.ActualHeight : 0);
+ Toast.Show(pw, message, icon, position, num, durationMs, setting);
+ }
+ else if (window is WindowX wx)
+ {
+ Toast.Show(wx, message, icon, position, 0, durationMs, setting);
+ }
+ }
+
+ public void Warning(Window window, string message,
+ MessageBoxIcon icon, ToastPosition position,
+ double offset, int durationMs, ToastWindow targetWindow)
+ {
+ var setting = Application.Current.FindResource("toastWarning") as ToastSetting;
+ if (window is PanuonWindow pw)
+ {
+ double num = 20 + (pw.menuTab.MenuVisibility == Visibility.Visible ? pw.menuTab.Menu.ActualHeight + pw.menuTab.SubMenu.ActualHeight : 0);
+ Toast.Show(pw, message, icon, position, num, durationMs, setting);
+ }
+ else if (window is WindowX wx)
+ {
+ Toast.Show(wx, message, icon, position, 0, durationMs, setting);
+ }
+ }
+ }
+}
diff --git a/WPFProject/Utils/Resize.cs b/WPFProject/Utils/Resize.cs
index bafa586..d2004f0 100644
--- a/WPFProject/Utils/Resize.cs
+++ b/WPFProject/Utils/Resize.cs
@@ -44,7 +44,7 @@
{
FrameworkElement element = d as FrameworkElement;
if (element == null) return;
- var resize = GetResizeable(element);
+ Resizeable resize = GetResizeable(element);
if (resize == null) return;
resize.Detach();
resize.Attach();
diff --git a/WPFProject/WPFProject.csproj b/WPFProject/WPFProject.csproj
index a49ab0d..354471f 100644
--- a/WPFProject/WPFProject.csproj
+++ b/WPFProject/WPFProject.csproj
@@ -35,6 +35,26 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>bin\x64\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <DebugType>full</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>latest</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ <Prefer32Bit>true</Prefer32Bit>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ <OutputPath>bin\x64\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <Optimize>true</Optimize>
+ <DebugType>pdbonly</DebugType>
+ <PlatformTarget>x64</PlatformTarget>
+ <LangVersion>latest</LangVersion>
+ <ErrorReport>prompt</ErrorReport>
+ <Prefer32Bit>true</Prefer32Bit>
+ </PropertyGroup>
<ItemGroup>
<Reference Include="AIStudio.Wpf.Controls, Version=1.2.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>packages\AIStudio.Wpf.Controls.1.2.2\lib\net461\AIStudio.Wpf.Controls.dll</HintPath>
@@ -45,16 +65,26 @@
<Reference Include="HandyControl, Version=3.4.0.0, Culture=neutral, PublicKeyToken=45be8712787a1e5b, processorArchitecture=MSIL">
<HintPath>packages\HandyControl.3.4.0\lib\net472\HandyControl.dll</HintPath>
</Reference>
+ <Reference Include="log4net, Version=3.0.3.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
+ <HintPath>packages\log4net.3.0.3\lib\net462\log4net.dll</HintPath>
+ </Reference>
<Reference Include="Microsoft.Xaml.Behaviors, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.Xaml.Behaviors.Wpf.1.1.39\lib\net45\Microsoft.Xaml.Behaviors.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
+ <Reference Include="Panuon.WPF, Version=1.1.2.2, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>packages\Panuon.WPF.1.1.2.2\lib\net472\Panuon.WPF.dll</HintPath>
+ </Reference>
+ <Reference Include="Panuon.WPF.UI, Version=1.2.4.8, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>packages\Panuon.WPF.UI.1.2.4.9\lib\net472\Panuon.WPF.UI.dll</HintPath>
+ </Reference>
<Reference Include="PresentationFramework.Aero" />
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.ComponentModel.DataAnnotations" />
+ <Reference Include="System.Configuration" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
@@ -121,15 +151,22 @@
<Compile Include="Controls\InnerWindow.xaml.cs">
<DependentUpon>InnerWindow.xaml</DependentUpon>
</Compile>
+ <Compile Include="Controls\MainTabControl.xaml.cs">
+ <DependentUpon>MainTabControl.xaml</DependentUpon>
+ </Compile>
<Compile Include="Controls\MinInnerWindow.xaml.cs">
<DependentUpon>MinInnerWindow.xaml</DependentUpon>
</Compile>
- <Compile Include="Events\TabChange.cs" />
+ <Compile Include="Entity\PluginLoadMessage.cs" />
+ <Compile Include="Entity\PluginSettingInfo.cs" />
<Compile Include="Forms\Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
+ </Compile>
+ <Compile Include="LoadingWindow.xaml.cs">
+ <DependentUpon>LoadingWindow.xaml</DependentUpon>
</Compile>
<Compile Include="Models\CanvasPosition.cs" />
<Compile Include="Models\FuncModel.cs" />
@@ -138,6 +175,12 @@
<Compile Include="Models\Program.cs" />
<Compile Include="Models\Sequence.cs" />
<Compile Include="Models\Step.cs" />
+ <Compile Include="PanuonWindow.xaml.cs">
+ <DependentUpon>PanuonWindow.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="TestWindow.xaml.cs">
+ <DependentUpon>TestWindow.xaml</DependentUpon>
+ </Compile>
<Compile Include="UI\BottomBar.xaml.cs">
<DependentUpon>BottomBar.xaml</DependentUpon>
</Compile>
@@ -165,12 +208,16 @@
<Compile Include="Utils\CanvasHelper.cs" />
<Compile Include="Utils\DdDragHandler.cs" />
<Compile Include="Utils\DdDropHandler.cs" />
- <Compile Include="Utils\IPlugin.cs" />
+ <Compile Include="Utils\MainToastHandler.cs" />
<Compile Include="Utils\Resize.cs" />
<Compile Include="Utils\Win32Helper.cs" />
<Compile Include="Utils\XmlUtil.cs" />
<Compile Include="ViewModels\ProgramListViewModel.cs" />
<Page Include="Controls\InnerWindow.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Page Include="Controls\MainTabControl.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
@@ -179,6 +226,10 @@
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Controls\MinInnerWindow.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
+ <Page Include="LoadingWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
@@ -198,15 +249,47 @@
<DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
+ <Page Include="PanuonWindow.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
+ <Page Include="UI\BottomBar.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Page Include="UI\StepSetting.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Page Include="UI\TestWindow.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Page Include="UI\Test\FunctionSetting.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Page Include="UI\Test\ProgramList.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Page Include="UI\Test\SequnceList.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Page Include="UI\WorkControl.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Page Include="UI\WorkWindow.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
<Resource Include="Resources\Font\Font.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Resource>
- <Page Include="Style\Colors.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
<Page Include="Style\ListViewStyle.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -219,39 +302,7 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
- <Page Include="Style\WindowResources.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- <Page Include="UI\BottomBar.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- <Page Include="UI\StepSetting.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- <Page Include="UI\TestWindow.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- <Page Include="UI\Test\FunctionSetting.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- <Page Include="UI\Test\ProgramList.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- <Page Include="UI\Test\SequnceList.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- <Page Include="UI\WorkControl.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- <Page Include="UI\WorkWindow.xaml">
+ <Page Include="TestWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
@@ -277,6 +328,9 @@
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
+ <Content Include="log4net.config">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
@@ -296,10 +350,49 @@
<Resource Include="Resources\Icon\xinzeng_1.png" />
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\VisionBuilder.Core\VisionBuilder.Core.csproj">
+ <ProjectReference Include="..\HMI.AlermInfoManage\HMI.AlermInfoManage.csproj">
+ <Project>{945c2577-4558-45e3-891a-096cb3047304}</Project>
+ <Name>HMI.AlermInfoManage</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.Base\HMI.Base.csproj">
+ <Project>{2a6f9720-a890-4036-9d73-41a0dae28341}</Project>
+ <Name>HMI.Base</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.IOMonitor\HMI.IOMonitor.csproj">
+ <Project>{f7663c79-7047-42f3-b129-73a2575ee7c6}</Project>
+ <Name>HMI.IOMonitor</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.ParameterManage\HMI.ParameterManage.csproj">
+ <Project>{736cd77d-b81e-4866-bb00-84b0b57110f0}</Project>
+ <Name>HMI.ParameterManage</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.SettingControl\HMI.SettingControl.csproj">
+ <Project>{3dd748ac-9708-49ad-b846-659214035588}</Project>
+ <Name>HMI.SettingControl</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.UI\HMI.UI.csproj">
+ <Project>{f17de6b5-af1d-48c6-94a0-6b763a6546a6}</Project>
+ <Name>HMI.UI</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.Core\HMI.Core.csproj">
<Project>{3e3bf44a-0b69-45c5-9512-528cb48a7106}</Project>
- <Name>VisionBuilder.Core</Name>
+ <Name>HMI.Core</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\HMI.MenuManage\HMI.MenuManage.csproj">
+ <Project>{de4205c6-5923-46fd-a4b9-65169bf61c75}</Project>
+ <Name>HMI.MenuManage</Name>
</ProjectReference>
</ItemGroup>
+ <ItemGroup>
+ <Content Include="Icon\xinzeng_1.png">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <PropertyGroup>
+ <PostBuildEvent>copy /Y "$(TargetDir)HMI.MenuManage.dll" "$(TargetDir)\Plugin\HMI.MenuManage.dll"
+copy /Y "$(TargetDir)HMI.MenuManage.pdb" "$(TargetDir)\Plugin\HMI.MenuManage.pdb"
+copy /Y "$(TargetDir)HMI.AlermInfoManage.dll" "$(TargetDir)\Plugin\HMI.AlermInfoManage.dll"
+copy /Y "$(TargetDir)HMI.AlermInfoManage.pdb" "$(TargetDir)\Plugin\HMI.AlermInfoManage.pdb"</PostBuildEvent>
+ </PropertyGroup>
</Project>
\ No newline at end of file
diff --git a/WPFProject/WPFProject.sln b/WPFProject/WPFProject.sln
index 59fbd83..4201d5e 100644
--- a/WPFProject/WPFProject.sln
+++ b/WPFProject/WPFProject.sln
@@ -1,38 +1,156 @@
锘�
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.33328.57
+# Visual Studio Version 17
+VisualStudioVersion = 17.9.34728.123
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPFProject", "WPFProject.csproj", "{D47D2314-5DD5-4899-ADF9-15ED057289D3}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisionBuilder.Core", "..\VisionBuilder.Core\VisionBuilder.Core.csproj", "{3E3BF44A-0B69-45C5-9512-528CB48A7106}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HMI.Core", "..\HMI.Core\HMI.Core.csproj", "{3E3BF44A-0B69-45C5-9512-528CB48A7106}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisionBuilder.Test", "..\VisionBuilder.Test\VisionBuilder.Test.csproj", "{6E1CC97A-B3CB-4E9F-94E0-F264DE0D8298}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisionBuilder.Engine", "..\VisionBuilder.Engine\VisionBuilder.Engine.csproj", "{8E5E8A68-0B9D-4A6A-B325-730C64603FDF}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HMI.UI", "..\HMI.UI\HMI.UI.csproj", "{F17DE6B5-AF1D-48C6-94A0-6B763A6546A6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HMI.MenuManage", "..\HMI.MenuManage\HMI.MenuManage.csproj", "{DE4205C6-5923-46FD-A4B9-65169BF61C75}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisionBuilder.Run", "..\VisionBuilder.Run\VisionBuilder.Run.csproj", "{7C299AED-88CC-437E-A68B-1550AA72E6B0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HMI.UnitTest", "..\HMI.UnitTest\HMI.UnitTest.csproj", "{325A7F52-FE51-44F0-B3AC-5F42F5356605}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HMI.AlermInfoManage", "..\HMI.AlermInfoManage\HMI.AlermInfoManage.csproj", "{945C2577-4558-45E3-891A-096CB3047304}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HMI.SettingControl", "..\HMI.SettingControl\HMI.SettingControl.csproj", "{3DD748AC-9708-49AD-B846-659214035588}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HMI.Base", "..\HMI.Base\HMI.Base.csproj", "{2A6F9720-A890-4036-9D73-41A0DAE28341}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HMI.DataViewer", "..\HMI.DataViewer\HMI.DataViewer.csproj", "{A580DE4A-34E7-4EFE-AD2C-0871396000E9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HMI.IOMonitor", "..\HMI.IOMonitor\HMI.IOMonitor.csproj", "{F7663C79-7047-42F3-B129-73A2575EE7C6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HMI.ParameterManage", "..\HMI.ParameterManage\HMI.ParameterManage.csproj", "{736CD77D-B81E-4866-BB00-84B0B57110F0}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D47D2314-5DD5-4899-ADF9-15ED057289D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D47D2314-5DD5-4899-ADF9-15ED057289D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D47D2314-5DD5-4899-ADF9-15ED057289D3}.Debug|x64.ActiveCfg = Debug|x64
+ {D47D2314-5DD5-4899-ADF9-15ED057289D3}.Debug|x64.Build.0 = Debug|x64
{D47D2314-5DD5-4899-ADF9-15ED057289D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D47D2314-5DD5-4899-ADF9-15ED057289D3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D47D2314-5DD5-4899-ADF9-15ED057289D3}.Release|x64.ActiveCfg = Release|x64
+ {D47D2314-5DD5-4899-ADF9-15ED057289D3}.Release|x64.Build.0 = Release|x64
{3E3BF44A-0B69-45C5-9512-528CB48A7106}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3E3BF44A-0B69-45C5-9512-528CB48A7106}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3E3BF44A-0B69-45C5-9512-528CB48A7106}.Debug|x64.ActiveCfg = Debug|x64
+ {3E3BF44A-0B69-45C5-9512-528CB48A7106}.Debug|x64.Build.0 = Debug|x64
{3E3BF44A-0B69-45C5-9512-528CB48A7106}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3E3BF44A-0B69-45C5-9512-528CB48A7106}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3E3BF44A-0B69-45C5-9512-528CB48A7106}.Release|x64.ActiveCfg = Release|x64
+ {3E3BF44A-0B69-45C5-9512-528CB48A7106}.Release|x64.Build.0 = Release|x64
{6E1CC97A-B3CB-4E9F-94E0-F264DE0D8298}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6E1CC97A-B3CB-4E9F-94E0-F264DE0D8298}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6E1CC97A-B3CB-4E9F-94E0-F264DE0D8298}.Debug|x64.ActiveCfg = Debug|x64
+ {6E1CC97A-B3CB-4E9F-94E0-F264DE0D8298}.Debug|x64.Build.0 = Debug|x64
{6E1CC97A-B3CB-4E9F-94E0-F264DE0D8298}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6E1CC97A-B3CB-4E9F-94E0-F264DE0D8298}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6E1CC97A-B3CB-4E9F-94E0-F264DE0D8298}.Release|x64.ActiveCfg = Release|x64
+ {6E1CC97A-B3CB-4E9F-94E0-F264DE0D8298}.Release|x64.Build.0 = Release|x64
{8E5E8A68-0B9D-4A6A-B325-730C64603FDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8E5E8A68-0B9D-4A6A-B325-730C64603FDF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8E5E8A68-0B9D-4A6A-B325-730C64603FDF}.Debug|x64.ActiveCfg = Debug|x64
+ {8E5E8A68-0B9D-4A6A-B325-730C64603FDF}.Debug|x64.Build.0 = Debug|x64
{8E5E8A68-0B9D-4A6A-B325-730C64603FDF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8E5E8A68-0B9D-4A6A-B325-730C64603FDF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8E5E8A68-0B9D-4A6A-B325-730C64603FDF}.Release|x64.ActiveCfg = Release|x64
+ {8E5E8A68-0B9D-4A6A-B325-730C64603FDF}.Release|x64.Build.0 = Release|x64
+ {F17DE6B5-AF1D-48C6-94A0-6B763A6546A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F17DE6B5-AF1D-48C6-94A0-6B763A6546A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F17DE6B5-AF1D-48C6-94A0-6B763A6546A6}.Debug|x64.ActiveCfg = Debug|x64
+ {F17DE6B5-AF1D-48C6-94A0-6B763A6546A6}.Debug|x64.Build.0 = Debug|x64
+ {F17DE6B5-AF1D-48C6-94A0-6B763A6546A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F17DE6B5-AF1D-48C6-94A0-6B763A6546A6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F17DE6B5-AF1D-48C6-94A0-6B763A6546A6}.Release|x64.ActiveCfg = Release|Any CPU
+ {F17DE6B5-AF1D-48C6-94A0-6B763A6546A6}.Release|x64.Build.0 = Release|Any CPU
+ {DE4205C6-5923-46FD-A4B9-65169BF61C75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DE4205C6-5923-46FD-A4B9-65169BF61C75}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DE4205C6-5923-46FD-A4B9-65169BF61C75}.Debug|x64.ActiveCfg = Debug|x64
+ {DE4205C6-5923-46FD-A4B9-65169BF61C75}.Debug|x64.Build.0 = Debug|x64
+ {DE4205C6-5923-46FD-A4B9-65169BF61C75}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DE4205C6-5923-46FD-A4B9-65169BF61C75}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DE4205C6-5923-46FD-A4B9-65169BF61C75}.Release|x64.ActiveCfg = Release|Any CPU
+ {DE4205C6-5923-46FD-A4B9-65169BF61C75}.Release|x64.Build.0 = Release|Any CPU
+ {7C299AED-88CC-437E-A68B-1550AA72E6B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7C299AED-88CC-437E-A68B-1550AA72E6B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7C299AED-88CC-437E-A68B-1550AA72E6B0}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7C299AED-88CC-437E-A68B-1550AA72E6B0}.Debug|x64.Build.0 = Debug|Any CPU
+ {7C299AED-88CC-437E-A68B-1550AA72E6B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7C299AED-88CC-437E-A68B-1550AA72E6B0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7C299AED-88CC-437E-A68B-1550AA72E6B0}.Release|x64.ActiveCfg = Release|Any CPU
+ {7C299AED-88CC-437E-A68B-1550AA72E6B0}.Release|x64.Build.0 = Release|Any CPU
+ {325A7F52-FE51-44F0-B3AC-5F42F5356605}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {325A7F52-FE51-44F0-B3AC-5F42F5356605}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {325A7F52-FE51-44F0-B3AC-5F42F5356605}.Debug|x64.ActiveCfg = Debug|x64
+ {325A7F52-FE51-44F0-B3AC-5F42F5356605}.Debug|x64.Build.0 = Debug|x64
+ {325A7F52-FE51-44F0-B3AC-5F42F5356605}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {325A7F52-FE51-44F0-B3AC-5F42F5356605}.Release|Any CPU.Build.0 = Release|Any CPU
+ {325A7F52-FE51-44F0-B3AC-5F42F5356605}.Release|x64.ActiveCfg = Release|Any CPU
+ {325A7F52-FE51-44F0-B3AC-5F42F5356605}.Release|x64.Build.0 = Release|Any CPU
+ {945C2577-4558-45E3-891A-096CB3047304}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {945C2577-4558-45E3-891A-096CB3047304}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {945C2577-4558-45E3-891A-096CB3047304}.Debug|x64.ActiveCfg = Debug|x64
+ {945C2577-4558-45E3-891A-096CB3047304}.Debug|x64.Build.0 = Debug|x64
+ {945C2577-4558-45E3-891A-096CB3047304}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {945C2577-4558-45E3-891A-096CB3047304}.Release|Any CPU.Build.0 = Release|Any CPU
+ {945C2577-4558-45E3-891A-096CB3047304}.Release|x64.ActiveCfg = Release|Any CPU
+ {945C2577-4558-45E3-891A-096CB3047304}.Release|x64.Build.0 = Release|Any CPU
+ {3DD748AC-9708-49AD-B846-659214035588}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3DD748AC-9708-49AD-B846-659214035588}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3DD748AC-9708-49AD-B846-659214035588}.Debug|x64.ActiveCfg = Debug|x64
+ {3DD748AC-9708-49AD-B846-659214035588}.Debug|x64.Build.0 = Debug|x64
+ {3DD748AC-9708-49AD-B846-659214035588}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3DD748AC-9708-49AD-B846-659214035588}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3DD748AC-9708-49AD-B846-659214035588}.Release|x64.ActiveCfg = Release|Any CPU
+ {3DD748AC-9708-49AD-B846-659214035588}.Release|x64.Build.0 = Release|Any CPU
+ {2A6F9720-A890-4036-9D73-41A0DAE28341}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2A6F9720-A890-4036-9D73-41A0DAE28341}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2A6F9720-A890-4036-9D73-41A0DAE28341}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {2A6F9720-A890-4036-9D73-41A0DAE28341}.Debug|x64.Build.0 = Debug|Any CPU
+ {2A6F9720-A890-4036-9D73-41A0DAE28341}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2A6F9720-A890-4036-9D73-41A0DAE28341}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2A6F9720-A890-4036-9D73-41A0DAE28341}.Release|x64.ActiveCfg = Release|Any CPU
+ {2A6F9720-A890-4036-9D73-41A0DAE28341}.Release|x64.Build.0 = Release|Any CPU
+ {A580DE4A-34E7-4EFE-AD2C-0871396000E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A580DE4A-34E7-4EFE-AD2C-0871396000E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A580DE4A-34E7-4EFE-AD2C-0871396000E9}.Debug|x64.ActiveCfg = Debug|x64
+ {A580DE4A-34E7-4EFE-AD2C-0871396000E9}.Debug|x64.Build.0 = Debug|x64
+ {A580DE4A-34E7-4EFE-AD2C-0871396000E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A580DE4A-34E7-4EFE-AD2C-0871396000E9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A580DE4A-34E7-4EFE-AD2C-0871396000E9}.Release|x64.ActiveCfg = Release|Any CPU
+ {A580DE4A-34E7-4EFE-AD2C-0871396000E9}.Release|x64.Build.0 = Release|Any CPU
+ {F7663C79-7047-42F3-B129-73A2575EE7C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F7663C79-7047-42F3-B129-73A2575EE7C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F7663C79-7047-42F3-B129-73A2575EE7C6}.Debug|x64.ActiveCfg = Debug|x64
+ {F7663C79-7047-42F3-B129-73A2575EE7C6}.Debug|x64.Build.0 = Debug|x64
+ {F7663C79-7047-42F3-B129-73A2575EE7C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F7663C79-7047-42F3-B129-73A2575EE7C6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F7663C79-7047-42F3-B129-73A2575EE7C6}.Release|x64.ActiveCfg = Release|Any CPU
+ {F7663C79-7047-42F3-B129-73A2575EE7C6}.Release|x64.Build.0 = Release|Any CPU
+ {736CD77D-B81E-4866-BB00-84B0B57110F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {736CD77D-B81E-4866-BB00-84B0B57110F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {736CD77D-B81E-4866-BB00-84B0B57110F0}.Debug|x64.ActiveCfg = Debug|x64
+ {736CD77D-B81E-4866-BB00-84B0B57110F0}.Debug|x64.Build.0 = Debug|x64
+ {736CD77D-B81E-4866-BB00-84B0B57110F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {736CD77D-B81E-4866-BB00-84B0B57110F0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {736CD77D-B81E-4866-BB00-84B0B57110F0}.Release|x64.ActiveCfg = Release|Any CPU
+ {736CD77D-B81E-4866-BB00-84B0B57110F0}.Release|x64.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/WPFProject/log4net.config b/WPFProject/log4net.config
new file mode 100644
index 0000000..cc9e4f9
--- /dev/null
+++ b/WPFProject/log4net.config
@@ -0,0 +1,38 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<log4net>
+ <!-- 鎺у埗鍙版棩蹇楅厤缃� -->
+ <appender name="Console" type="log4net.Appender.ConsoleAppender">
+ <!-- 鏃ュ織杈撳嚭鏍煎紡 -->
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
+ </layout>
+ </appender>
+
+ <!-- 鏂囦欢瀛樺偍鏃ュ織閰嶇疆 -->
+ <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
+ <appendToFile value="true" />
+ <rollingStyle value="Date" />
+ <datePattern value="'log_'yyyyMMdd'.log'"/>
+ <staticLogFileName value="false"/>
+
+ <!-- 淇濆瓨鏂囦欢鐨勫悕绉� -->
+ <file value="./Log/" />
+
+ <!-- 鏂囦欢鐨勭紪鐮佹柟寮� -->
+ <param name="Encoding" value="UTF-8"/>
+ <!-- 姣忎釜鏂囦欢鐨勫ぇ灏� -->
+ <maximumFileSize value="100KB" />
+ <!-- 淇濆瓨鏂囦欢鏁伴噺 -->
+ <maxSizeRollBackups value="2" />
+ <!-- 鏃ュ織杈撳嚭鏍煎紡 -->
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%logger: [%date] [%thread] [%level] [%class:%L] - %message%newline" />
+ </layout>
+ </appender>
+
+ <root>
+ <level value="INFO" />
+ <appender-ref ref="Console" />
+ <appender-ref ref="RollingFile" />
+ </root>
+</log4net>
\ No newline at end of file
diff --git a/WPFProject/packages.config b/WPFProject/packages.config
index 1143c77..761d92d 100644
--- a/WPFProject/packages.config
+++ b/WPFProject/packages.config
@@ -3,8 +3,11 @@
<package id="AIStudio.Wpf.Controls" version="1.2.2" targetFramework="net472" />
<package id="gong-wpf-dragdrop" version="3.2.1" targetFramework="net472" />
<package id="HandyControl" version="3.4.0" targetFramework="net472" />
+ <package id="log4net" version="3.0.3" targetFramework="net472" />
<package id="Microsoft.Xaml.Behaviors.Wpf" version="1.1.39" targetFramework="net472" />
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net472" />
+ <package id="Panuon.WPF" version="1.1.2.2" targetFramework="net472" />
+ <package id="Panuon.WPF.UI" version="1.2.4.9" targetFramework="net472" />
<package id="System.IO" version="4.3.0" targetFramework="net472" />
<package id="System.Net.Http" version="4.3.4" targetFramework="net472" />
<package id="System.Runtime" version="4.3.0" targetFramework="net472" />
--
Gitblit v1.9.1