public async Task <IActionResult> StartTask(StartMeeseeksTaskRequest request) { var(task, typeInfo) = GenerateMeeseeksTask(request); if (task.TaskCategory == MeeseeksTaskCategory.Unknown) { return(StatusCode(500, new TaskStartFailureInfo("Task generator was unable to determine task type"))); } var meeseeksInfo = await _meeseeksManager.SpawnMeeseeksForTaskAsync(task); return(meeseeksInfo == null ? Problem() : Ok(new StartMeeseeksTaskResponse(meeseeksInfo, typeInfo.Name))); }
private (IMeeseeksTask Task, Type TypeInfo) GenerateMeeseeksTask(StartMeeseeksTaskRequest request) => request switch