Files
mRemoteNG/mRemoteV1/Config/Serializers/Versioning/SqlVersion25To26Upgrader.cs
Mike Beattie 9f3bf545bf Implement MySQL support
* Uses MySQL Connector/NET from nuget
* Adds SQL Server type to configuration.
* Hostname for MySQL connections can include port
  - Format:  <hostname>[:<port>]
* Abstracted a bundle of stuff to be generic for both
  MSSQL and MySQL, including a number of variable and method names.
  (Mostly went from "sql..." -> "db..."
* Changed MiscTools.DBDate() string building for MSSQL,
  uses DateTime.ToString() with a format which seemed simpler.
* Unsure about which lines in .csproj are actually required,
  and which are auto-munged by Visual Studio.
* ... This is my first C# (and VS!) work, be gentle!

Signed-off-by: Mike Beattie <mike@ethernal.org>
2019-02-17 18:27:00 +13:00

45 lines
1.5 KiB
C#

using mRemoteNG.App;
using mRemoteNG.Config.DatabaseConnectors;
using mRemoteNG.Messages;
using System;
namespace mRemoteNG.Config.Serializers.Versioning
{
public class SqlVersion25To26Upgrader : IVersionUpgrader
{
private readonly IDatabaseConnector _databaseConnector;
public SqlVersion25To26Upgrader(IDatabaseConnector databaseConnector)
{
if (databaseConnector == null)
throw new ArgumentNullException(nameof(databaseConnector));
_databaseConnector = databaseConnector;
}
public bool CanUpgrade(Version currentVersion)
{
return currentVersion.CompareTo(new Version(2, 5)) == 0;
}
public Version Upgrade()
{
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg,
"Upgrading database from version 2.5 to version 2.6.");
const string sqlText = @"
ALTER TABLE tblCons
ADD RDPMinutesToIdleTimeout int NOT NULL DEFAULT 0,
RDPAlertIdleTimeout bit NOT NULL DEFAULT 0,
SoundQuality varchar (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT 'Dynamic',
InheritRDPMinutesToIdleTimeout bit NOT NULL DEFAULT 0,
InheritRDPAlertIdleTimeout bit NOT NULL DEFAULT 0,
InheritSoundQuality bit NOT NULL DEFAULT 0;
UPDATE tblRoot
SET ConfVersion='2.6'";
var dbCommand = _databaseConnector.DbCommand(sqlText);
dbCommand.ExecuteNonQuery();
return new Version(2, 6);
}
}
}