512 lines
16 KiB
VB.net
512 lines
16 KiB
VB.net
Imports System.ComponentModel
|
|
Imports System.IO
|
|
Imports MySql.Data.MySqlClient
|
|
Public Class frm_fighter_statistics
|
|
Private Sub frm_fighter_statistics_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|
|
|
Me.Text = SelectedEvent.Title
|
|
|
|
Try
|
|
list_fighters("", SelectedEvent.ID)
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub Load_Fighter_Data(FighterID As Integer)
|
|
|
|
Dim person As New person(FighterID)
|
|
|
|
lbl_age.Text = person.Age.Years
|
|
lbl_gender.Text = person.Gender
|
|
lbl_name.Text = person.FullName
|
|
lbl_nationality.Text = person.Nationality.Name
|
|
lbl_last_weight.Text = person.Weight.Weight & "Kg"
|
|
lbl_category.Text = person.Weight.WeightCategory
|
|
lbl_weight_class.Text = person.Weight.WeightClass
|
|
|
|
Try
|
|
pb_fighter.Image = Image.FromStream(person.PICTURE)
|
|
Catch ex As Exception
|
|
pb_fighter.Image = Nothing
|
|
End Try
|
|
|
|
Try
|
|
pb_flag.Image = Image.FromStream(person.Team.Country.Flag)
|
|
Catch ex As Exception
|
|
pb_flag.Image = Nothing
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub Load_Fighter_Matches(FighterID As Integer, EventID As Integer)
|
|
|
|
Dim QRY As String = ("
|
|
|
|
/*-----------------------------------------------------
|
|
THIS CODE IS FOR SEARCHING THE MATCHES
|
|
FOR A FIGHTER BY HIS/HER ID NUMBER
|
|
-----------------------------------------------------*/
|
|
|
|
SELECT
|
|
event_matches.id as 'MatchID',
|
|
event_matches.emn as 'MatchNo',
|
|
event_matches.ern as 'EventRound',
|
|
if(" & FighterID & " = blue.id, concat(red.fname, ' ', if(isnull(red.mname), '', red.mname), ' ', red.lname), concat(blue.fname, ' ', if(isnull(blue.mname), '', blue.mname), ' ', blue.lname)) as 'Opponent',
|
|
if(" & FighterID & " = winner.id, 'WIN', 'LOSE') as 'Result'
|
|
FROM
|
|
event_matches
|
|
LEFT JOIN
|
|
person as winner ON winner.id = event_matches.winner
|
|
LEFT JOIN
|
|
clubs as winner_club ON winner_club.id = winner.club
|
|
LEFT JOIN
|
|
person as blue ON blue.id = event_matches.blue_fighter
|
|
LEFT JOIN
|
|
clubs as blue_club ON blue_club.id = blue.club
|
|
LEFT JOIN
|
|
person as red ON red.id = event_matches.red_fighter
|
|
LEFT JOIN
|
|
clubs as red_club ON red_club.id = red.club
|
|
|
|
Where
|
|
(blue_fighter = " & FighterID & " or red_fighter = " & FighterID & ")
|
|
and
|
|
event_matches.started = true
|
|
and
|
|
event_matches.ended = true
|
|
and
|
|
event_matches.eid = " & EventID & "
|
|
order by
|
|
ern,
|
|
emn
|
|
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
|
|
Dim MatchDisplayText As String = "Match No. " & Zero(RDR("MatchNo")) & ", Round " & RDR("EventRound") & ", " & RDR("Opponent") & " - " & RDR("Result")
|
|
LST.Add(New dataset(RDR("MatchID"), MatchDisplayText))
|
|
End While
|
|
End If
|
|
CON.Close()
|
|
Catch ex As MySqlException
|
|
MessageBox.Show(ex.Message)
|
|
Finally
|
|
CON.Dispose()
|
|
End Try
|
|
|
|
lst_matches.DataSource = LST
|
|
lst_matches.ValueMember = "ID"
|
|
lst_matches.DisplayMember = "name"
|
|
|
|
End Sub
|
|
|
|
Private Sub Load_Fighter_Points(FighterID As Integer, EventID As Integer)
|
|
|
|
Dim QRY As String = ("
|
|
|
|
/*-----------------------------------------------------
|
|
THIS CODE IS FOR SEARCHING THE MATCH
|
|
DATA OF WINS LOSSES AND COLLECTED POINTS
|
|
-----------------------------------------------------*/
|
|
|
|
Select
|
|
(select count(*) as WIN from event_matches inner join event on event_matches.eid = event.id where event_matches.eid = " & EventID & " And event_matches.started = true And event_matches.ended = true And (blue_fighter = " & FighterID & " Or red_fighter = " & FighterID & ") And winner = " & FighterID & ") as 'WIN',
|
|
(select count(*) as WIN from event_matches inner join event on event_matches.eid = event.id where event_matches.eid = " & EventID & " And event_matches.started = true And event_matches.ended = true And (blue_fighter = " & FighterID & " Or red_fighter = " & FighterID & ") And winner != " & FighterID & ") as 'LOSS',
|
|
(select count(*) as WIN from event_matches inner join event on event_matches.eid = event.id where event_matches.eid = " & EventID & " And event_matches.started = true And event_matches.ended = true And (blue_fighter = " & FighterID & " Or red_fighter = " & FighterID & ") And winner = " & FighterID & ") * 3 as 'POINTS'
|
|
")
|
|
|
|
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
|
|
lbl_wins.Text = RDR("WIN")
|
|
lbl_loss.Text = RDR("LOSS")
|
|
lbl_rank.Text = RDR("POINTS")
|
|
End While
|
|
End If
|
|
CON.Close()
|
|
Catch ex As MySqlException
|
|
MessageBox.Show(ex.Message)
|
|
Finally
|
|
CON.Dispose()
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub Load_Match_Data(MatchID As Integer)
|
|
|
|
Dim QRY As String = ("
|
|
|
|
/*-----------------------------------------------------
|
|
THIS CODE IS FOR SEARCHING THE MATCH
|
|
BY MATCH ID NUMBER
|
|
-----------------------------------------------------*/
|
|
|
|
SELECT
|
|
event_matches.id as 'MatchID',
|
|
event_matches.ecn as 'Court',
|
|
event_matches.emn as 'MatchNo',
|
|
event_matches.ern as 'EventRound',
|
|
concat(blue.fname, ' ', blue.mname, ' ', blue.lname) as 'BlueName',
|
|
blue_club.title as 'BlueClub',
|
|
blue_club.logo as 'BlueLogo',
|
|
blue_score as 'BlueScore',
|
|
blue_foul as 'BlueFoul',
|
|
concat(red.fname, ' ', red.mname, ' ', red.lname) as 'RedName',
|
|
red_club.title as 'RedClub',
|
|
red_club.logo as 'RedLogo',
|
|
red_score as 'RedScore',
|
|
red_foul as 'RedFoul',
|
|
concat(winner.fname, ' ', winner.mname, ' ', winner.lname) as 'Winner'
|
|
FROM
|
|
event_matches
|
|
LEFT JOIN
|
|
person as winner ON winner.id = event_matches.winner
|
|
LEFT JOIN
|
|
clubs as winner_club ON winner_club.id = winner.club
|
|
LEFT JOIN
|
|
person as blue ON blue.id = event_matches.blue_fighter
|
|
LEFT JOIN
|
|
clubs as blue_club ON blue_club.id = blue.club
|
|
LEFT JOIN
|
|
person as red ON red.id = event_matches.red_fighter
|
|
LEFT JOIN
|
|
clubs as red_club ON red_club.id = red.club
|
|
|
|
Where
|
|
event_matches.started = true
|
|
and
|
|
event_matches.ended = true
|
|
and
|
|
event_matches.id = " & MatchID & "
|
|
order by
|
|
ern,
|
|
emn
|
|
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
|
|
|
|
Try
|
|
lbl_match_number.Text = RDR("MatchNo")
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
Try
|
|
lbl_court_number.Text = RDR("Court")
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
Try
|
|
lbl_blue_fighter.Text = RDR("BlueName")
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
Try
|
|
lbl_blue_score.Text = RDR("BlueScore")
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
Try
|
|
Dim data As Byte() = DirectCast(RDR("bluelogo"), Byte())
|
|
Dim BlueLogo = New System.IO.MemoryStream(data)
|
|
pb_blue_logo.Image = Image.FromStream(BlueLogo)
|
|
Catch ex As Exception
|
|
pb_blue_logo.Image = Nothing
|
|
End Try
|
|
|
|
Try
|
|
lbl_red_fighter.Text = RDR("RedName")
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
Try
|
|
lbl_red_score.Text = RDR("RedScore")
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
Try
|
|
Dim data As Byte() = DirectCast(RDR("redlogo"), Byte())
|
|
Dim RedLogo = New System.IO.MemoryStream(data)
|
|
pb_red_logo.Image = Image.FromStream(RedLogo)
|
|
Catch ex As Exception
|
|
pb_red_logo.Image = Nothing
|
|
End Try
|
|
|
|
Try
|
|
lbl_winner.Text = RDR("Winner")
|
|
Catch ex As Exception
|
|
|
|
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 ClearList()
|
|
|
|
Try
|
|
lst_fighters.DataSource = Nothing
|
|
lst_fighters.Items.Clear()
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub txt_search_TextChanged(sender As Object, e As EventArgs) Handles txt_search.TextChanged
|
|
|
|
ClearList()
|
|
|
|
Try
|
|
list_fighters(txt_search.Text, SelectedEvent.ID)
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub lst_fighters_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lst_fighters.SelectedIndexChanged
|
|
|
|
Try
|
|
Load_Fighter_Data(lst_fighters.SelectedValue)
|
|
Load_Fighter_Matches(lst_fighters.SelectedValue, SelectedEvent.ID)
|
|
Load_Fighter_Points(lst_fighters.SelectedValue, SelectedEvent.ID)
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub btn_close_Click(sender As Object, e As EventArgs) Handles btn_close.Click
|
|
|
|
Me.Close()
|
|
|
|
End Sub
|
|
|
|
Private Sub frm_fighter_statistics_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
|
|
|
|
'frm_main.Show()
|
|
frm_event_control.Show()
|
|
|
|
End Sub
|
|
|
|
Private Sub pb_fighter_Click(sender As Object, e As EventArgs) Handles pb_fighter.Click
|
|
|
|
If IsNothing(pb_fighter.Image) Then
|
|
|
|
' Open Picture File
|
|
open_picture_file()
|
|
|
|
' Store The Picture
|
|
update_fighter_picture()
|
|
|
|
ElseIf Not IsNothing(pb_fighter.Image) Then
|
|
|
|
Dim iPictureUpdate As DialogResult = MessageBox.Show("Would You Like To Update The Players Picture ?", "Picture Update", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
|
|
|
If iPictureUpdate = DialogResult.Yes Then
|
|
|
|
' Open Picture File
|
|
open_picture_file()
|
|
|
|
' Store The Picture
|
|
update_fighter_picture()
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub open_picture_file()
|
|
|
|
'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(385, 500)
|
|
|
|
' Resizing The Image
|
|
Dim ResizedImage = New Bitmap(Image.FromFile(FilePath), LogoSize)
|
|
|
|
' Display The Image
|
|
pb_fighter.Image = ResizedImage
|
|
|
|
' Saving The Image As PNG Format
|
|
pb_fighter.Image.Save(Picture, System.Drawing.Imaging.ImageFormat.Png)
|
|
|
|
' Read The Image As Bytes
|
|
Dim arrImage() As Byte = Picture.GetBuffer
|
|
|
|
' Closing The Picture
|
|
Picture.Close()
|
|
|
|
Catch ex As Exception
|
|
MessageBox.Show(ex.Message)
|
|
End Try
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub update_fighter_picture()
|
|
|
|
' Query To Update
|
|
Dim QRY As String = "update person set picture = @picture where id=" & lst_fighters.SelectedValue
|
|
|
|
' Connection
|
|
Dim CON As New MySqlConnection(CON_STRING)
|
|
Dim COM As New MySqlCommand(QRY, CON)
|
|
|
|
' Preparing The Image
|
|
Dim Picture As New MemoryStream
|
|
pb_fighter.Image.Save(Picture, System.Drawing.Imaging.ImageFormat.Png)
|
|
Dim arrImage() As Byte = Picture.GetBuffer
|
|
Picture.Close()
|
|
|
|
Try
|
|
CON.Open()
|
|
COM.Parameters.AddWithValue("@picture", arrImage)
|
|
COM.ExecuteNonQuery()
|
|
CON.Close()
|
|
Catch ex As MySqlException
|
|
MessageBox.Show(ex.Message)
|
|
Finally
|
|
CON.Dispose()
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Public Function Zero(Number As Integer) As String
|
|
|
|
If Number >= 0 And Number < 10 Then
|
|
|
|
Return "00" & Number
|
|
|
|
ElseIf Number >= 10 And Number < 100 Then
|
|
|
|
Return "0" & Number
|
|
|
|
Else
|
|
|
|
Return Number
|
|
|
|
End If
|
|
|
|
End Function
|
|
|
|
Private Sub list_fighters(filter As String, eventID As Integer)
|
|
|
|
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))
|
|
where
|
|
concat(fname, if(isnull(mname), '', concat(' ', mname)), ' ', lname) like '%" & filter & "%'
|
|
and
|
|
event_matches.eid = " & eventID & "
|
|
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
|
|
|
|
lst_fighters.DataSource = LST
|
|
lst_fighters.ValueMember = "ID"
|
|
lst_fighters.DisplayMember = "name"
|
|
|
|
End Sub
|
|
|
|
Private Sub lst_matches_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lst_matches.SelectedIndexChanged
|
|
|
|
Try
|
|
Load_Match_Data(lst_matches.SelectedValue)
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
End Class |