diff --git a/ArmaForces.ArmaServerManager/Features/Missions/Extensions/WebMissionsCollectionExtensions.cs b/ArmaForces.ArmaServerManager/Features/Missions/Extensions/WebMissionsCollectionExtensions.cs index 8e08227..f3ce6b9 100644 --- a/ArmaForces.ArmaServerManager/Features/Missions/Extensions/WebMissionsCollectionExtensions.cs +++ b/ArmaForces.ArmaServerManager/Features/Missions/Extensions/WebMissionsCollectionExtensions.cs @@ -7,6 +7,8 @@ namespace ArmaForces.ArmaServerManager.Features.Missions.Extensions { internal static class WebMissionsCollectionExtensions { + public const string NoNearestMissionError = "No nearest mission found."; + public static Result GetNearestMission(this IEnumerable missions) { var nearestMission = missions @@ -14,7 +16,7 @@ public static Result GetNearestMission(this IEnumerable .FirstOrDefault(); return nearestMission is null - ? Result.Failure("No nearest mission found.") + ? Result.Failure(NoNearestMissionError) : Result.Success(nearestMission); } } diff --git a/ArmaForces.ArmaServerManager/Services/MissionPreparationService.cs b/ArmaForces.ArmaServerManager/Services/MissionPreparationService.cs index 35148e7..9f5ffdb 100644 --- a/ArmaForces.ArmaServerManager/Services/MissionPreparationService.cs +++ b/ArmaForces.ArmaServerManager/Services/MissionPreparationService.cs @@ -53,7 +53,10 @@ public async Task StartServerForNearestMission(CancellationToken cancell return await _apiMissionsClient .GetUpcomingMissions() .Bind(x => x.GetNearestMission()) - .Bind(nearestMission => _serverStartupService.StartServer(nearestMission.Modlist, ServerStartRequestDto.DefaultHeadlessClients, cancellationToken)); + .Bind(nearestMission => _serverStartupService.StartServer(nearestMission.Modlist, ServerStartRequestDto.DefaultHeadlessClients, cancellationToken)) + .OnFailureCompensate(error => error.Contains(WebMissionsCollectionExtensions.NoNearestMissionError) + ? Result.Success() + : Result.Failure(error)); } private async Task>> GetModsListFromModsets(IReadOnlyCollection modsetsNames)