From d6e75fda31ab62d0f307e1da05ff4e6d5b4e2dca Mon Sep 17 00:00:00 2001 From: glax Date: Wed, 24 May 2023 23:52:40 +0200 Subject: [PATCH] Fixed empty returns if some value were null --- Tranga-API/Program.cs | 94 +++++++++++++++++++++++++++++++++---------- 1 file changed, 72 insertions(+), 22 deletions(-) diff --git a/Tranga-API/Program.cs b/Tranga-API/Program.cs index 959d1ef..83b1f61 100644 --- a/Tranga-API/Program.cs +++ b/Tranga-API/Program.cs @@ -82,23 +82,45 @@ app.MapDelete("/Tasks/Delete", (string taskType, string? connectorName, string? app.MapGet("/Tasks/Get", (string taskType, string? connectorName, string? searchString) => { - TrangaTask.Task task = Enum.Parse(taskType); - if (searchString is null) - return taskManager.GetAllTasks().Where(tTask => tTask.task == task && tTask.connectorName == connectorName); - else - return taskManager.GetAllTasks().Where(tTask => - tTask.task == task && tTask.connectorName == connectorName && tTask.ToString() - .Contains(searchString, StringComparison.InvariantCultureIgnoreCase)); + try + { + TrangaTask.Task task = Enum.Parse(taskType); + if (searchString is null || connectorName is null) + return taskManager.GetAllTasks().Where(tTask => tTask.task == task); + else + return taskManager.GetAllTasks().Where(tTask => + tTask.task == task && tTask.connectorName == connectorName && tTask.ToString() + .Contains(searchString, StringComparison.InvariantCultureIgnoreCase)); + } + catch (ArgumentException) + { + return Array.Empty(); + } }); app.MapPost("/Tasks/Start", (string taskType, string? connectorName, string? publicationId) => { - TrangaTask.Task pTask = Enum.Parse(taskType); - TrangaTask? task = taskManager.GetAllTasks().FirstOrDefault(tTask => - tTask.task == pTask && tTask.publication?.internalId == publicationId && tTask.connectorName == connectorName); - if (task is null) + try + { + TrangaTask.Task pTask = Enum.Parse(taskType); + TrangaTask? task = null; + if (connectorName is null || publicationId is null) + task = taskManager.GetAllTasks().FirstOrDefault(tTask => + tTask.task == pTask); + else + task = taskManager.GetAllTasks().FirstOrDefault(tTask => + tTask.task == pTask && tTask.publication?.internalId == publicationId && + tTask.connectorName == connectorName); + + if (task is null) + return; + taskManager.ExecuteTaskNow(task); + } + catch (ArgumentException) + { return; - taskManager.ExecuteTaskNow(task); + } + }); app.MapGet("/Tasks/GetRunningTasks", @@ -109,22 +131,50 @@ app.MapGet("/Queue/GetList", app.MapPost("/Queue/Enqueue", (string taskType, string? connectorName, string? publicationId) => { - TrangaTask.Task pTask = Enum.Parse(taskType); - TrangaTask? task = taskManager.GetAllTasks().FirstOrDefault(tTask => - tTask.task == pTask && tTask.publication?.internalId == publicationId && tTask.connectorName == connectorName); - if (task is null) + try + { + TrangaTask.Task pTask = Enum.Parse(taskType); + TrangaTask? task = null; + if (connectorName is null || publicationId is null) + task = taskManager.GetAllTasks().FirstOrDefault(tTask => + tTask.task == pTask); + else + task = taskManager.GetAllTasks().FirstOrDefault(tTask => + tTask.task == pTask && tTask.publication?.internalId == publicationId && + tTask.connectorName == connectorName); + + if (task is null) + return; + taskManager.AddTaskToQueue(task); + } + catch (ArgumentException) + { return; - taskManager.AddTaskToQueue(task); + } }); app.MapDelete("/Queue/Dequeue", (string taskType, string? connectorName, string? publicationId) => { - TrangaTask.Task pTask = Enum.Parse(taskType); - TrangaTask? task = taskManager.GetAllTasks().FirstOrDefault(tTask => - tTask.task == pTask && tTask.publication?.internalId == publicationId && tTask.connectorName == connectorName); - if (task is null) + try + { + TrangaTask.Task pTask = Enum.Parse(taskType); + TrangaTask? task = null; + if (connectorName is null || publicationId is null) + task = taskManager.GetAllTasks().FirstOrDefault(tTask => + tTask.task == pTask); + else + task = taskManager.GetAllTasks().FirstOrDefault(tTask => + tTask.task == pTask && tTask.publication?.internalId == publicationId && + tTask.connectorName == connectorName); + + if (task is null) + return; + taskManager.RemoveTaskFromQueue(task); + } + catch (ArgumentException) + { return; - taskManager.RemoveTaskFromQueue(task); + } }); app.MapGet("/Settings/Get", () => taskManager.settings);