PageRenderTime 39ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/Source Code/SongDatabase/Licenses.vb

#
Visual Basic | 100 lines | 59 code | 30 blank | 11 comment | 0 complexity | c9af90d83a39077d198df74a1e1d1193 MD5 | raw file
  1. Public Class Licenses
  2. Friend FDatabase As Database = Nothing
  3. Friend FLicenseData As Data.LicensesDataTable = Nothing
  4. Friend Sub New(ByVal database As Database)
  5. FDatabase = database
  6. FLicenseData = database.Data.Licenses
  7. End Sub
  8. Public Function GetAllLicenses() As List(Of License)
  9. ' Get all of the available licenses
  10. Dim Result As New List(Of License)
  11. For Each Row As Data.LicensesRow In FLicenseData
  12. Result.Add(CreateLicense(Row))
  13. Next
  14. ' Return the list of licenses
  15. Return Result
  16. End Function
  17. Public Function FindLicense(ByVal licenseName As String) As License
  18. ' Find the license
  19. licenseName = licenseName.ToUpper.Trim
  20. For Each Row As Data.LicensesRow In FLicenseData
  21. If Row.Name.ToUpper.Trim = licenseName Then
  22. Return CreateLicense(Row)
  23. End If
  24. Next
  25. ' The license could not be found
  26. Return Nothing
  27. End Function
  28. Public Function DoesLicenseExist(ByVal licenseID As Guid) As Boolean
  29. Return FLicenseData.FindByLicenseID(licenseID) IsNot Nothing
  30. End Function
  31. Public Function GetLicense(ByVal licenseID As Guid) As License
  32. Return CreateLicense(FLicenseData.FindByLicenseID(licenseID))
  33. End Function
  34. Public Sub AddLicense(ByVal license As License)
  35. ' Create the row for the license in the XML database
  36. Dim LicenseID As Guid = Guid.NewGuid
  37. license.LicenseID = LicenseID
  38. FLicenseData.AddLicensesRow(LicenseID, license.Name, license.Details, license.Number)
  39. ' Save the database
  40. FDatabase.Save()
  41. End Sub
  42. Public Sub DeleteLicense(ByVal license As License)
  43. DeleteLicense(license.LicenseID)
  44. End Sub
  45. Public Sub DeleteLicense(ByVal licenseID As Guid)
  46. ' Remove the license row
  47. FLicenseData.RemoveLicensesRow(FLicenseData.FindByLicenseID(licenseID))
  48. ' Save changes
  49. FDatabase.Save()
  50. End Sub
  51. Public Sub EditLicense(ByVal licenseID As Guid, ByVal license As License)
  52. ' Internal check
  53. If license.LicenseID <> licenseID Then Throw New ApplicationException("A license is being edited but an invalid license ID was provided.")
  54. ' Change the main license row
  55. Dim LicenseRow As Data.LicensesRow = FLicenseData.FindByLicenseID(licenseID)
  56. LicenseRow.LicenseID = license.LicenseID
  57. LicenseRow.Name = license.Name
  58. LicenseRow.Details = license.Details
  59. LicenseRow.Number = license.Number
  60. ' Save changes
  61. FDatabase.Save()
  62. End Sub
  63. Private Function CreateLicense(ByVal licenseRow As Data.LicensesRow) As License
  64. Dim Result As New License(licenseRow.Name)
  65. Result.LicenseID = licenseRow.LicenseID
  66. Result.Details = licenseRow.Details
  67. Result.Number = licenseRow.Number
  68. Return Result
  69. End Function
  70. End Class