public async Task TestHandleAgentJobsRequest() { using (SelfCleaningTempFile queryTempFile = new SelfCleaningTempFile()) { var connectionResult = await LiveConnectionHelper.InitLiveConnectionInfoAsync("master", queryTempFile.FilePath); var requestParams = new AgentJobsParams() { OwnerUri = connectionResult.ConnectionInfo.OwnerUri }; var requestContext = new Mock <RequestContext <AgentJobsResult> >(); AgentService service = new AgentService(); await service.HandleAgentJobsRequest(requestParams, requestContext.Object); requestContext.VerifyAll(); } }
/// <summary> /// Handle request to get Agent job activities /// </summary> internal async Task HandleAgentJobsRequest(AgentJobsParams parameters, RequestContext <AgentJobsResult> requestContext) { await Task.Run(async() => { try { var result = new AgentJobsResult(); ConnectionInfo connInfo; ConnectionServiceInstance.TryFindConnection( parameters.OwnerUri, out connInfo); if (connInfo != null) { var sqlConnection = ConnectionService.OpenSqlConnection(connInfo); var serverConnection = new ServerConnection(sqlConnection); var fetcher = new JobFetcher(serverConnection); var filter = new JobActivityFilter(); this.jobs = fetcher.FetchJobs(filter); var agentJobs = new List <AgentJobInfo>(); if (this.jobs != null) { foreach (var job in this.jobs.Values) { agentJobs.Add(AgentUtilities.ConvertToAgentJobInfo(job)); } } result.Success = true; result.Jobs = agentJobs.ToArray(); sqlConnection.Close(); } await requestContext.SendResult(result); } catch (Exception e) { await requestContext.SendError(e); } }); }