* 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 serialization refactor
* Experiment with new naming conventions
* Mostly implement user and slot serialization.
Still needs to be fine tuned to match original implementation
Many things are left in a broken state like website features/api endpoints/lbp3 categories
* Fix release building
* Migrate scores, reviews, and more to new serialization system.
Many things are still broken but progress is steadily being made
* Fix Api responses and migrate serialization for most types
* Make serialization better and fix bugs
Fix recursive PrepareSerialization when recursive item is set during root item's PrepareSerialization, items, should be properly indexed in order but it's only tested to 1 level of recursion
* Fix review serialization
* Fix user serialization producing malformed SQL query
* Remove DefaultIfEmpty query
* MariaDB doesn't like double nested queries
* Fix LBP1 tag counter
* Implement lbp3 categories and add better deserialization handling
* Implement expression tree caching to speed up reflection and write new serializer tests
* Remove Game column from UserEntity and rename DatabaseContextModelSnapshot.cs back to DatabaseModelSnapshot.cs
* Make UserEntity username not required
* Fix recursive serialization of lists and add relevant unit tests
* Actually commit the migration
* Fix LocationTests to use new deserialization class
* Fix comments not serializing the right author username
* Replace all occurrences of StatusCode with their respective ASP.NET named result
instead of StatusCode(403) everything is now in the form of Forbid()
* Fix SlotBase.ConvertToEntity and LocationTests
* Fix compilation error
* Give Location a default value in GameUserSlot and GameUser
* Reimplement stubbed website functions
* Convert grief reports to new serialization system
* Update DatabaseModelSnapshot and bump dotnet tool version
* Remove unused directives
* Fix broken type reference
* Fix rated comments on website
* Don't include banned users in website comments
* Optimize score submission
* Fix slot id calculating in in-game comment posting
* Move serialization interfaces to types folder and add more documentation
* Allow uploading of versus scores
* Start of reorganization and cleanup
* Remove duplicate title id
* Refactor types
* Fix Release building
* Move classes in /Types to a Types namespace
* Fix compilation error (RoomVisualizerPage strikes again)
* Fix bugs created from auto merge
* Fix auto-merge compilation error
* Changes from review/fix failed merge
* Make tests run in release mode
* Fix multiple command in ci
* I forgot how yaml works
* Shitty workaround
* grr mondays
* Add an NP ticket builder for unit tests
* Add NP ticket unit testing
* Fix range indexers for finding uid
* Fix LoginTests
* Validate unit test signatures
* Make builder code follow same style conventions
* Remove remnant of hardcoded issuer id
* Initial work for verifying login ticket signatures
* Add candidate psn public key
* Add candidate psn public key and fix nuget packages
* Finalize npticket changes
* Add support for ticket version 3.0
* Rework login system to link platform accounts instead of using ip addresses
* Make linked accounts green instead of blue
* Fix api building
* Fix unit tests
* Actually fix unit tests
* Set unit test user's linked platform
* Why was this the wrong default value?
* Fix username change code
* Make TicketHash hash the entire ticket instead of just the serial
* Send password setup email when user sets their email for the first time
* Changes from self review