Advertisement
Guest User

Untitled

a guest
Jun 19th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.55 KB | None | 0 0
  1. Public Class frmUsers
  2.  
  3. Dim db As New Objects.Db
  4. Dim p As New Persist
  5. Dim user As New User
  6.  
  7. Public closeOnly As Boolean = False
  8.  
  9. Private Sub btnMenu_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnMenu.Click
  10. If Not (closeOnly) Then
  11. Me.Hide()
  12. frmMenu.Show()
  13. frmMenu.Focus()
  14. End If
  15. End Sub
  16.  
  17. Private Sub frmUsers_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
  18. If Not (closeOnly) Then
  19. frmMenu.Show()
  20. frmMenu.Focus()
  21. End If
  22. End Sub
  23.  
  24. Private Sub btnUser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUser.Click
  25. ViewRecord(txtUsername.Text)
  26. End Sub
  27.  
  28. Public Sub ViewRecord(Optional ByVal username As String = "")
  29.  
  30. If (username = "") Then
  31. username = txtUsername.Text
  32. Else
  33. txtUsername.Text = username
  34. End If
  35.  
  36. Dim tmpUser As User = p.GetObject(db.SQLSelect("Users", New Collection, "Username = '" & username & "'"), New User)
  37.  
  38. If (tmpUser.Username <> "") Then 'record found
  39. txtFirstName.Text = tmpUser.FirstName
  40. txtSurname.Text = tmpUser.Surname
  41. txtPassword.Text = tmpUser.Password
  42. txtComments.Text = tmpUser.Comments
  43. cboUserLevel.SelectedIndex = tmpUser.AccessLevel - 1
  44. txtUsername.BackColor = Color.PaleGreen
  45. user = tmpUser
  46. Else
  47. MsgBox("Could not find user: ''" & txtUsername.Text & "''", MsgBoxStyle.Exclamation, "Error")
  48. txtUsername.Text = user.Username
  49.  
  50. If (user.Username = "") Then 'no records in database
  51. txtUsername.BackColor = Color.Red
  52. End If
  53. End If
  54.  
  55. End Sub
  56.  
  57. Private Sub UpdateUserObject()
  58. user.Username = txtUsername.Text
  59. user.FirstName = txtFirstName.Text
  60. user.Surname = txtSurname.Text
  61. user.Password = txtPassword.Text
  62. user.Comments = txtComments.Text
  63. user.AccessLevel = cboUserLevel.SelectedIndex + 1
  64. End Sub
  65.  
  66. Private Sub ClearInput()
  67. txtUsername.Text = ""
  68. txtComments.Text = ""
  69. txtFirstName.Text = ""
  70. txtSurname.Text = ""
  71. txtPassword.Text = ""
  72. cboUserLevel.Text = ""
  73. End Sub
  74.  
  75. Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
  76.  
  77. 'error checking
  78. If (txtUsername.Text = "") Then
  79. MsgBox("Username cannot be blank.", MsgBoxStyle.Exclamation, "Error")
  80. Exit Sub
  81. End If
  82.  
  83.  
  84.  
  85. 'update
  86. Dim oldUsername As String = user.Username
  87. UpdateUserObject()
  88.  
  89. If (oldUsername <> txtUsername.Text) And btnAdd.Enabled = True Then
  90. MsgBox("Username cannot be changed. Username has been reset to: ''" & oldUsername & "''", MsgBoxStyle.Exclamation, "Error")
  91. user.Username = oldUsername
  92. End If
  93.  
  94. If (btnCancel.Enabled = False) Then 'editing
  95.  
  96. p.UpdateObject(user)
  97.  
  98. If (user.Username = frmLogin.user.Username) Then 'edited current user
  99. frmLogin.user = user 'get updated user details
  100. End If
  101. Else
  102. 'adding
  103. If (txtUsername.Text <> "") Then
  104.  
  105. 'check that username is unique
  106. Dim tempuser As DataTable
  107. tempuser = db.SQLSelect("Users", "Username", "Username = '" & txtUsername.Text & "'")
  108.  
  109. If tempuser.Rows.Count > 0 Then
  110. MsgBox("There is already a user with that username. Enter a unique username.", MsgBoxStyle.Exclamation, "Error")
  111. txtUsername.Focus()
  112. Exit Sub
  113. Else
  114.  
  115. UpdateUserObject()
  116. p.AddObject(user)
  117.  
  118. 'normal mode
  119. btnUser.Enabled = True
  120. btnDelete.Enabled = True
  121. btnCancel.Enabled = False
  122. btnAdd.Enabled = True
  123. End If
  124. Else
  125. MsgBox("Please fill in all fields. (Comments are optional).", MsgBoxStyle.Exclamation, "Error")
  126. End If
  127. End If
  128.  
  129. End Sub
  130.  
  131. Public Sub ShowDefault()
  132. Dim r As User = p.GetObject(db.SQLSelect("Users", "TOP(1) * "), New User)
  133. If (r.Username <> "") Then
  134. ViewRecord(r.Username)
  135. Else 'no records
  136. txtUsername.BackColor = Color.Red
  137. End If
  138. End Sub
  139.  
  140. Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
  141. Dim username As String = user.Username
  142. Dim defaultUser As User = p.GetObject(db.SQLSelect("User", New Collection, "Top(1) *", "Username <> '" & user.Username & "'"), New User)
  143. Dim result As MsgBoxResult
  144.  
  145. If (defaultUser.Username <> "") Then
  146. 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")
  147. Else
  148. MsgBox("Cannot delete user. This is the only user registered on the system. At least one user is required to run the system.")
  149. Exit Sub
  150. End If
  151.  
  152. Dim usersCount As DataTable = db.SQLSelect("Users", "COUNT(Username)")
  153. If (usersCount.Rows.Count = 1) Then
  154. defaultUser.AccessLevel = 2
  155. p.UpdateObject(defaultUser)
  156. End If
  157.  
  158. If (result = MsgBoxResult.Yes) Then
  159. UpdateUserObject()
  160. p.DeleteObject(user)
  161.  
  162. 'enforce referential integerity
  163. db.SQLUpdate("Bookings", "StaffUsername='" & defaultUser.Username & "'", "StaffUsername='" & username & "'")
  164. db.SQLUpdate("Locations", "Manager='" & defaultUser.Username & "'", "Manager='" & username & "'")
  165.  
  166. ShowDefault()
  167. End If
  168.  
  169. End Sub
  170.  
  171. Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
  172. ClearInput()
  173. btnUser.Enabled = False
  174. btnDelete.Enabled = False
  175. btnCancel.Enabled = True
  176. btnAdd.Enabled = False
  177. user = New User 'clear user data
  178. End Sub
  179.  
  180. Private Sub frmUsers_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  181. ShowDefault()
  182. End Sub
  183.  
  184. Private Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancel.Click
  185. 'normal mode
  186. btnCancel.Enabled = False
  187. btnUser.Enabled = True
  188. btnDelete.Enabled = True
  189. btnAdd.Enabled = True
  190.  
  191. Dim r As DataTable = db.SQLSelect("Users", "TOP(1) *")
  192. If (r.Rows.Count > 0) Then
  193. ViewRecord(r.Rows(0).Item("Username"))
  194. txtUsername.Text = r.Rows(0).Item("Username")
  195. End If
  196. End Sub
  197.  
  198. Private Sub btnLoginAs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoginAs.Click
  199. If (user.Username <> "") Then
  200. frmLogin.user = user
  201. MsgBox("You are now logged in as ''" & user.Username & "''.")
  202. Else
  203. MsgBox("Please select a user first.")
  204. End If
  205. End Sub
  206.  
  207. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement