# 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`: ```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: ```bash 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: ```csharp 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 ```csharp 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.