fix some race conditions

- use session lock for SetKeyValuePair* endpoints
- use session lock for SetAchievementByEntityIDs endpoints
This commit is contained in:
Robert Paciorek 2023-09-16 18:05:39 +00:00 committed by Spirtix
parent 1d08f92498
commit 9071d0bf37
2 changed files with 2 additions and 2 deletions

View File

@ -179,7 +179,7 @@ public class AchievementController : Controller {
[HttpPost] [HttpPost]
[Produces("application/xml")] [Produces("application/xml")]
[Route("AchievementWebService.asmx/SetAchievementByEntityIDs")] [Route("AchievementWebService.asmx/SetAchievementByEntityIDs")]
[VikingSession] [VikingSession(UseLock=true)]
public IActionResult SetAchievementByEntityIDs(Viking viking, [FromForm] int achievementID, [FromForm] string petIDs) { public IActionResult SetAchievementByEntityIDs(Viking viking, [FromForm] int achievementID, [FromForm] string petIDs) {
Guid[] petGuids = XmlUtil.DeserializeXml<Guid[]>(petIDs); Guid[] petGuids = XmlUtil.DeserializeXml<Guid[]>(petIDs);

View File

@ -115,7 +115,7 @@ public class ContentController : Controller {
[Produces("application/xml")] [Produces("application/xml")]
[Route("ContentWebService.asmx/SetKeyValuePair")] [Route("ContentWebService.asmx/SetKeyValuePair")]
[Route("ContentWebService.asmx/SetKeyValuePairByUserID")] [Route("ContentWebService.asmx/SetKeyValuePairByUserID")]
[VikingSession(Mode=VikingSession.Modes.VIKING_OR_USER)] [VikingSession(Mode=VikingSession.Modes.VIKING_OR_USER, UseLock=true)]
public IActionResult SetKeyValuePairByUserID(User? user, Viking? viking, [FromForm] int pairId, [FromForm] string contentXML, [FromForm] string? userId) { public IActionResult SetKeyValuePairByUserID(User? user, Viking? viking, [FromForm] int pairId, [FromForm] string contentXML, [FromForm] string? userId) {
Schema.PairData schemaData = XmlUtil.DeserializeXml<Schema.PairData>(contentXML); Schema.PairData schemaData = XmlUtil.DeserializeXml<Schema.PairData>(contentXML);