* Remove most non DI usages of DbContext
* Optimize website queries and refactor startup to use top level statements
* Remove unused functions in UserEntity and SlotEntity
* Optimize LBP1 LevelTags
* Refactor RepeatingTaskHandler into an ASP.NET service
* Add unit tests for RepeatingTaskService
* Make repeating task unit tests work independent of time
* Fix weird behavior when task is canceled
* 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
* Initial work for rate limiting
* Refactor GameServerStartup and change default rate limit config
* Adjust config naming and add Enabled option to global and override rate limits
* Fix LBP3 republish bug
* Fix bugs in rate limiting and allow for multiple matched overrides
* Add this qualifier for private variable
* Changes from self review
* Initial work for user settings page
* Finish user setting and slot setting pages
* Don't show slot upload date on home page and fix team pick redirection
* Fix upload image button alignment on mobile
* Fix image upload on iPhone
* Remove unused css and add selected button color
* Fix login email check and bump ChromeDriver to 105
* Remove duplicated code and allow users to leave fields empty
* Add unpublish button on level settings and move settings button position
* Don't show edit button on mini card
* Self review bug fixes and users can no longer use an in-use email