Skip to content

Commit 92b3c97

Browse files
author
Robin Wilson
committed
Fix issue with custom table name and add SFTP and SCP SSL Fingerprint Options
1 parent e6773b9 commit 92b3c97

File tree

245 files changed

+2215
-2217
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

245 files changed

+2215
-2217
lines changed
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

.vs/CSVSQLImporter/v17/.suo

0 Bytes
Binary file not shown.

.vs/CSVSQLImporter/v17/DocumentLayout.backup.json

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
"WorkspaceRootPath": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\",
44
"Documents": [
55
{
6-
"AbsoluteMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|c:\\users\\robin.wilson\\source\\repos\\csvsqlimporter\\csvsqlimporter\\csvsqlimporter.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
7-
"RelativeMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|solutionrelative:csvsqlimporter\\csvsqlimporter.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
6+
"AbsoluteMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|c:\\users\\robin.wilson\\source\\repos\\csvsqlimporter\\csvsqlimporter\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
7+
"RelativeMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|solutionrelative:csvsqlimporter\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
88
},
99
{
1010
"AbsoluteMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|c:\\users\\robin.wilson\\source\\repos\\csvsqlimporter\\csvsqlimporter\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
@@ -14,10 +14,6 @@
1414
"AbsoluteMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|c:\\users\\robin.wilson\\source\\repos\\csvsqlimporter\\csvsqlimporter\\appsettings2.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
1515
"RelativeMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|solutionrelative:csvsqlimporter\\appsettings2.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
1616
},
17-
{
18-
"AbsoluteMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|c:\\users\\robin.wilson\\source\\repos\\csvsqlimporter\\csvsqlimporter\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
19-
"RelativeMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|solutionrelative:csvsqlimporter\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
20-
},
2117
{
2218
"AbsoluteMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|c:\\users\\robin.wilson\\source\\repos\\csvsqlimporter\\csvsqlimporter\\appsettings3.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
2319
"RelativeMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|solutionrelative:csvsqlimporter\\appsettings3.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
@@ -30,29 +26,17 @@
3026
"DocumentGroups": [
3127
{
3228
"DockedWidth": 200,
33-
"SelectedChildIndex": 0,
29+
"SelectedChildIndex": 3,
3430
"Children": [
3531
{
3632
"$type": "Document",
37-
"DocumentIndex": 0,
38-
"Title": "CSVSQLImporter",
39-
"DocumentMoniker": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\CSVSQLImporter\\CSVSQLImporter.csproj",
40-
"RelativeDocumentMoniker": "CSVSQLImporter\\CSVSQLImporter.csproj",
41-
"ToolTip": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\CSVSQLImporter\\CSVSQLImporter.csproj",
42-
"RelativeToolTip": "CSVSQLImporter\\CSVSQLImporter.csproj",
43-
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
44-
"WhenOpened": "2024-12-01T00:54:21.486Z",
45-
"EditorCaption": ""
46-
},
47-
{
48-
"$type": "Document",
49-
"DocumentIndex": 4,
33+
"DocumentIndex": 3,
5034
"Title": "appsettings3.json",
5135
"DocumentMoniker": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\CSVSQLImporter\\appsettings3.json",
5236
"RelativeDocumentMoniker": "CSVSQLImporter\\appsettings3.json",
5337
"ToolTip": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\CSVSQLImporter\\appsettings3.json",
5438
"RelativeToolTip": "CSVSQLImporter\\appsettings3.json",
55-
"ViewState": "AgIAAAYAAAAAAAAAAAAAABMAAAAOAAAAAAAAAA==",
39+
"ViewState": "AgIAAAYAAAAAAAAAAAAAACEAAAAaAAAAAAAAAA==",
5640
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
5741
"WhenOpened": "2024-11-30T02:21:00.735Z",
5842
"EditorCaption": ""
@@ -65,7 +49,7 @@
6549
"RelativeDocumentMoniker": "CSVSQLImporter\\appsettings2.json",
6650
"ToolTip": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\CSVSQLImporter\\appsettings2.json",
6751
"RelativeToolTip": "CSVSQLImporter\\appsettings2.json",
68-
"ViewState": "AgIAABMAAAAAAAAAAAAmwCgAAAABAAAAAAAAAA==",
52+
"ViewState": "AgIAABMAAAAAAAAAAAAmwCEAAAAaAAAAAAAAAA==",
6953
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
7054
"WhenOpened": "2024-11-30T02:19:49.603Z",
7155
"EditorCaption": ""
@@ -78,20 +62,20 @@
7862
"RelativeDocumentMoniker": "CSVSQLImporter\\appsettings.json",
7963
"ToolTip": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\CSVSQLImporter\\appsettings.json",
8064
"RelativeToolTip": "CSVSQLImporter\\appsettings.json",
81-
"ViewState": "AgIAABMAAAAAAAAAAAAmwCgAAAABAAAAAAAAAA==",
65+
"ViewState": "AgIAAAAAAAAAAAAAAAAAACEAAAAaAAAAAAAAAA==",
8266
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
8367
"WhenOpened": "2024-11-30T01:50:22.132Z",
8468
"EditorCaption": ""
8569
},
8670
{
8771
"$type": "Document",
88-
"DocumentIndex": 3,
72+
"DocumentIndex": 0,
8973
"Title": "Program.cs",
9074
"DocumentMoniker": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\CSVSQLImporter\\Program.cs",
9175
"RelativeDocumentMoniker": "CSVSQLImporter\\Program.cs",
9276
"ToolTip": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\CSVSQLImporter\\Program.cs",
9377
"RelativeToolTip": "CSVSQLImporter\\Program.cs",
94-
"ViewState": "AgIAAK4AAAAAAAAAAAAAALwAAAAmAAAAAAAAAA==",
78+
"ViewState": "AgIAAHIAAAAAAAAAAAAqwIUAAAARAAAAAAAAAA==",
9579
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
9680
"WhenOpened": "2024-11-28T19:29:55.068Z",
9781
"EditorCaption": ""

.vs/CSVSQLImporter/v17/DocumentLayout.json

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
"WorkspaceRootPath": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\",
44
"Documents": [
55
{
6-
"AbsoluteMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|c:\\users\\robin.wilson\\source\\repos\\csvsqlimporter\\csvsqlimporter\\csvsqlimporter.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
7-
"RelativeMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|solutionrelative:csvsqlimporter\\csvsqlimporter.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
6+
"AbsoluteMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|c:\\users\\robin.wilson\\source\\repos\\csvsqlimporter\\csvsqlimporter\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
7+
"RelativeMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|solutionrelative:csvsqlimporter\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
88
},
99
{
1010
"AbsoluteMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|c:\\users\\robin.wilson\\source\\repos\\csvsqlimporter\\csvsqlimporter\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
@@ -14,10 +14,6 @@
1414
"AbsoluteMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|c:\\users\\robin.wilson\\source\\repos\\csvsqlimporter\\csvsqlimporter\\appsettings2.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
1515
"RelativeMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|solutionrelative:csvsqlimporter\\appsettings2.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
1616
},
17-
{
18-
"AbsoluteMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|c:\\users\\robin.wilson\\source\\repos\\csvsqlimporter\\csvsqlimporter\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
19-
"RelativeMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|solutionrelative:csvsqlimporter\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
20-
},
2117
{
2218
"AbsoluteMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|c:\\users\\robin.wilson\\source\\repos\\csvsqlimporter\\csvsqlimporter\\appsettings3.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
2319
"RelativeMoniker": "D:0:0:{5C52D129-1E6D-4FE5-B62C-CF91002A6401}|CSVSQLImporter\\CSVSQLImporter.csproj|solutionrelative:csvsqlimporter\\appsettings3.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
@@ -30,29 +26,17 @@
3026
"DocumentGroups": [
3127
{
3228
"DockedWidth": 200,
33-
"SelectedChildIndex": 0,
29+
"SelectedChildIndex": 3,
3430
"Children": [
3531
{
3632
"$type": "Document",
37-
"DocumentIndex": 0,
38-
"Title": "CSVSQLImporter",
39-
"DocumentMoniker": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\CSVSQLImporter\\CSVSQLImporter.csproj",
40-
"RelativeDocumentMoniker": "CSVSQLImporter\\CSVSQLImporter.csproj",
41-
"ToolTip": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\CSVSQLImporter\\CSVSQLImporter.csproj",
42-
"RelativeToolTip": "CSVSQLImporter\\CSVSQLImporter.csproj",
43-
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
44-
"WhenOpened": "2024-12-01T00:54:21.486Z",
45-
"EditorCaption": ""
46-
},
47-
{
48-
"$type": "Document",
49-
"DocumentIndex": 4,
33+
"DocumentIndex": 3,
5034
"Title": "appsettings3.json",
5135
"DocumentMoniker": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\CSVSQLImporter\\appsettings3.json",
5236
"RelativeDocumentMoniker": "CSVSQLImporter\\appsettings3.json",
5337
"ToolTip": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\CSVSQLImporter\\appsettings3.json",
5438
"RelativeToolTip": "CSVSQLImporter\\appsettings3.json",
55-
"ViewState": "AgIAAAYAAAAAAAAAAAAAABMAAAAOAAAAAAAAAA==",
39+
"ViewState": "AgIAAAYAAAAAAAAAAAAAACEAAAAaAAAAAAAAAA==",
5640
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
5741
"WhenOpened": "2024-11-30T02:21:00.735Z",
5842
"EditorCaption": ""
@@ -65,7 +49,7 @@
6549
"RelativeDocumentMoniker": "CSVSQLImporter\\appsettings2.json",
6650
"ToolTip": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\CSVSQLImporter\\appsettings2.json",
6751
"RelativeToolTip": "CSVSQLImporter\\appsettings2.json",
68-
"ViewState": "AgIAABMAAAAAAAAAAAAmwCgAAAABAAAAAAAAAA==",
52+
"ViewState": "AgIAABMAAAAAAAAAAAAmwCEAAAAaAAAAAAAAAA==",
6953
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
7054
"WhenOpened": "2024-11-30T02:19:49.603Z",
7155
"EditorCaption": ""
@@ -78,20 +62,20 @@
7862
"RelativeDocumentMoniker": "CSVSQLImporter\\appsettings.json",
7963
"ToolTip": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\CSVSQLImporter\\appsettings.json",
8064
"RelativeToolTip": "CSVSQLImporter\\appsettings.json",
81-
"ViewState": "AgIAABMAAAAAAAAAAAAmwCgAAAABAAAAAAAAAA==",
65+
"ViewState": "AgIAAAAAAAAAAAAAAAAAACEAAAAaAAAAAAAAAA==",
8266
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
8367
"WhenOpened": "2024-11-30T01:50:22.132Z",
8468
"EditorCaption": ""
8569
},
8670
{
8771
"$type": "Document",
88-
"DocumentIndex": 3,
72+
"DocumentIndex": 0,
8973
"Title": "Program.cs",
9074
"DocumentMoniker": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\CSVSQLImporter\\Program.cs",
9175
"RelativeDocumentMoniker": "CSVSQLImporter\\Program.cs",
9276
"ToolTip": "C:\\Users\\robin.wilson\\source\\repos\\CSVSQLImporter\\CSVSQLImporter\\Program.cs",
9377
"RelativeToolTip": "CSVSQLImporter\\Program.cs",
94-
"ViewState": "AgIAAK4AAAAAAAAAAAAAALwAAAAmAAAAAAAAAA==",
78+
"ViewState": "AgIAAHIAAAAAAAAAAAAqwIUAAAARAAAAAAAAAA==",
9579
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
9680
"WhenOpened": "2024-11-28T19:29:55.068Z",
9781
"EditorCaption": ""
8 Bytes
Binary file not shown.
-47 Bytes
Binary file not shown.
-157 Bytes
Binary file not shown.

CSVSQLImporter/CSVSQLImporter.csproj

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
<RepositoryUrl>https://github.com/robinwilson16/CSVSQLImporter</RepositoryUrl>
1414
<RepositoryType>git</RepositoryType>
1515
<PackageTags>CSV, SQL, SSIS</PackageTags>
16-
<AssemblyVersion>1.0.6</AssemblyVersion>
17-
<FileVersion>1.0.6</FileVersion>
16+
<AssemblyVersion>1.0.7</AssemblyVersion>
17+
<FileVersion>1.0.7</FileVersion>
1818
<PackageLicenseExpression>GPL-3.0-or-later</PackageLicenseExpression>
1919
<ApplicationIcon>CSVToSQL.ico</ApplicationIcon>
2020
<PackageIcon>CSVToSQL.png</PackageIcon>
@@ -52,16 +52,16 @@
5252

5353
<ItemGroup>
5454
<PackageReference Include="Microsoft.Data.SqlClient" Version="6.0.1" />
55-
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.2" />
56-
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.2" />
57-
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.2">
55+
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.3" />
56+
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.3" />
57+
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.3">
5858
<PrivateAssets>all</PrivateAssets>
5959
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
6060
</PackageReference>
61-
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.2" />
62-
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.2" />
63-
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.2" />
64-
<PackageReference Include="WinSCP" Version="6.3.7" />
61+
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.3" />
62+
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.3" />
63+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.3" />
64+
<PackageReference Include="WinSCP" Version="6.5.0" />
6565
</ItemGroup>
6666

6767
</Project>

CSVSQLImporter/Program.cs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ static async Task<int> Main(string[] args)
104104
Password = ftpConnection["Password"]
105105
};
106106

107-
switch (ftpConnection["Type"])
107+
switch (ftpConnection?["Type"])
108108
{
109109
case "FTP":
110110
sessionOptions.Protocol = Protocol.Ftp;
@@ -118,12 +118,22 @@ static async Task<int> Main(string[] args)
118118
sessionOptions.Protocol = Protocol.Sftp;
119119
sessionOptions.GiveUpSecurityAndAcceptAnyTlsHostCertificate = true;
120120
break;
121+
case "SCP":
122+
sessionOptions.Protocol = Protocol.Scp;
123+
sessionOptions.GiveUpSecurityAndAcceptAnyTlsHostCertificate = true;
124+
break;
121125
default:
122126
sessionOptions.Protocol = Protocol.Ftp;
123127
break;
124128
}
125129

126-
switch (ftpConnection["Mode"])
130+
if (ftpConnection?["SSHHostKeyFingerprint"]?.Length > 0)
131+
{
132+
sessionOptions.SshHostKeyFingerprint = ftpConnection["SSHHostKeyFingerprint"];
133+
sessionOptions.GiveUpSecurityAndAcceptAnyTlsHostCertificate = false;
134+
}
135+
136+
switch (ftpConnection?["Mode"])
127137
{
128138
case "Active":
129139
sessionOptions.FtpMode = FtpMode.Active;
@@ -181,9 +191,17 @@ static async Task<int> Main(string[] args)
181191
Console.WriteLine($"Loading CSV File from {csvFilePath}");
182192

183193
DataTable table;
194+
195+
string? tableNameOverride = null;
196+
197+
if (databaseTable?["TableNameOverride"]?.Length > 0)
198+
{
199+
tableNameOverride = databaseTable?["TableNameOverride"];
200+
}
201+
184202
if (System.IO.File.Exists(csvFilePath))
185203
{
186-
table = new DataTable(databaseTable["TablePrefix"] + databaseTable["TableNameOverride"] ?? csvFileNameNoExtension);
204+
table = new DataTable(databaseTable?["TablePrefix"] + (tableNameOverride ?? csvFileNameNoExtension));
187205

188206
table.Rows.Clear();
189207
table.Columns.Clear();

0 commit comments

Comments
 (0)