Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Class frmUsers
- Dim db As New Objects.Db
- Dim p As New Persist
- Dim user As New User
- Public closeOnly As Boolean = False
- Private Sub btnMenu_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnMenu.Click
- If Not (closeOnly) Then
- Me.Hide()
- frmMenu.Show()
- frmMenu.Focus()
- End If
- End Sub
- Private Sub frmUsers_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
- If Not (closeOnly) Then
- frmMenu.Show()
- frmMenu.Focus()
- End If
- End Sub
- Private Sub btnUser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUser.Click
- ViewRecord(txtUsername.Text)
- End Sub
- Public Sub ViewRecord(Optional ByVal username As String = "")
- If (username = "") Then
- username = txtUsername.Text
- Else
- txtUsername.Text = username
- End If
- Dim tmpUser As User = p.GetObject(db.SQLSelect("Users", New Collection, "Username = '" & username & "'"), New User)
- If (tmpUser.Username <> "") Then 'record found
- txtFirstName.Text = tmpUser.FirstName
- txtSurname.Text = tmpUser.Surname
- txtPassword.Text = tmpUser.Password
- txtComments.Text = tmpUser.Comments
- cboUserLevel.SelectedIndex = tmpUser.AccessLevel - 1
- txtUsername.BackColor = Color.PaleGreen
- user = tmpUser
- Else
- MsgBox("Could not find user: ''" & txtUsername.Text & "''", MsgBoxStyle.Exclamation, "Error")
- txtUsername.Text = user.Username
- If (user.Username = "") Then 'no records in database
- txtUsername.BackColor = Color.Red
- End If
- End If
- End Sub
- Private Sub UpdateUserObject()
- user.Username = txtUsername.Text
- user.FirstName = txtFirstName.Text
- user.Surname = txtSurname.Text
- user.Password = txtPassword.Text
- user.Comments = txtComments.Text
- user.AccessLevel = cboUserLevel.SelectedIndex + 1
- End Sub
- Private Sub ClearInput()
- txtUsername.Text = ""
- txtComments.Text = ""
- txtFirstName.Text = ""
- txtSurname.Text = ""
- txtPassword.Text = ""
- cboUserLevel.Text = ""
- End Sub
- Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
- 'error checking
- If (txtUsername.Text = "") Then
- MsgBox("Username cannot be blank.", MsgBoxStyle.Exclamation, "Error")
- Exit Sub
- End If
- 'update
- Dim oldUsername As String = user.Username
- UpdateUserObject()
- If (oldUsername <> txtUsername.Text) And btnAdd.Enabled = True Then
- MsgBox("Username cannot be changed. Username has been reset to: ''" & oldUsername & "''", MsgBoxStyle.Exclamation, "Error")
- user.Username = oldUsername
- End If
- If (btnCancel.Enabled = False) Then 'editing
- p.UpdateObject(user)
- If (user.Username = frmLogin.user.Username) Then 'edited current user
- frmLogin.user = user 'get updated user details
- End If
- Else
- 'adding
- If (txtUsername.Text <> "") Then
- 'check that username is unique
- Dim tempuser As DataTable
- tempuser = db.SQLSelect("Users", "Username", "Username = '" & txtUsername.Text & "'")
- If tempuser.Rows.Count > 0 Then
- MsgBox("There is already a user with that username. Enter a unique username.", MsgBoxStyle.Exclamation, "Error")
- txtUsername.Focus()
- Exit Sub
- Else
- UpdateUserObject()
- p.AddObject(user)
- 'normal mode
- btnUser.Enabled = True
- btnDelete.Enabled = True
- btnCancel.Enabled = False
- btnAdd.Enabled = True
- End If
- Else
- MsgBox("Please fill in all fields. (Comments are optional).", MsgBoxStyle.Exclamation, "Error")
- End If
- End If
- End Sub
- Public Sub ShowDefault()
- Dim r As User = p.GetObject(db.SQLSelect("Users", "TOP(1) * "), New User)
- If (r.Username <> "") Then
- ViewRecord(r.Username)
- Else 'no records
- txtUsername.BackColor = Color.Red
- End If
- End Sub
- Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
- Dim username As String = user.Username
- Dim defaultUser As User = p.GetObject(db.SQLSelect("User", New Collection, "Top(1) *", "Username <> '" & user.Username & "'"), New User)
- Dim result As MsgBoxResult
- If (defaultUser.Username <> "") Then
- result = MsgBox("Are you sure you want to delete this record?" & Chr(13) & Chr(13) & "All locations that have their manager set to this user & all bookings that are related to this user will revert to the default user ''" & defaultUser.FullName & "''. This ensures application stabillity." & Chr(13) & Chr(13) & "Continue?", MsgBoxStyle.YesNo, "Caution")
- Else
- MsgBox("Cannot delete user. This is the only user registered on the system. At least one user is required to run the system.")
- Exit Sub
- End If
- Dim usersCount As DataTable = db.SQLSelect("Users", "COUNT(Username)")
- If (usersCount.Rows.Count = 1) Then
- defaultUser.AccessLevel = 2
- p.UpdateObject(defaultUser)
- End If
- If (result = MsgBoxResult.Yes) Then
- UpdateUserObject()
- p.DeleteObject(user)
- 'enforce referential integerity
- db.SQLUpdate("Bookings", "StaffUsername='" & defaultUser.Username & "'", "StaffUsername='" & username & "'")
- db.SQLUpdate("Locations", "Manager='" & defaultUser.Username & "'", "Manager='" & username & "'")
- ShowDefault()
- End If
- End Sub
- Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
- ClearInput()
- btnUser.Enabled = False
- btnDelete.Enabled = False
- btnCancel.Enabled = True
- btnAdd.Enabled = False
- user = New User 'clear user data
- End Sub
- Private Sub frmUsers_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
- ShowDefault()
- End Sub
- Private Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancel.Click
- 'normal mode
- btnCancel.Enabled = False
- btnUser.Enabled = True
- btnDelete.Enabled = True
- btnAdd.Enabled = True
- Dim r As DataTable = db.SQLSelect("Users", "TOP(1) *")
- If (r.Rows.Count > 0) Then
- ViewRecord(r.Rows(0).Item("Username"))
- txtUsername.Text = r.Rows(0).Item("Username")
- End If
- End Sub
- Private Sub btnLoginAs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoginAs.Click
- If (user.Username <> "") Then
- frmLogin.user = user
- MsgBox("You are now logged in as ''" & user.Username & "''.")
- Else
- MsgBox("Please select a user first.")
- End If
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement