|  | <%
'=======================================================================================================================
' InkjetRecords Model
'=======================================================================================================================
Class InkjetRecordsModel_Class
	Public Validator
	Public Class_Get_Properties
	Public ID '90
	Public KitID '122
	Public VOTERID '106
	Public LASTNAME '106
	Public FIRSTNAME '106
	Public MIDDLENAME '106
	Public SUFFIX '106
	Public PRECINCT '106
	Public ADDRESS1 '106
	Public ADDRESS2 '106
	Public ADDRESS3 '106
	Public ADDRESS4 '106
	Public ADDRESS5 '106
	Public APPSENT '106
	Public APPRETURNED '106
	Public BALSENT '106
	Public BALRETURNED '106
	Public CountingBoard '106
	Public UOCAVASTATUS '106
	Public EMAILADDRESS '106
	Public PHONENUMBER '106
	Public BALLOT_NUMBER '106
	Public CassADDRESS1 '106
	Public CassADDRESS2 '106
	Public CassADDRESS3 '106
	Public CassADDRESS4 '106
	Public CassADDRESS5 '106
	Private Sub Class_Initialize
		'ValidateExitsts Me, "",""
		Class_Get_Properties = Array("ID, KitID, VOTERID, LASTNAME, FIRSTNAME, MIDDLENAME, SUFFIX, PRECINCT, ADDRESS1, ADDRESS2, ADDRESS3, ADDRESS4, ADDRESS5, APPSENT, APPRETURNED, BALSENT, BALRETURNED, CountingBoard, UOCAVASTATUS, EMAILADDRESS, PHONENUMBER, BALLOT_NUMBER, CassADDRESS1, CassADDRESS2, CassADDRESS3, CassADDRESS4, CassADDRESS5")
	End Sub
End CLass
'=======================================================================================================================
' InkjetRecords Repository
'=======================================================================================================================
Class InkjetRecordsRepository_Class
	Public Function FindByID(ID)
		dim sql : sql = "Select [ID], [KitID], [VOTERID], [LASTNAME], [FIRSTNAME], [MIDDLENAME], [SUFFIX], [PRECINCT], [ADDRESS1], [ADDRESS2], [ADDRESS3], [ADDRESS4], [ADDRESS5], [APPSENT], [APPRETURNED], [BALSENT], [BALRETURNED], [CountingBoard], [UOCAVASTATUS], [EMAILADDRESS], [PHONENUMBER], [BALLOT_NUMBER], [CassADDRESS1], [CassADDRESS2], [CassADDRESS3], [CassADDRESS4], [CassADDRESS5] FROM [InkjetRecords] WHERE ID = ?"
		dim rs : set rs = DAL.Query(sql,ID)
    	If rs.EOF then
    		Err.Raise 1, "InkjetRecordsRepository_Class", InkjetRecordsNotFoundException("ID", ID)
		Else
			set FindByID = Automapper.AutoMap(rs,"InkjetRecordsModel_Class")
        End If
	End Function
  	Public Function GetAll(orderBy)
		set GetAll = Find(empty,orderBy)
   	End Function
    Public Function Find(where_kvarray, order_string_or_array)
		dim sql : sql = "Select [ID], [KitID], [VOTERID], [LASTNAME], [FIRSTNAME], [MIDDLENAME], [SUFFIX], [PRECINCT], [ADDRESS1], [ADDRESS2], [ADDRESS3], [ADDRESS4], [ADDRESS5], [APPSENT], [APPRETURNED], [BALSENT], [BALRETURNED], [CountingBoard], [UOCAVASTATUS], [EMAILADDRESS], [PHONENUMBER], [BALLOT_NUMBER], [CassADDRESS1], [CassADDRESS2], [CassADDRESS3], [CassADDRESS4], [CassADDRESS5] FROM [InkjetRecords]"
 		If Not IsEmpty(where_kvarray) then
			sql = sql & " WHERE "
				dim where_keys, where_values
				KVUnzip where_kvarray, where_keys, where_values
			dim i
			For i = 0 to UBound(where_keys)
				If i > 0 then sql = sql & " AND "
				sql = sql & " " & where_keys(i) & " "
			Next
		End If
		If Not IsEmpty(order_string_or_array) then
			sql = sql & "ORDER BY "
			If IsArray(order_string_or_array) then
				dim order_array : order_array = order_string_or_array
				For i = 0 to UBound(order_array)
					If i > 0 then sql = sql & ", "
					sql = sql & " " & order_array(i)
				Next
			Else
				sql = sql & order_string_or_array & " "
			End If
		End If
		dim rs : set rs = DAL.Query(sql, where_values)
		set Find = InkjetRecordsList(rs)
		Destroy rs
	End Function
	Public Function FindPaged(where_kvarray, order_string_or_array, per_page, page_num, ByRef page_count, ByRef record_count)
		dim sql : sql = "Select [ID], [KitID], [VOTERID], [LASTNAME], [FIRSTNAME], [MIDDLENAME], [SUFFIX], [PRECINCT], [ADDRESS1], [ADDRESS2], [ADDRESS3], [ADDRESS4], [ADDRESS5], [APPSENT], [APPRETURNED], [BALSENT], [BALRETURNED], [CountingBoard], [UOCAVASTATUS], [EMAILADDRESS], [PHONENUMBER], [BALLOT_NUMBER], [CassADDRESS1], [CassADDRESS2], [CassADDRESS3], [CassADDRESS4], [CassADDRESS5] FROM [InkjetRecords]"
 		If Not IsEmpty(where_kvarray) then
			sql = sql & " WHERE "
				dim where_keys, where_values
				KVUnzip where_kvarray, where_keys, where_values
			dim i
			For i = 0 to UBound(where_keys)
				If i > 0 then sql = sql & " AND "
				sql = sql & " " & where_keys(i) & " "
			Next
		End If
		If Not IsEmpty(order_string_or_array) then
			sql = sql & "ORDER BY "
			If IsArray(order_string_or_array) then
				dim order_array : order_array = order_string_or_array
				For i = 0 to UBound(order_array)
					If i > 0 then sql = sql & ", "
					sql = sql & " " & order_array(i)
				Next
			Else
				sql = sql & order_string_or_array & " "
			End If
		End If
		dim list : set list = new LinkedList_Class
		dim rs   : set rs   = DAL.PagedQuery(sql, where_values, per_page, page_num)
		If Not rs.EOF and Not (IsEmpty(per_page) and IsEmpty(page_num) and IsEmpty(page_count) and IsEmpty(record_count)) then
			rs.PageSize     = per_page
			rs.AbsolutePage = page_num
			page_count      = rs.PageCount
			record_count    = rs.RecordCount
		End If
		set FindPaged = PagedInkjetRecordsList(rs, per_page)
		Destroy rs
	End Function
	Public Function SearchTablePaged(where_kvarray, order_string_or_array, per_page, page_num, ByRef page_count, ByRef record_count)
		dim sql : sql = "Select [ID], [KitID], [VOTERID], [LASTNAME], [FIRSTNAME], [MIDDLENAME], [SUFFIX], [PRECINCT], [ADDRESS1], [ADDRESS2], [ADDRESS3], [ADDRESS4], [ADDRESS5], [APPSENT], [APPRETURNED], [BALSENT], [BALRETURNED], [CountingBoard], [UOCAVASTATUS], [EMAILADDRESS], [PHONENUMBER], [BALLOT_NUMBER], [CassADDRESS1], [CassADDRESS2], [CassADDRESS3], [CassADDRESS4], [CassADDRESS5] FROM [InkjetRecords]"
 		If Not IsEmpty(where_kvarray) then
			sql = sql & " WHERE "
				dim where_keys, where_values
				KVUnzip where_kvarray, where_keys, where_values
			dim i
			For i = 0 to UBound(where_keys)
				If i > 0 then sql = sql & " OR"
				sql = sql & " " & where_keys(i) & " LIKE ?"
			Next
		End If
		If Not IsEmpty(order_string_or_array) then
			sql = sql & " ORDER BY "
			If IsArray(order_string_or_array) then
				dim order_array : order_array = order_string_or_array
				For i = 0 to UBound(order_array)
					If i > 0 then sql = sql & ", "
					sql = sql & " " & order_array(i)
				Next
			Else
				sql = sql & order_string_or_array & " "
			End If
		End If
		dim list : set list = new LinkedList_Class
		dim rs   : set rs   = DAL.PagedQuery(sql, where_values, per_page, page_num)
		If Not rs.EOF and Not (IsEmpty(per_page) and IsEmpty(page_num) and IsEmpty(page_count) and IsEmpty(record_count)) then
			rs.PageSize     = per_page
			rs.AbsolutePage = page_num
			page_count      = rs.PageCount
			record_count    = rs.RecordCount
		End If
		set SearchTablePaged = PagedInkjetRecordsList(rs, per_page)
		Destroy rs
	End Function
	Private Function PagedInkjetRecordsList(rs, per_page)
    	dim list : set list = new LinkedList_Class
		dim x : x =0
		Do While x < per_page and Not rs.EOF
			list.Push Automapper.AutoMap(rs, new InkjetRecordsModel_Class)
			x = x +1
			rs.MoveNext
		Loop
		set PagedInkjetRecordsList = list
	End Function
	Private Function InkjetRecordsNotFoundException(ByVal field_name, ByVal field_val)
			 InkjetRecordsNotFoundException = "InkjetRecords was not found with " & field_name & " of '" & field_val & "'."
	End Function
	Private Function InkjetRecordsList(rs)
		dim list : set list = new LinkedList_Class
		dim model
		Do until rs.EOF
			set model = new InkjetRecordsModel_Class
			list.Push Automapper.AutoMap(rs, model)
			rs.MoveNext
		Loop
		set InkjetRecordsList = list
	End Function
	Public Sub AddNew(ByRef model)
		dim sql : sql = "INSERT INTO [InkjetRecords] (" &_
													"[KitID]," &_
													"[VOTERID]," &_
													"[LASTNAME]," &_
													"[FIRSTNAME]," &_
													"[MIDDLENAME]," &_
													"[SUFFIX]," &_
													"[PRECINCT]," &_
													"[ADDRESS1]," &_
													"[ADDRESS2]," &_
													"[ADDRESS3]," &_
													"[ADDRESS4]," &_
													"[ADDRESS5]," &_
													"[APPSENT]," &_
													"[APPRETURNED]," &_
													"[BALSENT]," &_
													"[BALRETURNED]," &_
													"[CountingBoard]," &_
													"[UOCAVASTATUS]," &_
													"[EMAILADDRESS]," &_
													"[PHONENUMBER]," &_
													"[BALLOT_NUMBER]," &_
													"[CassADDRESS1]," &_
													"[CassADDRESS2]," &_
													"[CassADDRESS3]," &_
													"[CassADDRESS4]," &_
													"[CassADDRESS5])" &_
						"VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
		DAL.Execute sql, Array(model.KitID, _
							  model.VOTERID, _
							  model.LASTNAME, _
							  model.FIRSTNAME, _
							  model.MIDDLENAME, _
							  model.SUFFIX, _
							  model.PRECINCT, _
							  model.ADDRESS1, _
							  model.ADDRESS2, _
							  model.ADDRESS3, _
							  model.ADDRESS4, _
							  model.ADDRESS5, _
							  model.APPSENT, _
							  model.APPRETURNED, _
							  model.BALSENT, _
							  model.BALRETURNED, _
							  model.CountingBoard, _
							  model.UOCAVASTATUS, _
							  model.EMAILADDRESS, _
							  model.PHONENUMBER, _
							  model.BALLOT_NUMBER, _
							  model.CassADDRESS1, _
							  model.CassADDRESS2, _
							  model.CassADDRESS3, _
							  model.CassADDRESS4, _
							  model.CassADDRESS5)
			sql = "SELECT TOP 1 ID FROM [InkjetRecords] ORDER BY ID DESC"
			dim rs : set rs = DAL.Query(sql, empty)
			model.ID = rs("ID")
			Destroy rs
	End Sub
	Public Sub Update(model)
		dim sql : sql = "UPDATE [InkjetRecords] SET [KitID] = ?," &_
						"[VOTERID] = ?," &_
						"[LASTNAME] = ?," &_
						"[FIRSTNAME] = ?," &_
						"[MIDDLENAME] = ?," &_
						"[SUFFIX] = ?," &_
						"[PRECINCT] = ?," &_
						"[ADDRESS1] = ?," &_
						"[ADDRESS2] = ?," &_
						"[ADDRESS3] = ?," &_
						"[ADDRESS4] = ?," &_
						"[ADDRESS5] = ?," &_
						"[APPSENT] = ?," &_
						"[APPRETURNED] = ?," &_
						"[BALSENT] = ?," &_
						"[BALRETURNED] = ?," &_
						"[CountingBoard] = ?," &_
						"[UOCAVASTATUS] = ?," &_
						"[EMAILADDRESS] = ?," &_
						"[PHONENUMBER] = ?," &_
						"[BALLOT_NUMBER] = ?," &_
						"[CassADDRESS1] = ?," &_
						"[CassADDRESS2] = ?," &_
						"[CassADDRESS3] = ?," &_
						"[CassADDRESS4] = ?," &_
						"[CassADDRESS5] = ?" &_
						" WHERE [ID] = ?"
		DAL.Execute sql, Array(model.KitID, _
							  model.VOTERID, _
							  model.LASTNAME, _
							  model.FIRSTNAME, _
							  model.MIDDLENAME, _
							  model.SUFFIX, _
							  model.PRECINCT, _
							  model.ADDRESS1, _
							  model.ADDRESS2, _
							  model.ADDRESS3, _
							  model.ADDRESS4, _
							  model.ADDRESS5, _
							  model.APPSENT, _
							  model.APPRETURNED, _
							  model.BALSENT, _
							  model.BALRETURNED, _
							  model.CountingBoard, _
							  model.UOCAVASTATUS, _
							  model.EMAILADDRESS, _
							  model.PHONENUMBER, _
							  model.BALLOT_NUMBER, _
							  model.CassADDRESS1, _
							  model.CassADDRESS2, _
							  model.CassADDRESS3, _
							  model.CassADDRESS4, _
							  model.CassADDRESS5, _
							  model.ID)
	End Sub
	Public Sub Delete(id)
		dim sql : sql = "DELETE FROM [InkjetRecords] WHERE [ID] = ?"
		DAL.Execute sql, id
	End Sub
End Class
dim InkjetRecordsRepository__Singleton
Function InkjetRecordsRepository()
	If IsEmpty(InkjetRecordsRepository__Singleton) then
		set InkjetRecordsRepository__Singleton = new InkjetRecordsRepository_Class
	End If
	set InkjetRecordsRepository = InkjetRecordsRepository__Singleton
End Function
%>
 |