Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

117 rindas
4.5KB

  1. <%
  2. Class boards_Repository_Class
  3. Public Function FindByID(id)
  4. Dim sql : sql = "SELECT [id],[name],[slug],[import_from_printstream],[printstream_job_name],[created_at],[created_by],[updated_at],[updated_by] FROM [boards] WHERE [id] = ?"
  5. Dim rs : Set rs = DAL.Query(sql, Array(id))
  6. If rs.EOF Then
  7. Err.Raise 1, "boards_Repository_Class", "Board not found with id = " & id
  8. Else
  9. Set FindByID = Automapper.AutoMap(rs, "POBO_boards")
  10. End If
  11. Destroy rs
  12. End Function
  13. Public Function FindBySlug(slug)
  14. Dim sql : sql = "SELECT [id],[name],[slug],[import_from_printstream],[printstream_job_name],[created_at],[created_by],[updated_at],[updated_by] FROM [boards] WHERE [slug] = ?"
  15. Dim rs : Set rs = DAL.Query(sql, Array(slug))
  16. If rs.EOF Then
  17. Set FindBySlug = Nothing
  18. Else
  19. Set FindBySlug = Automapper.AutoMap(rs, "POBO_boards")
  20. End If
  21. Destroy rs
  22. End Function
  23. Public Function GetAll()
  24. Dim sql : sql = "SELECT [id],[name],[slug],[import_from_printstream],[printstream_job_name],[created_at],[created_by],[updated_at],[updated_by] FROM [boards] ORDER BY [name] ASC"
  25. Dim rs : Set rs = DAL.Query(sql, Empty)
  26. Dim list : Set list = New LinkedList_Class
  27. Do Until rs.EOF
  28. list.Push Automapper.AutoMap(rs, "POBO_boards")
  29. rs.MoveNext
  30. Loop
  31. Set GetAll = list
  32. Destroy rs
  33. End Function
  34. Public Function SlugExists(slug, excludeId)
  35. Dim sql, rs
  36. If CLng(excludeId) > 0 Then
  37. sql = "SELECT COUNT(*) FROM [boards] WHERE [slug] = ? AND [id] <> ?"
  38. Set rs = DAL.Query(sql, Array(slug, excludeId))
  39. Else
  40. sql = "SELECT COUNT(*) FROM [boards] WHERE [slug] = ?"
  41. Set rs = DAL.Query(sql, Array(slug))
  42. End If
  43. SlugExists = (rs(0) > 0)
  44. Destroy rs
  45. End Function
  46. Public Function UniqueSlug(baseSlug, excludeId)
  47. Dim candidate, suffix
  48. candidate = baseSlug
  49. suffix = 2
  50. Do While SlugExists(candidate, excludeId)
  51. candidate = baseSlug & "-" & suffix
  52. suffix = suffix + 1
  53. Loop
  54. UniqueSlug = candidate
  55. End Function
  56. Public Sub AddNew(ByRef model)
  57. Dim sql : sql = "INSERT INTO [boards] ([name],[slug],[import_from_printstream],[printstream_job_name],[created_at],[created_by],[updated_at],[updated_by]) VALUES (?,?,?,?,?,?,?,?)"
  58. DAL.Execute sql, Array(model.name, model.slug, model.import_from_printstream, model.printstream_job_name, model.created_at, model.created_by, model.updated_at, model.updated_by)
  59. Dim rsId : Set rsId = DAL.Query("SELECT @@IDENTITY AS NewID", Empty)
  60. If Not rsId.EOF Then
  61. If Not IsNull(rsId(0)) Then model.id = rsId(0)
  62. End If
  63. Destroy rsId
  64. End Sub
  65. Public Sub Update(model)
  66. Dim sql : sql = "UPDATE [boards] SET [name]=?,[slug]=?,[import_from_printstream]=?,[printstream_job_name]=?,[updated_at]=?,[updated_by]=? WHERE [id]=?"
  67. DAL.Execute sql, Array(model.name, model.slug, model.import_from_printstream, model.printstream_job_name, model.updated_at, model.updated_by, model.id)
  68. End Sub
  69. Public Sub Delete(id)
  70. DAL.Execute "DELETE FROM [boards] WHERE [id]=?", Array(id)
  71. End Sub
  72. Public Function Count()
  73. Dim rs : Set rs = DAL.Query("SELECT COUNT(*) FROM [boards]", Empty)
  74. Count = CLng(rs(0))
  75. Destroy rs
  76. End Function
  77. Public Function GetBoardSummaries()
  78. Dim sql : sql = "SELECT b.[name], b.[slug], COUNT(c.[id]) AS [card_count] " & _
  79. "FROM [boards] b " & _
  80. "LEFT JOIN [cards] c ON c.[board_id] = b.[id] " & _
  81. "GROUP BY b.[name], b.[slug] " & _
  82. "ORDER BY b.[name]"
  83. Dim rs : Set rs = DAL.Query(sql, Empty)
  84. Dim list : Set list = New LinkedList_Class
  85. Do Until rs.EOF
  86. Dim d : Set d = CreateObject("Scripting.Dictionary")
  87. d.Add "name", CStr(rs("name"))
  88. d.Add "slug", CStr(rs("slug"))
  89. d.Add "card_count", CLng(rs("card_count"))
  90. list.Push d
  91. rs.MoveNext
  92. Loop
  93. Set GetBoardSummaries = list
  94. Destroy rs
  95. End Function
  96. End Class
  97. Dim boards_Repository__Singleton
  98. Function boards_Repository()
  99. If IsEmpty(boards_Repository__Singleton) Then
  100. Set boards_Repository__Singleton = New boards_Repository_Class
  101. End If
  102. Set boards_Repository = boards_Repository__Singleton
  103. End Function
  104. %>

Powered by TurnKey Linux.