using System.Data; using Microsoft.ApplicationInsights.DataContracts; using Microsoft.ApplicationInsights.Extensibility; namespace PlanTempus.Core.Database; public class DatabaseScope : IDisposable { private readonly IOperationHolder _operation; public DatabaseScope(IDbConnection connection, IOperationHolder operation) { Connection = connection; _operation = operation; _operation.Telemetry.Success = true; } public IDbConnection Connection { get; } public void Dispose() { _operation.Dispose(); Connection.Dispose(); } public void Error(Exception ex) { _operation.Telemetry.Success = false; _operation.Telemetry.Properties["Error"] = ex.Message; } }