430 lines
13 KiB
VB.net

Imports System.IO
Imports MySql.Data.MySqlClient
Module functions
'-------------------------------------------------------------------------------------------------------------
' Person
'-------------------------------------------------------------------------------------------------------------
Public Function GetPersonList() As List(Of dataset)
Dim QRY As String = ("
select
distinct
person.id, concat(person.fname, if(isnull(person.mname), '', concat(' ', person.mname)), ' ', person.lname) as name
from
person
left join
event_matches on (person.id = coalesce(event_matches.blue_fighter, 0) or person.id = coalesce(event_matches.red_fighter, 0))
order by
fname,
mname,
lname
asc
")
Dim CON As New MySqlConnection(CON_STRING)
Dim COM As New MySqlCommand(QRY, CON)
Dim RDR As MySqlDataReader
Dim LST As New List(Of dataset)
Try
CON.Open()
RDR = COM.ExecuteReader
If RDR.HasRows = True Then
While RDR.Read
LST.Add(New dataset(RDR("id"), RDR("name")))
End While
End If
CON.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
CON.Dispose()
End Try
Return LST
End Function
'-------------------------------------------------------------------------------------------------------------
' File Functions
'-------------------------------------------------------------------------------------------------------------
Public Function GetFilePath() As String
'Creating A New Dialog
Dim OpenVideoFile As New OpenFileDialog
'Filtering The Types
OpenVideoFile.Filter = "Video Files | *.mp4; *.avi; *.mkv;"
'Openning The File
If OpenVideoFile.ShowDialog = System.Windows.Forms.DialogResult.OK Then
Try
Dim FilePath As String = OpenVideoFile.FileName()
Return FilePath
Catch ex As Exception
MessageBox.Show(ex.Message)
Return Nothing
End Try
Else
Return Nothing
End If
End Function
'-------------------------------------------------------------------------------------------------------------
' Picture Function
'-------------------------------------------------------------------------------------------------------------
Public Function ResizePicture(YourPictureBox As PictureBox, Width As Integer, Height As Integer) As Byte()
'Creating A New Dialog
Dim OpenPictureFile As New OpenFileDialog
'Filtering The Types
OpenPictureFile.Filter = "Image Files | *.jpg; *.jpeg; *.bmp; *.png; *.gif;"
'Openning The File
If OpenPictureFile.ShowDialog = System.Windows.Forms.DialogResult.OK Then
Try
' Getting File Path
Dim FilePath As String = OpenPictureFile.FileName()
Dim FileName As String = System.IO.Path.GetFileName(OpenPictureFile.FileName)
' Picture File
Dim Picture As New MemoryStream
' Define New Image Size
Dim LogoSize As New Size(Width, Height)
' Resizing The Image
Dim ResizedImage = New Bitmap(Image.FromFile(FilePath), LogoSize)
' Display The Image
YourPictureBox.Image = ResizedImage
' Saving The Image As PNG Format
YourPictureBox.Image.Save(Picture, System.Drawing.Imaging.ImageFormat.Png)
' Read The Image As Bytes
Dim arrImage() As Byte = Picture.GetBuffer
' Closing The Picture
Picture.Close()
' Returns Image Data In Bytes Format
Return arrImage
Catch ex As Exception
MessageBox.Show(ex.Message)
Return Nothing
End Try
Else
Return Nothing
End If
End Function
'-------------------------------------------------------------------------------------------------------------
' Country Functions
'-------------------------------------------------------------------------------------------------------------
Public Sub GetCountryList(ComboBox As ComboBox)
Dim QRY As String = "select * from countries order by name asc"
Dim CON As New MySqlConnection(CON_STRING)
Dim COM As New MySqlCommand(QRY, CON)
Dim RDR As MySqlDataReader
Dim LST As New List(Of dataset)
Try
CON.Open()
RDR = COM.ExecuteReader
If RDR.HasRows = True Then
While RDR.Read
LST.Add(New dataset(RDR("id"), RDR("name")))
End While
End If
CON.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
CON.Dispose()
End Try
ComboBox.DataSource = LST
ComboBox.ValueMember = "ID"
ComboBox.DisplayMember = "name"
End Sub
Public Sub GetCountryFlag(FlagPictureBox As PictureBox, CountryID As Integer)
Dim QRY As String
Try
QRY = "select flag from countries where id=" & CountryID
Catch ex As Exception
Exit Sub
End Try
Dim CON As New MySqlConnection(CON_STRING)
Dim COM As New MySqlCommand(QRY, CON)
Dim RDR As MySqlDataReader
Dim LST As New List(Of dataset)
Try
CON.Open()
RDR = COM.ExecuteReader
If RDR.HasRows = True Then
While RDR.Read
Try
Dim data As Byte() = DirectCast(RDR("flag"), Byte())
Dim flag As New System.IO.MemoryStream(data)
FlagPictureBox.Image = Image.FromStream(flag)
Catch ex As Exception
FlagPictureBox.Image = Nothing
Exit Sub
End Try
End While
End If
CON.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
CON.Dispose()
End Try
End Sub
Public Sub UpdateCountryFlag(FlagPictureBox As PictureBox, CountryID As Integer)
' Query To Update
Dim QRY As String = "update countries set flag = @flag where id=" & CountryID
' Connection
Dim CON As New MySqlConnection(CON_STRING)
Dim COM As New MySqlCommand(QRY, CON)
' Preparing The Image
Dim Picture As New MemoryStream
FlagPictureBox.Image.Save(Picture, System.Drawing.Imaging.ImageFormat.Png)
Dim arrImage() As Byte = Picture.GetBuffer
Picture.Close()
Try
CON.Open()
COM.Parameters.AddWithValue("@flag", arrImage)
COM.ExecuteNonQuery()
CON.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
CON.Dispose()
End Try
End Sub
'-------------------------------------------------------------------------------------------------------------
' Clubs Functions
'-------------------------------------------------------------------------------------------------------------
Public Sub GetClubsList(ComboBox As ComboBox)
Dim QRY As String = "select id, title from clubs order by title asc"
Dim CON As New MySqlConnection(CON_STRING)
Dim COM As New MySqlCommand(QRY, CON)
Dim RDR As MySqlDataReader
Dim LST As New List(Of dataset)
Try
CON.Open()
RDR = COM.ExecuteReader
If RDR.HasRows = True Then
While RDR.Read
LST.Add(New dataset(RDR("id"), RDR("title")))
End While
End If
CON.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
CON.Dispose()
End Try
ComboBox.DataSource = LST
ComboBox.ValueMember = "ID"
ComboBox.DisplayMember = "name"
End Sub
Public Sub GetClubLogo(LogoPictureBox As PictureBox, ClubID As Integer)
Dim QRY As String
Try
QRY = "select logo from clubs where id=" & ClubID
Catch ex As Exception
Exit Sub
End Try
Dim CON As New MySqlConnection(CON_STRING)
Dim COM As New MySqlCommand(QRY, CON)
Dim RDR As MySqlDataReader
Dim LST As New List(Of dataset)
Try
CON.Open()
RDR = COM.ExecuteReader
If RDR.HasRows = True Then
While RDR.Read
Try
Dim data As Byte() = DirectCast(RDR("logo"), Byte())
Dim flag As New System.IO.MemoryStream(data)
LogoPictureBox.Image = Image.FromStream(flag)
Catch ex As Exception
LogoPictureBox.Image = Nothing
Exit Sub
End Try
End While
End If
CON.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
CON.Dispose()
End Try
End Sub
Public Sub UpdateClubLogo(LogoPictureBox As PictureBox, ClubID As Integer)
' Query To Update
Dim QRY As String = "update clubs set logo = @logo where id=" & ClubID
' Connection
Dim CON As New MySqlConnection(CON_STRING)
Dim COM As New MySqlCommand(QRY, CON)
' Preparing The Image
Dim Picture As New MemoryStream
LogoPictureBox.Image.Save(Picture, System.Drawing.Imaging.ImageFormat.Png)
Dim arrImage() As Byte = Picture.GetBuffer
Picture.Close()
Try
CON.Open()
COM.Parameters.AddWithValue("@logo", arrImage)
COM.ExecuteNonQuery()
CON.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
CON.Dispose()
End Try
End Sub
Public Sub EventList(ListBox As ListBox)
Try
ListBox.Items.Clear()
Catch ex As Exception
End Try
Dim QRY As String = "select * from event order by event_start asc"
Dim CON As New MySqlConnection(CON_STRING)
Dim COM As New MySqlCommand(QRY, CON)
Dim RDR As MySqlDataReader
Dim LST As New List(Of dataset)
Try
CON.Open()
RDR = COM.ExecuteReader
If RDR.HasRows = True Then
While RDR.Read
LST.Add(New dataset(RDR("id"), RDR("title")))
End While
End If
CON.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
CON.Dispose()
End Try
ListBox.DataSource = LST
ListBox.ValueMember = "ID"
ListBox.DisplayMember = "name"
End Sub
'-------------------------------------------------------------------------------------------------------------
' Clubs Functions
'-------------------------------------------------------------------------------------------------------------
Public Function IsFormOpen(ByVal frm As Form) As Boolean
If Application.OpenForms.OfType(Of Form).Contains(frm) Then
Return True
Else
Return False
End If
End Function
Public Sub ClearComboBox(ComboBox As ComboBox)
Try
ComboBox.DataSource = Nothing
ComboBox.Items.Clear()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Public Sub ClearListBox(ListBox As ListBox)
Try
ListBox.DataSource = Nothing
ListBox.Items.Clear()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Public Sub SubPopulateComboBox(Data As List(Of dataset), ComboBox As ComboBox)
ClearComboBox(ComboBox)
ComboBox.DataSource = Data
ComboBox.ValueMember = "ID"
ComboBox.DisplayMember = "NAME"
End Sub
Public Sub SubPopulateListBox(Data As List(Of dataset), ListBox As ListBox)
ClearListBox(ListBox)
ListBox.DataSource = Data
ListBox.ValueMember = "ID"
ListBox.DisplayMember = "NAME"
End Sub
End Module