diff --git a/audit-logs/README.md b/audit-logs/README.md new file mode 100644 index 0000000..3ec3920 --- /dev/null +++ b/audit-logs/README.md @@ -0,0 +1,79 @@ + +# 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.