mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-24 01:25:42 -05:00
Add Get Schedules request handler (#646)
This commit is contained in:
@@ -607,7 +607,49 @@ namespace Microsoft.SqlTools.ServiceLayer.Agent
|
||||
|
||||
internal async Task HandleAgentSchedulesRequest(AgentSchedulesParams parameters, RequestContext<AgentSchedulesResult> requestContext)
|
||||
{
|
||||
await requestContext.SendResult(null);
|
||||
await Task.Run(async () =>
|
||||
{
|
||||
var result = new AgentSchedulesResult();
|
||||
try
|
||||
{
|
||||
ConnectionInfo connInfo;
|
||||
ConnectionServiceInstance.TryFindConnection(parameters.OwnerUri, out connInfo);
|
||||
CDataContainer dataContainer = CDataContainer.CreateDataContainer(connInfo, databaseExists: true);
|
||||
|
||||
int scheduleCount = dataContainer.Server.JobServer.SharedSchedules.Count;
|
||||
var schedules = new AgentScheduleInfo[scheduleCount];
|
||||
for (int i = 0; i < scheduleCount; ++i)
|
||||
{
|
||||
var schedule = dataContainer.Server.JobServer.SharedSchedules[i];
|
||||
schedules[i] = new AgentScheduleInfo();
|
||||
schedules[i].Id = schedule.ID;
|
||||
schedules[i].Name = schedule.Name;
|
||||
schedules[i].IsEnabled = schedule.IsEnabled;
|
||||
schedules[i].FrequencyTypes = (Contracts.FrequencyTypes)schedule.FrequencyTypes;
|
||||
schedules[i].FrequencySubDayTypes = (Contracts.FrequencySubDayTypes)schedule.FrequencySubDayTypes;
|
||||
schedules[i].FrequencySubDayInterval = schedule.FrequencySubDayInterval;
|
||||
schedules[i].FrequencyRelativeIntervals = (Contracts.FrequencyRelativeIntervals)schedule.FrequencyRelativeIntervals;
|
||||
schedules[i].FrequencyRecurrenceFactor = schedule.FrequencyRecurrenceFactor;
|
||||
schedules[i].FrequencyInterval = schedule.FrequencyInterval;
|
||||
schedules[i].DateCreated = schedule.DateCreated;
|
||||
schedules[i].ActiveStartTimeOfDay = schedule.ActiveStartTimeOfDay;
|
||||
schedules[i].ActiveStartDate = schedule.ActiveStartDate;
|
||||
schedules[i].ActiveEndTimeOfDay = schedule.ActiveEndTimeOfDay;
|
||||
schedules[i].JobCount = schedule.JobCount;
|
||||
schedules[i].ActiveEndDate = schedule.ActiveEndDate;
|
||||
schedules[i].ScheduleUid = schedule.ScheduleUid;
|
||||
}
|
||||
result.Schedules = schedules;
|
||||
result.Success = true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Success = false;
|
||||
result.ErrorMessage = ex.ToString();
|
||||
}
|
||||
|
||||
await requestContext.SendResult(result);
|
||||
});
|
||||
}
|
||||
|
||||
internal async Task HandleCreateAgentScheduleRequest(CreateAgentScheduleParams parameters, RequestContext<AgentScheduleResult> requestContext)
|
||||
|
||||
@@ -47,7 +47,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Agent.Contracts
|
||||
/// </summary>
|
||||
public class AgentScheduleInfo
|
||||
{
|
||||
public int ID { get; set; }
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string JobName { get; set; }
|
||||
public bool IsEnabled { get; set; }
|
||||
|
||||
@@ -18,6 +18,30 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.Agent
|
||||
{
|
||||
public class AgentScheduleTests
|
||||
{
|
||||
/// <summary>
|
||||
/// HandleAgentSchedulesRequest
|
||||
/// </summary>
|
||||
[Fact]
|
||||
public async Task HandleAgentSchedulesRequest()
|
||||
{
|
||||
using (SelfCleaningTempFile queryTempFile = new SelfCleaningTempFile())
|
||||
{
|
||||
// setup
|
||||
var connectionResult = await LiveConnectionHelper.InitLiveConnectionInfoAsync("master", queryTempFile.FilePath);
|
||||
var service = new AgentService();
|
||||
|
||||
// test
|
||||
var context = new Mock<RequestContext<AgentSchedulesResult>>();
|
||||
await service.HandleAgentSchedulesRequest(new AgentSchedulesParams
|
||||
{
|
||||
OwnerUri = connectionResult.ConnectionInfo.OwnerUri
|
||||
}, context.Object);
|
||||
context.VerifyAll();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// TestHandleCreateAgentScheduleRequest
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user