-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCalculateInsertStatements.cs
More file actions
117 lines (111 loc) · 4.76 KB
/
Copy pathCalculateInsertStatements.cs
File metadata and controls
117 lines (111 loc) · 4.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AI.Calculators.Interfaces;
using AI.Domain;
using AI.Infrastructure.Readers.Interfaces;
namespace AI.Calculators
{
public class CalculateInsertStatements : ICalculate<IList<string>>
{
private readonly IGeneralDataReader<IList<string>> reader;
private readonly IDataReader<IList<string>> fileReader;
private string readTableName;
private string writeTableName;
private int noOfColumns;
private string connectionString;
private string numericInsertFieldIndices;
private bool hasIndex,isFile;
public CalculateInsertStatements(IGeneralDataReader<IList<string>> reader,
string readTableName,string writeTableName, int noOfColumns, string connectionString, string numericInsertFieldIndices,
bool hasIndex)
{
this.reader = reader;
this.readTableName = readTableName;
this.noOfColumns = noOfColumns;
this.connectionString = connectionString;
this.numericInsertFieldIndices = numericInsertFieldIndices;
this.hasIndex = hasIndex;
this.writeTableName = writeTableName;
}
public CalculateInsertStatements(IDataReader<IList<string>> reader,bool isFile,
string readTableName, string writeTableName, int noOfColumns, string connectionString, string numericInsertFieldIndices,
bool hasIndex)
{
this.isFile = isFile;
this.fileReader = reader;
this.readTableName = readTableName;
this.noOfColumns = noOfColumns;
this.connectionString = connectionString;
this.numericInsertFieldIndices = numericInsertFieldIndices;
this.hasIndex = hasIndex;
this.writeTableName = writeTableName;
}
public IList<string> Calculate()
{
var sw = new StreamWriter(@"C:\Users\jyp1510\Documents\TestData\InsertStatements.txt",append:true);
var insertStrings = new List<string>();
if (!isFile)
{
var readerResults = reader.GetData(readTableName, noOfColumns, connectionString);
var insertObject = new InsertObject(readerResults, numericInsertFieldIndices);
var strings = insertObject.GetInsertStrings(hasIndex);
var cnt = 0;
foreach (var str in strings)
{
var insert = "INSERT INTO " + writeTableName + " VALUES (" + str + ");";
Console.WriteLine("Calculating : {0} {1}", insert, cnt);
sw.WriteLine(insert);
insertStrings.Add(insert);
cnt++;
}
sw.Close();
}
else
{
var readerResults = fileReader.GetData();
var insertObject = new InsertObject(readerResults, numericInsertFieldIndices);
var strings = insertObject.GetInsertStrings(hasIndex);
var cnt = 0;
foreach (var str in strings)
{
var insert = "INSERT INTO " + writeTableName + " VALUES (" + str + ");";
Console.WriteLine("Calculating : {0} {1}", insert, cnt);
sw.WriteLine(insert);
insertStrings.Add(insert);
cnt++;
}
sw.Close();
}
return insertStrings;
}
/// <summary>
///
/// </summary>
/// <param name="noOfRowsYouIntendToRetrieveForInsert"></param>
/// <param name="startIndex">>=</param>
/// <returns></returns>
public IList<string> Calculate(int noOfRowsYouIntendToRetrieveForInsert,int startIndex)
{
var sw = new StreamWriter(@"C:\Users\jyp1510\Documents\TestData\InsertStatements.txt", append: true);
var readerResults = reader.GetData(readTableName, noOfColumns, noOfRowsYouIntendToRetrieveForInsert, startIndex, connectionString);
var insertObject = new InsertObject(readerResults, numericInsertFieldIndices);
var insertStrings = new List<string>();
var strings = insertObject.GetInsertStrings(hasIndex);
var cnt = 0;
foreach (var str in strings)
{
var insert = "INSERT INTO " + writeTableName + " VALUES (" + str + ");";
Console.WriteLine("Calculating : {0} {1}", insert, cnt);
sw.WriteLine(insert);
insertStrings.Add(insert);
cnt++;
}
sw.Close();
return insertStrings;
}
}
}