Compare commits

...

2 Commits

Author SHA1 Message Date
Robert Paciorek
fb6c935e7e fix upcoming missions in GetUserMissionState
* this is bugfix for upcoming missions issue in SoD 2.9 after 60cc00d
* also removed TODO because ProductGroupID is not related to mission.GroupID and ProductGroupID filtering is covered by gameVersion
2025-07-27 10:34:28 +00:00
Robert Paciorek
278f04d381 disable null-related warnings 2025-07-27 10:32:55 +00:00
2 changed files with 8 additions and 3 deletions

View File

@ -1109,14 +1109,17 @@ public class ContentController : Controller {
foreach (var m in filterV2.MissionPair) foreach (var m in filterV2.MissionPair)
if (m.MissionID != null) if (m.MissionID != null)
result.Missions.Add(missionService.GetMissionWithProgress((int)m.MissionID, viking.Id, gameVersion)); result.Missions.Add(missionService.GetMissionWithProgress((int)m.MissionID, viking.Id, gameVersion));
// TODO: probably should also check for mission based on filterV2.ProductGroupID vs mission.GroupID
} else { } else {
if (filterV2.GetCompletedMission ?? false) { if (filterV2.GetCompletedMission ?? false) {
foreach (var mission in viking.MissionStates.Where(x => x.MissionStatus == MissionStatus.Completed)) foreach (var mission in viking.MissionStates.Where(x => x.MissionStatus == MissionStatus.Completed))
result.Missions.Add(missionService.GetMissionWithProgress(mission.MissionId, viking.Id, gameVersion)); result.Missions.Add(missionService.GetMissionWithProgress(mission.MissionId, viking.Id, gameVersion));
} else { } else {
foreach (var mission in viking.MissionStates.Where(x => x.MissionStatus != MissionStatus.Completed)) var missionStatesById = viking.MissionStates.Where(x => x.MissionStatus != MissionStatus.Completed).ToDictionary(ms => ms.MissionId);
result.Missions.Add(missionService.GetMissionWithProgress(mission.MissionId, viking.Id, gameVersion)); HashSet<int> upcomingMissionIds = new(missionStore.GetUpcomingMissions(gameVersion));
var combinedMissionIds = new HashSet<int>(missionStatesById.Keys);
combinedMissionIds.UnionWith(upcomingMissionIds);
foreach (var missionId in combinedMissionIds)
result.Missions.Add(missionService.GetMissionWithProgress(missionId, viking.Id, gameVersion));
} }
} }

View File

@ -8,6 +8,8 @@
<DefineConstants>USE_SQLITE;$(DefineConstants)</DefineConstants> <DefineConstants>USE_SQLITE;$(DefineConstants)</DefineConstants>
<DefineConstants>USE_POSTGRESQL;$(DefineConstants)</DefineConstants> <DefineConstants>USE_POSTGRESQL;$(DefineConstants)</DefineConstants>
<DefineConstants>USE_MYSQL;$(DefineConstants)</DefineConstants> <DefineConstants>USE_MYSQL;$(DefineConstants)</DefineConstants>
<NoWarn>8600,8601,8602,8603,8604,8618,8625,8629</NoWarn>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>