void Awake () { if (Instance != null && Instance != this) { Destroy(gameObject); } Instance = this; DontDestroyOnLoad(gameObject); startTime = Time.time; Tasks = Resources.Load<TasksResource>("Tasks"); Grid = new GridDefinition(); ClockGO = GameObject.Find("Time"); ClockText = ClockGO.GetComponent<TextMesh>(); DayGO = GameObject.Find("Day"); DayText = DayGO.GetComponent<TextMesh>(); TimeBarGO = GameObject.Find("TimeBar"); scoreText = ScoreObject.GetComponent<UnityEngine.UI.Text>(); highScoreText = HighScoreObject.GetComponent<UnityEngine.UI.Text>(); completedTasksText = CompletedTasksObject.GetComponent<UnityEngine.UI.Text>(); highScore = ReadHighScore(); highScoreText.text = "High Score: " + highScore.ToString(); lastSpawnTime = 0.0f; }
public static void CreateMyAsset() { TasksResource asset = new TasksResource(); //scriptable object string assetPathAndName = AssetDatabase.GenerateUniqueAssetPath("Assets/Resources/" + "Tasks.asset"); AssetDatabase.CreateAsset(asset, assetPathAndName); AssetDatabase.SaveAssets(); }
public TaskActivityWatcher Execute(MazeTask mazeTask, ICommandDescription commandDescription) { var task = TasksResource.Execute(mazeTask, _taskComponentResolver, _xmlSerializerCache, _restClient); var watcher = _serviceProvider.GetRequiredService <TaskActivityWatcher>(); watcher.InitializeWatch(mazeTask.Id); PendingCommands.Insert(0, new PendingCommandViewModel(commandDescription, task, mazeTask, watcher)); return(watcher); }
public async Task Execute() { await _taskManager.Initialize(); if (_restClient == null) { return; } var tasks = await TasksResource.GetSyncInfo(_restClient); await _taskManager.Synchronize(tasks, _restClient); }
public async Task <TaskSessionsInfo> BizActionAsync(MazeTask inputData) { var builder = new TaskSessionInfoBuilder(inputData.Id); builder.TaskSessionAdded += BuilderOnTaskSessionAdded; builder.TaskExecutionAdded += BuilderOnTaskExecutionAdded; builder.TaskResultAdded += BuilderOnTaskResultAdded; var storage = new MemoryTaskResultStorage(); //trigger locally await _management.TriggerNow(inputData, SessionKey.Create("Execute"), storage); builder.Add(new TaskSessionsInfo { Sessions = storage.Sessions, Executions = storage.Executions, Results = storage.CommandResults }, TargetId.ServerId); //trigger on clients var audienceFilter = new AudienceFilter(inputData.Audience); var clients = (await _dbContext.Clients.Select(x => x.ClientId).ToListAsync()).ToHashSet(); var onlineClients = _connectionManager.ClientConnections.Where(x => clients.Contains(x.Key)); var tasks = new Dictionary <Task <TaskSessionsInfo>, int>(); foreach (var onlineClient in onlineClients) { if (audienceFilter.Invoke(onlineClient.Key)) { //add all at once because the tasks don't do anything except waiting for the completion source anyways var task = TasksResource.ExecuteTask(inputData, _taskComponentResolver, _xmlSerializerCache, onlineClient.Value); tasks.Add(task, onlineClient.Key); } } while (tasks.Any()) { var task = await Task.WhenAny(tasks.Keys); builder.Add(task.Result, new TargetId(tasks[task])); tasks.Remove(task); } return(builder.Build()); }
public async Task BizActionAsync(Guid inputData) { var task = (await _taskDirectory.LoadTasks()).FirstOrDefault(x => x.Id == inputData); if (task == null) { AddValidationResult(TaskErrors.TaskNotFound); return; } var sessionKey = SessionKey.CreateUtcNow("ManualTrigger"); await _management.TriggerNow(task, sessionKey, new DatabaseTaskResultStorage(_serviceProvider)); foreach (var status in _activeTasksManager.ActiveCommands.Where(x => !x.Key.IsServer)) { if (status.Value.Tasks.Any(x => x.TaskId == inputData)) { if (_connectionManager.ClientConnections.TryGetValue(status.Key.ClientId, out var connection)) { await TasksResource.TriggerTask(inputData, sessionKey, connection); } } } }
/// <summary>Constructs a new service.</summary> /// <param name="initializer">The service initializer.</param> public TaskqueueService(Google.Apis.Services.BaseClientService.Initializer initializer) : base(initializer) { taskqueues = new TaskqueuesResource(this); tasks = new TasksResource(this); }