fix mission acceptance

This commit is contained in:
Spirtix 2023-07-09 17:10:05 +02:00
parent e48858fd01
commit c3615bc7ce
3 changed files with 12 additions and 3 deletions

View File

@ -480,8 +480,12 @@ public class ContentController : Controller {
return Ok("error");
UserMissionStateResult result = new UserMissionStateResult { Missions = new List<Mission>() };
foreach (var mission in viking.MissionStates.Where(x => x.MissionStatus == MissionStatus.Active))
result.Missions.Add(missionService.GetMissionWithProgress(mission.MissionId, viking.Id));
foreach (var mission in viking.MissionStates.Where(x => x.MissionStatus == MissionStatus.Active)) {
Mission updatedMission = missionService.GetMissionWithProgress(mission.MissionId, viking.Id);
if (mission.UserAccepted != null)
updatedMission.Accepted = (bool)mission.UserAccepted;
result.Missions.Add(updatedMission);
}
result.UserID = Guid.Parse(viking.Id);
return Ok(result);
@ -516,6 +520,7 @@ public class ContentController : Controller {
return Ok(false);
missionState.MissionStatus = MissionStatus.Active;
missionState.UserAccepted = true;
ctx.SaveChanges();
return Ok(true);
}

View File

@ -13,6 +13,8 @@ public class MissionState {
public virtual Viking? Viking { get; set; }
public MissionStatus MissionStatus { get; set; }
public bool? UserAccepted { get; set; }
}
public enum MissionStatus {

View File

@ -43,8 +43,10 @@ public class MissionService {
});
// Update mission from active to completed
MissionState? missionState = ctx.Vikings.FirstOrDefault(x => x.Id == userId)!.MissionStates.FirstOrDefault(x => x.MissionId == missionId);
if (missionState != null && missionState.MissionStatus == MissionStatus.Active)
if (missionState != null && missionState.MissionStatus == MissionStatus.Active) {
missionState.MissionStatus = MissionStatus.Completed;
missionState.UserAccepted = null;
}
ctx.SaveChanges();
}
}