From f215ee9d9ac6b22484ce18916e5bef88e755682a Mon Sep 17 00:00:00 2001 From: Eddasol Date: Thu, 19 Sep 2024 13:34:50 +0200 Subject: [PATCH] Add support for using both echo and custom mission --- .../EchoAndCustomMissionLoader.cs | 37 +++++++++++++++++++ backend/api/Services/SourceService.cs | 2 + backend/api/appsettings.json | 2 +- 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 backend/api/Services/MissionLoaders/EchoAndCustomMissionLoader.cs diff --git a/backend/api/Services/MissionLoaders/EchoAndCustomMissionLoader.cs b/backend/api/Services/MissionLoaders/EchoAndCustomMissionLoader.cs new file mode 100644 index 000000000..a62f0ebd3 --- /dev/null +++ b/backend/api/Services/MissionLoaders/EchoAndCustomMissionLoader.cs @@ -0,0 +1,37 @@ +using Api.Controllers.Models; +using Api.Database.Models; +namespace Api.Services.MissionLoaders +{ + public class EchoAndCustomMissionLoader( + IEchoService echoService, + ISourceService sourceService) : IMissionLoader + { + public async Task> GetAvailableMissions(string? installationCode) + { + return await echoService.GetAvailableMissions(installationCode); + } + + public async Task GetMissionById(string sourceMissionId) + { + return await echoService.GetMissionById(sourceMissionId); + } + + public async Task> GetTasksForMission(string missionSourceId) + { + var customMissionTasks = await sourceService.GetMissionTasksFromSourceId(missionSourceId); + if (customMissionTasks != null) + { + return customMissionTasks; + } + else + { + return await echoService.GetTasksForMission(missionSourceId); + } + } + + public async Task> GetPlantInfos() + { + return await echoService.GetPlantInfos(); + } + } +} diff --git a/backend/api/Services/SourceService.cs b/backend/api/Services/SourceService.cs index cd46fa329..2ddf31525 100644 --- a/backend/api/Services/SourceService.cs +++ b/backend/api/Services/SourceService.cs @@ -20,6 +20,8 @@ public interface ISourceService public abstract Task CreateSourceIfDoesNotExist(List tasks, bool readOnly = true); + public abstract Task?> GetMissionTasksFromSourceId(string id); + public abstract Task Delete(string id); public void DetachTracking(Source source); diff --git a/backend/api/appsettings.json b/backend/api/appsettings.json index 020e07ffb..7055edc3c 100644 --- a/backend/api/appsettings.json +++ b/backend/api/appsettings.json @@ -36,7 +36,7 @@ "ConnectionString": "" }, "MissionLoader": { - "FileName": "Api.Services.MissionLoaders.EchoMissionLoader" + "FileName": "Api.Services.MissionLoaders.EchoAndCustomMissionLoader" }, "KeyVault": { "UseKeyVault": true