public static bool IsOKForDelete(AutoBookStatuses status) { return(Array.IndexOf( new AutoBookStatuses[] { AutoBookStatuses.Idle, AutoBookStatuses.Fatal_Error }, status) != -1); }
public static bool IsFreeStatus(AutoBookStatuses status) { return(Array.IndexOf( new AutoBookStatuses[] { AutoBookStatuses.Task_Completed, AutoBookStatuses.Task_Error, AutoBookStatuses.Idle }, status) != -1); }
public static bool IsWorkingStatus(AutoBookStatuses status) { return(Array.IndexOf( new AutoBookStatuses[] { AutoBookStatuses.Idle, AutoBookStatuses.In_Progress, AutoBookStatuses.Task_Completed, AutoBookStatuses.Task_Error }, status) != -1); }
public TaskResult Execute(TaskInstance taskInstance) { var taskResult = new TaskResult(); Guid runId = Guid.Empty; Guid scenarioId = Guid.Empty; string autoBookId = String.Empty; try { StartActiveNotifier(taskInstance.Id); TaskUtilities.UpdateTaskInstanceStatus(taskInstance.Id, _repositoryFactory, TaskInstanceStatues.InProgress, null); // Read parameters runId = new Guid(taskInstance.Parameters["RunId"]); scenarioId = new Guid(taskInstance.Parameters["ScenarioId"]); autoBookId = taskInstance.Parameters["AutoBookId"]; AutoBookStatuses autoBookStatus = (AutoBookStatuses)Enum.Parse(typeof(AutoBookStatuses), taskInstance.Parameters["AutoBookStatus"], true); using var scope = _repositoryFactory.BeginRepositoryScope(); // Get AutoBook instance var autoBookRepository = scope.CreateRepository <IAutoBookRepository>(); var autoBook = autoBookRepository.Get(autoBookId); RunInstance runInstance = _runInstanceCreator.Create(runId, scenarioId); // Check AutoBook status switch (autoBookStatus) { case AutoBookStatuses.Task_Completed: runInstance.HandleCompletedSuccess(); break; case AutoBookStatuses.Task_Error: runInstance.HandleCompletedTaskError(); break; case AutoBookStatuses.Fatal_Error: runInstance.HandleCompletedFatalError(autoBook); break; } TaskUtilities.UpdateTaskInstanceStatus(taskInstance.Id, _repositoryFactory, TaskInstanceStatues.CompletedSuccess, DateTime.UtcNow); taskResult.Status = TaskInstanceStatues.CompletedSuccess; } catch (Exception exception) { _auditEventRepository.Insert(AuditEventFactory.CreateAuditEventForException(0, 0, string.Format("Error executing task for scenario completed (TaskInstanceID={0}, RunID={1}, ScenarioID={2}, AutoBookID={3})", taskInstance.Id, runId, scenarioId, autoBookId), exception)); TaskUtilities.UpdateTaskInstanceStatus(taskInstance.Id, _repositoryFactory, TaskInstanceStatues.CompletedError, DateTime.UtcNow); taskResult.Status = TaskInstanceStatues.CompletedError; taskResult.Exception = exception; } finally { StopActiveNotifier(); } return(taskResult); }
public static TaskInstance CreateScenarioCompletedTaskInstance(int tenantId, Guid runId, Guid scenarioId, string autoBookId, AutoBookStatuses autoBookStatus) { TaskInstance taskInstance = new TaskInstance() { Id = Guid.NewGuid(), TaskId = TaskIds.ScenarioCompleted, TimeCreated = DateTime.UtcNow, TenantId = tenantId }; taskInstance.Parameters.Add("RunId", runId.ToString()); taskInstance.Parameters.Add("ScenarioId", scenarioId.ToString()); taskInstance.Parameters.Add("AutoBookId", autoBookId); taskInstance.Parameters.Add("AutoBookStatus", autoBookStatus.ToString()); return(taskInstance); }
public void ChangeStatus(string autoBookId, AutoBookStatuses newStatus) { var autoBook = InternalGet(autoBookId); autoBook.Status = newStatus; }