/// <summary> /// Handle request to Run a Job /// </summary> internal async Task HandleJobActionRequest(AgentJobActionParams parameters, RequestContext <ResultStatus> requestContext) { await Task.Run(async() => { var result = new ResultStatus(); try { ConnectionInfo connInfo; ConnectionServiceInstance.TryFindConnection( parameters.OwnerUri, out connInfo); if (connInfo != null) { var sqlConnection = ConnectionService.OpenSqlConnection(connInfo); var serverConnection = new ServerConnection(sqlConnection); var jobHelper = new JobHelper(serverConnection); jobHelper.JobName = parameters.JobName; switch (parameters.Action) { case "run": jobHelper.Start(); break; case "stop": jobHelper.Stop(); break; case "delete": jobHelper.Delete(); break; case "enable": jobHelper.Enable(true); break; case "disable": jobHelper.Enable(false); break; default: break; } result.Success = true; await requestContext.SendResult(result); } } catch (Exception e) { result.Success = false; result.ErrorMessage = e.Message; await requestContext.SendResult(result); } }); }
public async Task TestHandleAgentJobActionRequest() { using (SelfCleaningTempFile queryTempFile = new SelfCleaningTempFile()) { var connectionResult = await LiveConnectionHelper.InitLiveConnectionInfoAsync("master", queryTempFile.FilePath); var requestParams = new AgentJobActionParams() { OwnerUri = connectionResult.ConnectionInfo.OwnerUri, JobName = "Agent history clean up: distribution" }; var requestContext = new Mock <RequestContext <ResultStatus> >(); AgentService service = new AgentService(); await service.HandleJobActionRequest(requestParams, requestContext.Object); requestContext.VerifyAll(); } }