Add Database status to OE tree node (#485)

This commit is contained in:
Karl Burtram
2017-10-10 16:32:54 -07:00
committed by GitHub
parent 284a3e0ee4
commit 11cb154d6d
2 changed files with 75 additions and 2 deletions

View File

@@ -0,0 +1,73 @@
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
using Microsoft.SqlServer.Management.Smo;
namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
/// <summary>
/// Status for databases
/// </summary>
internal partial class DatabasesChildFactory : SmoChildFactoryBase
{
public override string GetNodeStatus(object context)
{
return DatabasesCustomNodeHelper.GetStatus(context);
}
}
internal static class DatabasesCustomNodeHelper
{
internal static string GetStatus(object context)
{
Database db = context as Database;
if (db != null)
{
if ((db.Status & DatabaseStatus.Offline) == DatabaseStatus.Offline)
{
return "Offline";
}
else if ((db.Status & DatabaseStatus.Recovering) == DatabaseStatus.Recovering)
{
return "Recovering";
}
else if ((db.Status & DatabaseStatus.RecoveryPending) == DatabaseStatus.RecoveryPending)
{
return "Recovery Pending";
}
else if ((db.Status & DatabaseStatus.Restoring) == DatabaseStatus.Restoring)
{
return "Restoring";
}
else if ((db.Status & DatabaseStatus.EmergencyMode) == DatabaseStatus.EmergencyMode)
{
return "Emergency Mode";
}
else if ((db.Status & DatabaseStatus.Inaccessible) == DatabaseStatus.Inaccessible)
{
return "Inaccessible";
}
else if ((db.Status & DatabaseStatus.Shutdown) == DatabaseStatus.Shutdown)
{
return "Shutdown";
}
else if ((db.Status & DatabaseStatus.Standby) == DatabaseStatus.Standby)
{
return "Standby";
}
else if ((db.Status & DatabaseStatus.Suspect) == DatabaseStatus.Suspect)
{
return "Suspect";
}
else if ((db.Status & DatabaseStatus.AutoClosed) == DatabaseStatus.AutoClosed)
{
return "Auto Closed";
}
}
return string.Empty;
}
}
}

View File

@@ -14,11 +14,11 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
public override string GetNodeStatus(object context)
{
return LoginCustomeNodeHelper.GetStatus(context);
return LoginCustomNodeHelper.GetStatus(context);
}
}
internal static class LoginCustomeNodeHelper
internal static class LoginCustomNodeHelper
{
internal static string GetStatus(object context)
{