Add Agent Job Defaults request handler (#644)

* Add Agent Job Defaults request handler

* Fix a couple bugs
This commit is contained in:
Karl Burtram
2018-06-26 13:57:47 -07:00
committed by GitHub
parent cc2ca4cad3
commit 539d579a9b
5 changed files with 128 additions and 28 deletions

View File

@@ -92,6 +92,8 @@ namespace Microsoft.SqlTools.ServiceLayer.Agent
this.ServiceHost.SetRequestHandler(UpdateAgentJobRequest.Type, HandleUpdateAgentJobRequest);
this.ServiceHost.SetRequestHandler(DeleteAgentJobRequest.Type, HandleDeleteAgentJobRequest);
this.ServiceHost.SetRequestHandler(AgentJobDefaultsRequest.Type, HandleAgentJobDefaultsRequest);
// Job Steps request handlers
this.ServiceHost.SetRequestHandler(CreateAgentJobStepRequest.Type, HandleCreateAgentJobStepRequest);
this.ServiceHost.SetRequestHandler(UpdateAgentJobStepRequest.Type, HandleUpdateAgentJobStepRequest);
@@ -357,7 +359,44 @@ namespace Microsoft.SqlTools.ServiceLayer.Agent
Success = result.Item1,
ErrorMessage = result.Item2
});
}
}
internal async Task HandleAgentJobDefaultsRequest(AgentJobDefaultsParams parameters, RequestContext<AgentJobDefaultsResult> requestContext)
{
await Task.Run(async () =>
{
var result = new AgentJobDefaultsResult();
try
{
JobData jobData;
CDataContainer dataContainer;
CreateJobData(parameters.OwnerUri, "default", out dataContainer, out jobData);
// current connection user name for
result.Owner = dataContainer.ServerConnection.TrueLogin;
var categories = jobData.Categories;
result.Categories = new AgentJobCategory[categories.Length];
for (int i = 0; i < categories.Length; ++i)
{
result.Categories[i] = new AgentJobCategory
{
Id = categories[i].SmoCategory.ID,
Name = categories[i].SmoCategory.Name
};
}
result.Success = true;
}
catch (Exception ex)
{
result.Success = false;
result.ErrorMessage = ex.ToString();
}
await requestContext.SendResult(result);
});
}
#endregion // "Jobs Handlers"

View File

@@ -4,19 +4,17 @@
//
using System;
using System.Data;
using System.Drawing;
using System.Threading;
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Data;
using System.Threading;
using System.Xml;
using Microsoft.SqlServer.Management.Sdk.Sfc;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Diagnostics;
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Smo.Agent;
using Microsoft.SqlServer.Management.UI;
using Microsoft.SqlTools.ServiceLayer.Admin;
using Microsoft.SqlTools.ServiceLayer.Management;

View File

@@ -102,7 +102,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Agent.Contracts
public static readonly
RequestType<UpdateAgentJobParams, UpdateAgentJobResult> Type =
RequestType<UpdateAgentJobParams, UpdateAgentJobResult>.Create("agent/updatejob");
}
}
/// <summary>
/// SQL Agent delete Alert params
@@ -182,4 +182,45 @@ namespace Microsoft.SqlTools.ServiceLayer.Agent.Contracts
RequestType<AgentJobActionParams, ResultStatus> Type =
RequestType<AgentJobActionParams, ResultStatus>.Create("agent/jobaction");
}
/// <summary>
/// SQL Agent Job Defaults params
/// </summary>
public class AgentJobDefaultsParams
{
public string OwnerUri { get; set; }
}
/// <summary>
/// SQL Agent Job Category class
/// </summary>
public class AgentJobCategory
{
public int Id { get; set; }
public string Name { get; set; }
}
/// <summary>
/// SQL Agent Job Defaults result
/// </summary>
public class AgentJobDefaultsResult : ResultStatus
{
public string Owner { get; set; }
public AgentJobCategory[] Categories { get; set; }
}
/// <summary>
/// SQL Agent Job Defaults request type
/// </summary>
public class AgentJobDefaultsRequest
{
/// <summary>
/// Request definition
/// </summary>
public static readonly
RequestType<AgentJobDefaultsParams, AgentJobDefaultsResult> Type =
RequestType<AgentJobDefaultsParams, AgentJobDefaultsResult>.Create("agent/jobdefaults");
}
}

View File

@@ -58,68 +58,68 @@ namespace Microsoft.SqlTools.ServiceLayer.Agent
switch (categoryId)
{
case 0:
localisableCategory = "LocalizableCategorySR.CategoryLocal";
localisableCategory = SR.CategoryLocal;
break;
case 1:
localisableCategory = "LocalizableCategorySR.CategoryFromMsx";
localisableCategory = SR.CategoryFromMsx;
break;
case 2:
localisableCategory = "LocalizableCategorySR.CategoryMultiServer";
localisableCategory = SR.CategoryMultiServer;
break;
case 3:
localisableCategory = "LocalizableCategorySR.CategoryDBMaint";
localisableCategory = SR.CategoryDBMaint;
break;
case 4:
localisableCategory = "LocalizableCategorySR.CategoryWebAssistant";
localisableCategory = SR.CategoryWebAssistant;
break;
case 5:
localisableCategory = "LocalizableCategorySR.CategoryFullText";
localisableCategory = SR.CategoryFullText;
break;
case 6:
localisableCategory = "LocalizableCategorySR.CategoryLogShipping";
localisableCategory = "Log Shippings"; // SR.CategoryLogShippings;
break;
case 7:
localisableCategory = "LocalizableCategorySR.CategoryDBEngineTuningAdvisor";
localisableCategory = SR.CategoryDBEngineTuningAdvisor;
break;
case 8:
localisableCategory = "LocalizableCategorySR.CategoryDataCollector";
localisableCategory = SR.CategoryDataCollector;
break;
case 10:
localisableCategory = "LocalizableCategorySR.CategoryReplDistribution";
localisableCategory = SR.CategoryReplDistribution;
break;
case 11:
localisableCategory = "LocalizableCategorySR.CategoryReplDistributionCleanup";
localisableCategory = SR.CategoryReplDistributionCleanup;
break;
case 12:
localisableCategory = "LocalizableCategorySR.CategoryReplHistoryCleanup";
localisableCategory = SR.CategoryReplHistoryCleanup;
break;
case 13:
localisableCategory = "LocalizableCategorySR.CategoryReplLogReader";
localisableCategory = SR.CategoryReplLogReader;
break;
case 14:
localisableCategory = "LocalizableCategorySR.CategoryReplMerge";
localisableCategory = SR.CategoryReplMerge;
break;
case 15:
localisableCategory = "LocalizableCategorySR.CategoryReplSnapShot";
localisableCategory = SR.CategoryReplSnapShot;
break;
case 16:
localisableCategory = "LocalizableCategorySR.CategoryReplCheckup";
localisableCategory = SR.CategoryReplCheckup;
break;
case 17:
localisableCategory = "LocalizableCategorySR.CategoryReplCleanup";
localisableCategory = SR.CategoryReplCleanup;
break;
case 18:
localisableCategory = "LocalizableCategorySR.CategoryReplAlert";
localisableCategory = SR.CategoryReplAlert;
break;
case 19:
localisableCategory = "LocalizableCategorySR.CategoryReplQReader";
localisableCategory = SR.CategoryReplQReader;
break;
case 20:
localisableCategory = "LocalizableCategorySR.CategoryReplication";
localisableCategory = SR.CategoryReplication;
break;
case 98:
case 99:
localisableCategory = "LocalizableCategorySR.CategoryUncategorized";
localisableCategory = SR.CategoryUncategorized;
break;
default:
localisableCategory = defaultName;