Files
AuditLogs/audit-logs

Integración de la Biblioteca AuditLogs

Configuración y Uso de AuditLogs

Este documento es una guia para la utilización de la biblioteca AuditLogs en aplicaciones .NET que requieren funcionalidades de auditoría mediante MongoDB.

Configuración Inicial

1. Configuración en appsettings.json

Agregue la siguiente configuración para la conexión a la base de MongoDB que usara la biblioteca, esto se pone en el archivo appsettings.json:

"DatabaseConfigurationAudit": {
    "ConnectionString": "mongodb://usuario:contraseña@host:puerto/?authSource=base_de_datos_autenticación",
    "DatabaseName": "AuditMeddisPlanUciPanel"
}

2. Instalación de la Biblioteca

Instale la biblioteca AuditLogs a través de NuGet con el siguiente comando:

dotnet add package AuditLogs

previamente se tuvo que haber configurado esta fuente https://smacs-nuget.epigramdev.com/v3/index.json

3. Configuración en Program.cs

Para configurar los servicios de la biblioteca en el archivo Program.cs, se debe incluir el espacio de nombres audit_logs.Extensions y ejecutar el método AddAuditServices:

using audit_logs.Extensions;

var builder = WebApplication.CreateBuilder(args);

// Configuración de servicios de auditoría
builder.Services.AddAuditServices(builder.Configuration);
builder.Services.AddHttpContextAccessor();

Uso en Servicios

Implemente IAuditService en los servicios donde se requiera registrar eventos de auditoría. El servicio de admisiones, por ejemplo, puede configurarse de la siguiente manera, donde se inyecta IAuditService y IHttpContextAccessor para registrar eventos de auditoría relacionados con las admisiones de pacientes:

Ejemplo en el Servicio de Admisiones

public class AdmissionService : IAdmissionService
{
    private readonly IAuditService _auditService;
    private readonly IHttpContextAccessor _httpContextAccessor;
    // Inyección de otros servicios necesarios...

    public AdmissionService(IAuditService auditService, IHttpContextAccessor httpContextAccessor, /* otros parámetros */)
    {
        _auditService = auditService;
        _httpContextAccessor = httpContextAccessor;
        // Inicialización de otros servicios...
    }

    public async Task AdmitPatient(Patient patient)
    {
        var httpContext = _httpContextAccessor.HttpContext;
        var insertedAdmission = /* lógica para admitir al paciente */;
        
        // Registro de evento de auditoría
        await _auditService.CreateAuditLogAsync(httpContext.User, null, insertedAdmission);
    }
}

Resumen

Los pasos anteriores permiten la integración de la biblioteca AuditLogs para la captura y registro de eventos de auditoría de manera eficiente. Es recomendable realizar pruebas exhaustivas en el entorno de desarrollo antes de desplegar en producción para asegurar la correcta configuración y funcionamiento.