public void Test__Start() { bool finish = false; void Run() { while (!finish) { continue; } } ITaskStatus status = BackgroundTask.Start(Run); Assert.True(status.IsRunning); Assert.False(status.IsFinished); Assert.False(status.IsExitedWithError); Assert.Null(status.Exception); finish = true; while (status.IsRunning) { continue; } Assert.False(status.IsRunning); Assert.True(status.IsFinished); Assert.False(status.IsExitedWithError); Assert.Null(status.Exception); }
public TaskController(IProject project, ITask task, ITaskStatus taskStatus, IAuthorizationService authService, ITaskMember taskMember, IProjectMember projectMember, IMember member) { _project = project; _task = task; _taskStatus = taskStatus; _authService = authService; _taskMember = taskMember; _projectMember = projectMember; _member = member; }
public void Abort() { if (!IsFinished()) { status = ITaskStatus.FAIL; doAbort = true; AbortInternal(); statusMsg = "download aborted"; } }
public void Abort() { if (!IsFinished()) { status = ITaskStatus.FAIL; doAbort = true; AbortInternal(); statusMsg = "download aborted"; } }
public IEnumerator Run() { PostPatchLoader.Instance.databaseConfigs = null; // Wait for game database to be initialized for the 2nd time and wait for any plugins to initialize yield return(null); yield return(null); IEnumerable <ModListGenerator.ModAddedByAssembly> modsAddedByAssemblies = ModListGenerator.GetAdditionalModsFromStaticMethods(ModLogger.Instance); IEnumerable <IProtoUrlConfig> databaseConfigs = null; this.patchLoader = new MMPatchLoader(modsAddedByAssemblies, ModLogger.Instance, this.counter, this.timings); ITaskStatus patchingThreadStatus = BackgroundTask.Start(delegate { databaseConfigs = patchLoader.Run(); }); while (true) { yield return(null); Status = patchLoader.status; Errors = patchLoader.errors; if (!patchingThreadStatus.IsRunning) { break; } } if (patchingThreadStatus.IsExitedWithError) { kspLogger.Exception("The patching thread threw an exception", patchingThreadStatus.Exception); FatalErrorHandler.HandleFatalError("The patching thread threw an exception"); yield break; } if (databaseConfigs == null) { kspLogger.Error("The patcher returned a null collection of configs"); FatalErrorHandler.HandleFatalError("The patcher returned a null collection of configs"); yield break; } PostPatchLoader.Instance.databaseConfigs = databaseConfigs; }
public TaskController(IRetrieveTask retrieveTask, ICreateTask createTask, IUpdateTask updateTask, IDeleteTask deleteTask, IDeleteBulk deleteBulk, IMoveTask moveTask, ITaskStatus taskStatus) { _retrieveTask = retrieveTask; _createTask = createTask; _updateTask = updateTask; _deleteTask = deleteTask; _deleteBulk = deleteBulk; _moveTask = moveTask; _taskStatus = taskStatus; }
public void Start() { if (IsStarted()) return; else { status = ITaskStatus.RUNNING; try { StartInternal(); } catch (Exception ex) { status = ITaskStatus.FAIL; statusMsg = ex.ToString(); } } }
public void Start() { if (IsStarted()) { return; } else { status = ITaskStatus.RUNNING; try { StartInternal(); } catch (Exception ex) { status = ITaskStatus.FAIL; statusMsg = ex.ToString(); } } }
public IEnumerator Run() { PostPatchLoader.Instance.databaseConfigs = null; if (!Directory.Exists(logsDirPath)) { Directory.CreateDirectory(logsDirPath); } kspLogger.Info("Patching started on a new thread, all output will be directed to " + logPath); MessageQueue <ILogMessage> mmLogQueue = new MessageQueue <ILogMessage>(); QueueLogRunner logRunner = new QueueLogRunner(mmLogQueue); ITaskStatus loggingThreadStatus = BackgroundTask.Start(delegate { using StreamLogger streamLogger = new StreamLogger(new FileStream(logPath, FileMode.Create)); streamLogger.Info("Log started at " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); logRunner.Run(streamLogger); streamLogger.Info("Done!"); });
public IEnumerator Run() { PostPatchLoader.Instance.databaseConfigs = null; if (!Directory.Exists(logsDirPath)) { Directory.CreateDirectory(logsDirPath); } kspLogger.Info("Patching started on a new thread, all output will be directed to " + logPath); MessageQueue <ILogMessage> mmLogQueue = new MessageQueue <ILogMessage>(); QueueLogRunner logRunner = new QueueLogRunner(mmLogQueue); ITaskStatus loggingThreadStatus = BackgroundTask.Start(delegate { using (StreamLogger streamLogger = new StreamLogger(new FileStream(logPath, FileMode.Create))) { logRunner.Run(streamLogger); streamLogger.Info("Done!"); } }); // Wait for game database to be initialized for the 2nd time and wait for any plugins to initialize yield return(null); yield return(null); IBasicLogger mmLogger = new QueueLogger(mmLogQueue); IEnumerable <ModListGenerator.ModAddedByAssembly> modsAddedByAssemblies = ModListGenerator.GetAdditionalModsFromStaticMethods(mmLogger); IEnumerable <IProtoUrlConfig> databaseConfigs = null; MMPatchLoader patchLoader = new MMPatchLoader(modsAddedByAssemblies, mmLogger); ITaskStatus patchingThreadStatus = BackgroundTask.Start(delegate { databaseConfigs = patchLoader.Run(); }); while (true) { yield return(null); if (!patchingThreadStatus.IsRunning) { logRunner.RequestStop(); } Status = patchLoader.status; Errors = patchLoader.errors; if (!patchingThreadStatus.IsRunning && !loggingThreadStatus.IsRunning) { break; } } if (patchingThreadStatus.IsExitedWithError) { kspLogger.Exception("The patching thread threw an exception", patchingThreadStatus.Exception); FatalErrorHandler.HandleFatalError("The patching thread threw an exception"); } if (loggingThreadStatus.IsExitedWithError) { kspLogger.Exception("The logging thread threw an exception", loggingThreadStatus.Exception); FatalErrorHandler.HandleFatalError("The logging thread threw an exception"); } if (databaseConfigs == null) { kspLogger.Error("The patcher returned a null collection of configs"); FatalErrorHandler.HandleFatalError("The patcher returned a null collection of configs"); yield break; } PostPatchLoader.Instance.databaseConfigs = databaseConfigs; }
public TaskStatusWrapper(ITaskStatus inner) { this.inner = inner; }
public ChangeStatusEventArgs(ITask task, ITaskStatus status) { Task = task; NewStatus = status; }