* Implement notifications logic, basic calls, and admin command
* Remove unnecessary code
* Add ability to stack notifications and return manually created XML
* Remove test that is no longer needed and is causing failures
* Apply suggestions from code review
* Merge notifications with existing announcements page
* Order notifications by descending ID instead of ascending ID
* Move notification send task to moderation options under user
Also restyles the buttons to line up next to each other like in the slot pages.
* Style/position fixes with granted slots/notification partials
* Fix incorrect form POST route
* Prevent notification text area from breaking out of container
* Actually use builder result for notification text
* Minor restructuring of the notifications page
* Add notifications for team picks, publish issues, and moderation
* Mark notifications as dismissed instead of deleting them
* Add XMLdoc to SendNotification method
* Fix incorrect URL in announcements webhook
* Remove unnecessary inline style from granted slots partial
* Apply suggestions from code review
* Apply first batch of suggestions from code review
* Apply second batch of suggestions from code review
* Change notification icon depending on if user has unread notifications
* Show unread notification icon if there is an announcement posted
* Remove "potential" wording from definitive fixes in error docs
* Remove "Error code:" from publish notifications
* Send notification if user tries to unlock a mod-locked level
* Change notification timestamp format to include date
* Add clarification to level mod-lock notification message
* Change team pick notifications to moderation notifications
Apparently the MMPick type doesn't show a visual notification.
* Apply suggestions from code review
* Add obsolete to notification types that display nothing in-game
* Remove unused imports and remove icon switch case in favor of bell icon
* Last minute fixes
* Send notification upon earth wipe and clarify moderation case notifications
* Add check for empty/too long notification text
* Improve game server announce by using StringBuilder
* Implement web announcements (condensed commit)
* Implement discord webhook support
* Display a separate message if there are no announcements
* Fix announcement string unit tests
* Fix header admin button unit test
* Clarify announcement id variable name
* Increase webhook truncation limit to 250 chars
* Convert announce text to string when returning 200
* Fix announcement unit tests ... again
* Make announcement text input a textarea rather than a simple input
* Fix styling discrepancy
* Clarify submission button
* Improve announcement webhook & set default textarea row amount
* Initial implementation of new slot sorting and filtering system
* Initial implementation of filtering for lbp3 community tab
* Add support for organization on lbp3
* Add playlist and user categories
* Implement unit tests for all filters
Refactor more systems to use PaginationData
* Fix PlayerCountFilter test
* Add more unit tests and integration tests for the filter system
* Fix LBP2 move filter and gameFilterType
* Fix sort by likes in LBP3 category
* Add sort for total plays
* Remove extra whitespace and make styling more consistent
* Order hearted and queued levels by primary key ID
* Fix query without order warnings
* Reorganize tests into unit/integration pattern
* Make DbSets virtual so they can be overridden by tests
* Add MessageControllerTests
* Implement DigestMiddlewareTests
* Refactor SMTPHelper to follow DI pattern which allows for mocking in unit tests.
* Fix MailQueueService service registration and shutdown
* Implement tests for Status and StatisticsController and reorganize tests
* Start working on UserControllerTests
* Start refactoring tests to use In-Memory EF provider
* Refactor integration tests to reset the database every time
Change default unit testing database credentials
* Update credentials to use default root with different passwords
* Throw exception when integration db is not available instead of falling back to in-memory
* Evaluate DbConnected every time
* Remove default DbContext constructor
* Setup DbContexts with options builder
* Convert remaining Moq DbContexts to InMemory ones
* Add more tests and use Assert.IsType for testing status code
* Add collection attribute to LighthouseServerTest
* Remove unused directives and calculate digest in tests
* Fix digest calculation in tests
* Add test database call
* Clear rooms after each test
* Fix CommentControllerTests.cs
* Disable test parallelization for gameserver tests
* Fix failing tests
Fix SlotTests
Make CreateUser actually add user to database
Fix dbConnected Lazy and change expected status codes
Properly Remove fragment from url for digest calculation
Fix digest calculation for regular requests
[skip ci] Remove unused directive
Don't use Database CreateUser function
Get rid of userId argument for generating random user
Rewrite logic for generating random users
Fix integration tests
* Implement changes from self-code review
* Fix registration tests
* Replace MailQueueService usages with IMailService