jj_13_01_16_update_1.1.0.0

This commit is contained in:
JenneJ
2016-01-13 11:57:24 +01:00
parent 579ea3cb8c
commit 2a3384b1da
59 changed files with 12191 additions and 9203 deletions

View File

@@ -0,0 +1,71 @@
Public Class Querybuilder
Public Shared Function Build(config As ConfigValues, db As DB)
Dim mainQuery As String
Dim companies As List(Of String)
Dim stringsToIgnore As New List(Of String)
' searchvalues ist entweder eine SQL Abfrage oder eine Kommagetrennte Liste
If config.query.ToUpper.StartsWith("SELECT") Then
companies = GetLiveQueryResult(config.query, db)
Else
companies = New List(Of String)(config.query.Split(";"))
End If
If config.queryIgnore.Count > 0 And config.queryIgnore.Contains(";") Then
stringsToIgnore = New List(Of String)(config.queryIgnore.Split(";"))
End If
mainQuery = BuildMainQuery(companies)
mainQuery &= BuildIgnoreQuery(stringsToIgnore)
Return mainQuery
End Function
Public Shared Function BuildMainQuery(companies As List(Of String)) As String
Dim query As String = String.Empty
For Each company As String In companies
Dim querypart As String = String.Format("(INH=""{0}"" OR ANM=""{0}"")", company.Trim())
query &= querypart
' Bei allen bis auf das letzte Unternehmen einen OR Operator einfügen
If (companies.IndexOf(company) + 1) < companies.Count Then
query &= " OR "
End If
Next
Return query
End Function
Public Shared Function BuildIgnoreQuery(stringsToIgnore As List(Of String))
Dim query As String = String.Empty
For Each stringToIgnore In stringsToIgnore
Dim querypart As String = String.Format(" NOT (INH=""{0}"" OR ANM=""{0}"")", stringToIgnore)
query &= querypart
Next
Return query
End Function
Public Shared Function GetLiveQueryResult(query As String, db As DB) As List(Of String)
Dim result As New List(Of String)
Dim SQL As String = query
Dim DT As DataTable = db.QueryTable(SQL)
If DT.Rows.Count = 0 Then
Throw New Exception("SQL Abfrage lieferte ein leeres Ergebnis zurück: " & query)
End If
For Each row As DataRow In DT.Rows
Dim item As String = CStr(row.Item(0)).Trim()
result.Add(row.Item(0))
Next
Return result
End Function
End Class