mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-15 09:35:37 -05:00
Move unused forked code to external directory (#1192)
* Move unused forked code to external directory * Fix SLN build errors * Add back resource provider core since it's referenced by main resource provider project * Update PackageProjects step of pipeline
This commit is contained in:
71
external/Microsoft.SqlTools.CoreServices/Connection/ReliableConnection/DbCommandWrapper.cs
vendored
Normal file
71
external/Microsoft.SqlTools.CoreServices/Connection/ReliableConnection/DbCommandWrapper.cs
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
//
|
||||
// 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.Data;
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Microsoft.SqlTools.Hosting.Utility;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Wraps <see cref="IDbCommand"/> objects that could be a <see cref="SqlCommand"/> or
|
||||
/// a <see cref="ReliableSqlConnection.ReliableSqlCommand"/>, providing common methods across both.
|
||||
/// </summary>
|
||||
internal sealed class DbCommandWrapper
|
||||
{
|
||||
private readonly IDbCommand _command;
|
||||
private readonly bool _isReliableCommand;
|
||||
|
||||
public DbCommandWrapper(IDbCommand command)
|
||||
{
|
||||
Validate.IsNotNull(nameof(command), command);
|
||||
if (command is ReliableSqlConnection.ReliableSqlCommand)
|
||||
{
|
||||
_isReliableCommand = true;
|
||||
}
|
||||
else if (!(command is SqlCommand))
|
||||
{
|
||||
throw new InvalidOperationException(Resources.InvalidCommandType);
|
||||
}
|
||||
_command = command;
|
||||
}
|
||||
|
||||
public static bool IsSupportedCommand(IDbCommand command)
|
||||
{
|
||||
return command is ReliableSqlConnection.ReliableSqlCommand
|
||||
|| command is SqlCommand;
|
||||
}
|
||||
|
||||
|
||||
public event StatementCompletedEventHandler StatementCompleted
|
||||
{
|
||||
add
|
||||
{
|
||||
SqlCommand sqlCommand = GetAsSqlCommand();
|
||||
sqlCommand.StatementCompleted += value;
|
||||
}
|
||||
remove
|
||||
{
|
||||
SqlCommand sqlCommand = GetAsSqlCommand();
|
||||
sqlCommand.StatementCompleted -= value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets this as a SqlCommand by casting (if we know it is actually a SqlCommand)
|
||||
/// or by getting the underlying command (if it's a ReliableSqlCommand)
|
||||
/// </summary>
|
||||
private SqlCommand GetAsSqlCommand()
|
||||
{
|
||||
if (_isReliableCommand)
|
||||
{
|
||||
return ((ReliableSqlConnection.ReliableSqlCommand) _command).GetUnderlyingCommand();
|
||||
}
|
||||
return (SqlCommand) _command;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user