40 lines
1.4 KiB
C#

using HRD.WebApi.DAL;
using Microsoft.AspNetCore.Http;
using Microsoft.EntityFrameworkCore;
using System;
using System.Data.Common;
namespace HRD.WebApi.Helpers
{
public static class ServerInfoHelper
{
public static ServerInfo GetServerInfo(WebApiBaseContext context)
{
ServerInfo serverInfo = new ServerInfo();
{
serverInfo.DatabaseName = context?.Database?.GetDbConnection()?.Database; ;
serverInfo.DatabaseServer = context?.Database?.GetDbConnection()?.DataSource;
serverInfo.Message = "Online";
using DbConnection connection = context.Database.GetDbConnection();
try
{
connection.Open();
serverInfo.DatabaseStatus = "Online";
serverInfo.Status = StatusCodes.Status200OK;
}
catch (Exception ex)
{
serverInfo.DatabaseStatus = "Offline";
serverInfo.Status = StatusCodes.Status500InternalServerError;
serverInfo.Message = ex.Message;
}
}
serverInfo.Server = Environment.MachineName;
serverInfo.Version = WebApiConfig.AssemblyVersion;
serverInfo.IsLive = WebApiConfig.IsLive;
serverInfo.ClientVersion = WebApiConfig.ClientVersion;
return serverInfo;
}
}
}