diff --git a/src/Controllers/Common/ContentController.cs b/src/Controllers/Common/ContentController.cs index 45173cc..141c038 100644 --- a/src/Controllers/Common/ContentController.cs +++ b/src/Controllers/Common/ContentController.cs @@ -759,7 +759,7 @@ public class ContentController : Controller { [Produces("application/xml")] [Route("V2/ContentWebService.asmx/SetTaskState")] [VikingSession] - public IActionResult SetTaskState(Viking viking, [FromForm] Guid userId, [FromForm] int missionId, [FromForm] int taskId, [FromForm] bool completed, [FromForm] string xmlPayload, [FromForm] string apiKey) { + public IActionResult SetTaskState(Viking viking, [FromForm] Guid userId, [FromForm] int missionId, [FromForm] int taskId, [FromForm] bool completed, [FromForm] string xmlPayload, [FromForm] string commonInventoryRequestXml, [FromForm] string apiKey) { if (viking.Uid != userId) return Unauthorized("Can't set not owned task"); @@ -770,6 +770,12 @@ public class ContentController : Controller { Status = SetTaskStateStatus.TaskCanBeDone, }; + if (commonInventoryRequestXml.Length > 44) { // avoid process inventory on empty xml request, + // NOTE: client do not set this on empty string when no inventory change request, but send + SetCommonInventory(viking, commonInventoryRequestXml); + taskResult.CommonInvRes = new CommonInventoryResponse { Success = true }; + } + if (results.Count > 0) taskResult.MissionsCompleted = results.ToArray(); diff --git a/src/Services/MissionService.cs b/src/Services/MissionService.cs index 9704c83..767d423 100644 --- a/src/Services/MissionService.cs +++ b/src/Services/MissionService.cs @@ -74,7 +74,10 @@ public class MissionService { task.Payload = null; task.Completed = false; } - missionState.MissionStatus = MissionStatus.Upcoming; + if (missionStore.GetActiveMissions(apiKey).Contains(missionId)) + missionState.MissionStatus = MissionStatus.Active; + else + missionState.MissionStatus = MissionStatus.Upcoming; } else { missionState.MissionStatus = MissionStatus.Completed; }