public void SetObjectsStatus(string typeName, long objId, string newStatus) { ObjectStatus status; switch (newStatus.ToLowerInvariant()) { case "failed": status = ObjectStatus.Failed; break; case "passed": status = ObjectStatus.Passed; break; default: LogErrorMessage(ErrorMessage.ErorCode.SetObjectStatusError, $"Status {newStatus} is not recognized. Possible values: failed, passed"); return; } try { ObjectStatusUpdater.SetObjectsStatus(typeName, objId, status); } catch (Exception ex) { LogErrorMessage(ErrorMessage.ErorCode.SetObjectStatusError, ex); } }
public void UpdateObjectsTypeTests() { ObjectStatusUpdater.RecursiveSetObjectsStatus <Build>(2, ObjectStatus.Stopped); }
public void UpdateObjectsStatuses(object sender, ElapsedEventArgs eventArgs) { ObjectStatusUpdater.UpdateAllObjectStatusesToActual(); }
public void RunOperation(string typeName, long objId, string operationName) { switch (operationName.ToLowerInvariant()) { case "run": try { ObjectStatusUpdater.SetObjectsStatus(typeName, objId, ObjectStatus.InQueue); if (typeName == "build") { return; } long?buildId = -1; switch (typeName.ToLowerInvariant()) { case "screenshot": var screenShot = ScreenShotRepository.Instance.Get(objId); buildId = screenShot.BuildId; var caseRepo = TestCaseRepository.Instance; ObjectStatusUpdater.SetParentObjStatus <TestCaseRepository, TestCase>( caseRepo, screenShot.ParentObjId.Value, ObjectStatus.InQueue); var suiteId = caseRepo.Get(screenShot.ParentObjId.Value).ParentObjId.Value; var repoSuite = TestSuiteRepository.Instance; ObjectStatusUpdater.SetParentObjStatus <TestSuiteRepository, TestSuite>( repoSuite, suiteId, ObjectStatus.InQueue); var assembId = repoSuite.Get(suiteId).ParentObjId.Value; ObjectStatusUpdater.SetParentObjStatus <TestAssemblyRepository, TestAssembly>( TestAssemblyRepository.Instance, assembId, ObjectStatus.InQueue); break; case "testcase": var testCase = TestCaseRepository.Instance.Get(objId); buildId = testCase.BuildId; var suiteRepo = TestSuiteRepository.Instance; ObjectStatusUpdater.SetParentObjStatus <TestSuiteRepository, TestSuite>( suiteRepo, testCase.ParentObjId.Value, ObjectStatus.InQueue); var assemblyId = suiteRepo.Get(testCase.ParentObjId.Value).ParentObjId.Value; ObjectStatusUpdater.SetParentObjStatus <TestAssemblyRepository, TestAssembly>( TestAssemblyRepository.Instance, assemblyId, ObjectStatus.InQueue); break; case "testsuite": var suite = TestSuiteRepository.Instance.Get(objId); buildId = suite.BuildId; ObjectStatusUpdater.SetParentObjStatus <TestAssemblyRepository, TestAssembly>( TestAssemblyRepository.Instance, suite.ParentObjId.Value, ObjectStatus.InQueue); break; case "testassembly": buildId = TestAssemblyRepository.Instance.Get(objId).BuildId; break; } var buildRepo = BuildRepository.Instance; var build = buildRepo.Get(buildId.Value); build.Status = ObjectStatus.InQueue; buildRepo.Update(build); } catch (Exception ex) { LogErrorMessage(ErrorMessage.ErorCode.RunOperationError, ex); } break; case "stop": var affectedScreenShots = new List <ScreenShot>(); try { affectedScreenShots = ObjectStatusUpdater.SetObjectsStatus(typeName, objId, ObjectStatus.Stopped); } catch (Exception ex) { LogErrorMessage(ErrorMessage.ErorCode.StopOperationError, ex); } var workers = ImageWorkerRepository.Instance.FindAll() .Where(worker => worker.WorkerStatus == ImageWorker.StatusOfWorker.Available).ToList(); foreach (var imageWorker in workers) { var restImageProcessorClient = new RestImageProcessorClient(imageWorker.WorkerServiceUrl); restImageProcessorClient.StopStopDiffGeneration(affectedScreenShots); } break; default: LogErrorMessage(ErrorMessage.ErorCode.RunOperationError, $"OperationName {operationName} is not recognized. Possible values: run, stop"); return; } }