From 046563318adc15d33954eaae680aea9f86bdb87a Mon Sep 17 00:00:00 2001 From: Aditya Bist Date: Thu, 6 Dec 2018 17:34:48 -0800 Subject: [PATCH] added ability to start at step (#758) --- .../Agent/Common/AgentUtilities.cs | 9 ++++- .../Agent/Contracts/AgentJobInfo.cs | 2 +- .../Agent/Jobs/JobData.cs | 3 ++ .../Agent/Jobs/JobProperties.cs | 36 +++++++++++++++++++ 4 files changed, 48 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.SqlTools.ServiceLayer/Agent/Common/AgentUtilities.cs b/src/Microsoft.SqlTools.ServiceLayer/Agent/Common/AgentUtilities.cs index 048632e5..c5cc675c 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Agent/Common/AgentUtilities.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/Agent/Common/AgentUtilities.cs @@ -53,7 +53,14 @@ namespace Microsoft.SqlTools.ServiceLayer.Agent CategoryType = job.CategoryType, LastRun = job.LastRun != null ? job.LastRun.ToString() : string.Empty, NextRun = job.NextRun != null ? job.NextRun.ToString() : string.Empty, - JobId = job.JobID != null ? job.JobID.ToString() : null + JobId = job.JobID != null ? job.JobID.ToString() : null, + OperatorToEmail = job.OperatorToEmail, + OperatorToPage = job.OperatorToPage, + StartStepId = job.StartStepID, + EmailLevel = job.EmailLevel, + PageLevel = job.PageLevel, + EventLogLevel = job.EventLogLevel, + DeleteLevel = job.DeleteLevel }; } diff --git a/src/Microsoft.SqlTools.ServiceLayer/Agent/Contracts/AgentJobInfo.cs b/src/Microsoft.SqlTools.ServiceLayer/Agent/Contracts/AgentJobInfo.cs index 103c4949..8ee7a9af 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Agent/Contracts/AgentJobInfo.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/Agent/Contracts/AgentJobInfo.cs @@ -52,7 +52,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Agent.Contracts public string JobId { get; set; } public string OperatorToEmail { get; set; } public string OperatorToPage { get; set; } - public int StartStepID { get; set; } + public int StartStepId { get; set; } public JobCompletionActionCondition EmailLevel { get; set; } public JobCompletionActionCondition PageLevel { get; set; } public JobCompletionActionCondition EventLogLevel { get; set; } diff --git a/src/Microsoft.SqlTools.ServiceLayer/Agent/Jobs/JobData.cs b/src/Microsoft.SqlTools.ServiceLayer/Agent/Jobs/JobData.cs index cb4dc244..a3d338d2 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Agent/Jobs/JobData.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/Agent/Jobs/JobData.cs @@ -166,6 +166,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Agent // other information private string script = null; private string scriptName = null; + private int startStepID = -1; #endregion @@ -661,6 +662,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Agent this.owner = jobInfo.Owner; this.description = jobInfo.Description; this.enabled = jobInfo.Enabled; + this.startStepID = jobInfo.StartStepId; } } #endregion @@ -1184,6 +1186,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Agent } else { + job.StartStepID = this.startStepID != -1 ? this.startStepID : job.StartStepID; job.Alter(); } diff --git a/src/Microsoft.SqlTools.ServiceLayer/Agent/Jobs/JobProperties.cs b/src/Microsoft.SqlTools.ServiceLayer/Agent/Jobs/JobProperties.cs index b825716a..45863c03 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Agent/Jobs/JobProperties.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/Agent/Jobs/JobProperties.cs @@ -6,6 +6,7 @@ using System; using System.Data; using System.Globalization; +using Microsoft.SqlTools.ServiceLayer.Agent.Contracts; namespace Microsoft.SqlTools.ServiceLayer.Agent { @@ -182,5 +183,40 @@ namespace Microsoft.SqlTools.ServiceLayer.Agent return this.description; } } + + public int StartStepID + { + get { return this.startStepID; } + } + + public string OperatorToEmail + { + get { return this.operatorToEmail; } + } + + public string OperatorToPage + { + get { return this.operatorToPage; } + } + + public JobCompletionActionCondition EmailLevel + { + get { return (JobCompletionActionCondition)this.emailLevel; } + } + + public JobCompletionActionCondition PageLevel + { + get { return (JobCompletionActionCondition)this.pageLevel; } + } + + public JobCompletionActionCondition EventLogLevel + { + get { return (JobCompletionActionCondition)this.eventLogLevel; } + } + + public JobCompletionActionCondition DeleteLevel + { + get { return (JobCompletionActionCondition)this.eventLogLevel; } + } } } \ No newline at end of file