// // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. // using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; namespace Microsoft.SqlTools.ServiceLayer.BatchParser.ExecutionEngineCode { public class ScriptExecutionArgs : EventArgs { private IDbConnection connection; private IBatchEventsHandler batchEventHandlers; private int startingLine; private Dictionary cmdVariables; #region Constructors / Destructor /// /// Constructor method for ScriptExecutionArgs /// public ScriptExecutionArgs( string script, SqlConnection connection, int timeOut, ExecutionEngineConditions conditions, IBatchEventsHandler batchEventHandlers) : this (script, (IDbConnection)connection, timeOut, conditions, batchEventHandlers) { // nothing } /// /// Constructor method for ScriptExecutionArgs /// public ScriptExecutionArgs( string script, SqlConnection connection, int timeOut, ExecutionEngineConditions conditions, IBatchEventsHandler batchEventHandlers, int startingLine, IDictionary variables) : this(script, (IDbConnection) connection, timeOut, conditions, batchEventHandlers, startingLine, variables) { // nothing } /// /// Constructor method for ScriptExecutionArgs /// public ScriptExecutionArgs( string script, IDbConnection connection, int timeOut, ExecutionEngineConditions conditions, IBatchEventsHandler batchEventHandlers) : this(script, connection, timeOut, conditions, batchEventHandlers, 0, null) { // nothing } /// /// Constructor method for ScriptExecutionArgs /// public ScriptExecutionArgs( string script, IDbConnection connection, int timeOut, ExecutionEngineConditions conditions, IBatchEventsHandler batchEventHandlers, int startingLine, IDictionary variables) { Script = script; this.connection = connection; TimeOut = timeOut; Conditions = conditions; this.batchEventHandlers = batchEventHandlers; this.startingLine = startingLine; if (variables != null) { foreach (var variable in variables) { Variables[variable.Key] = variable.Value; } } } #endregion #region Public properties public string Script { get; set; } // FUTURE CLEANUP: Remove in favor of general signature (IDbConnection) - #920978 public SqlConnection Connection { get { return connection as SqlConnection; } set { connection = value as SqlConnection; } } public IDbConnection ReliableConnection { get { return connection; } set { connection = value; } } public int TimeOut { get; set; } internal ExecutionEngineConditions Conditions { get; set; } internal IBatchEventsHandler BatchEventHandlers { get { return batchEventHandlers; } set { batchEventHandlers = value; } } internal int StartingLine { get { return startingLine; } set { startingLine = value; } } internal Dictionary Variables { get { if (cmdVariables == null) { cmdVariables = new Dictionary(StringComparer.CurrentCultureIgnoreCase); } return cmdVariables; } } #endregion } }