* Refactor various parts of the HttpListener to support Blazor loading
* Add logging for WebSocket requests
* Add better handling for WebSockets not belonging to SPT
* Remove unecessary check
* Remove check as it's already handled earlier now
* Cleanup
* Set delegate
* Add edge case for Reverse Proxies
* Cleanup HttpListener, remove unecessary MemoryStreams
* Handle with IPAddress instead of string
* Handle nullabiity of RouteAction, tighten typing on requests
* Cleanup HttpRouter
* Use tighter typing on Routers
* Changed application to use background services and removed hacky http server startup
* Small improvements and method removals
* Removed Core dependency on Web application SDK
* Fixed wrong imported type
---------
Co-authored-by: Alex <clodanSPT@hotmail.com>
Co-authored-by: Chomp <27521899+chompDev@users.noreply.github.com>
Convert constructors into primary constructors
Simplified logic with use of ??, ??= and method groups
Cleaned up redundant conditional access qualifiers
* Add new service to handle profile migrations
* Handle various null checks
* Remove unecessary assignments
* Further works on this:
- Loads profiles as JObject's initally, so migration can take place on profiles that don't have proper compatability
- Adds prerequisite migrations, and sorts them after one another
* Throw exception if profile can't be deserialized after migration
* Cleanup & use profile version
* Further migrations work, support 3.10 & 3.11 profiles upgrading to 4.0
* Update parameter name
* Remove old IsValidMongoId and Regex
* Convert more configs to MongoId, as well as BaseClasses
* Remove HashUtil.Generate(), replaced with new MongoId()
Made `RagfairRequiredItemService` a singleton
Made `RagfairRequiredItemService ` store offerIds instead of offer objects, reducing memory footprint
Reworked `GetOffersThatRequireItem` to work with `RagfairRequiredItemService` changes
Moved `GenerateDynamicOffers` to run after garbage colelction, this means GC will work on memory prior to new offers being added but after stale offers are removed
Made `PaymentHelper` a singleton + Store currency tpls in a hashset instead of list
Comment improvements
* Rename `Assets` to `SPT_Data`
* Added GZ 20+ variant to repeatable quest system #395
* Repeatable code cleanup
* Removed PMC level check for repeatable Quest pool generation #395
they will always generate for both GZ variants
* Rename `Assets` to `SPT_Data`
---------
Co-authored-by: Chomp <dev@dev.sp-tarkov.com>
* Further async changes
- SaveServer & Backup Server are now async
- Anything that ties in with SaveServer saving (Such as callbacks) are now async
- Various async util methods added
- Removed two wrapper methods and switched code over to use the actual method
* Update test