using System; using Oracle.DataAccess.Client; namespace Endpoint { public class OracleEndpoint : IServiceEndpoint { private readonly OracleEndpointConfiguration _serviceEndpointConfiguration; public IServiceEndpointConfiguration ServiceEndpointConfiguration { get { return _serviceEndpointConfiguration; } } public string ServiceName { get { return _serviceEndpointConfiguration.Name; } } public string StatusDescription { get; private set; } public Status GetStatus() { using (OracleConnection oracleConnection = new OracleConnection(_serviceEndpointConfiguration.ConnectionString)) using (OracleCommand oracleCommand = new OracleCommand(_serviceEndpointConfiguration.ScalarQueryString, oracleConnection)) { try { oracleConnection.Open(); object result = oracleCommand.ExecuteScalar(); string resultString = result.ToString(); if (resultString != _serviceEndpointConfiguration.ExpectedQueryResult) { StatusDescription = String.Format("Result was: '{0}', was expecting '{1}'", resultString, _serviceEndpointConfiguration.ExpectedQueryResult); return Status.Error; } } catch(Exception ex) { StatusDescription = ex.Message; return Status.Error; } } StatusDescription = "OK"; return Status.Up; } /// /// Initializes a new instance of the class. /// /// The config. public OracleEndpoint(OracleEndpointConfiguration config) { _serviceEndpointConfiguration = config; StatusDescription = ""; } } }