< Summary

Information
Class: FAU.Entidades.Auditoria.Auditoria
Assembly: FAU.Logica
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/Auditoria/Auditoria.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 26
Coverable lines: 26
Total lines: 52
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 2
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
IniciarAuditoria(...)0%620%

File(s)

/home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/Auditoria/Auditoria.cs

#LineLine coverage
 1using Microsoft.Extensions.Configuration;
 2using NpgsqlTypes;
 3using System;
 4using Serilog;
 5using Serilog.Events;
 6using Serilog.Sinks.PostgreSQL;
 7
 8namespace FAU.Entidades.Auditoria
 9{
 10    public class Auditoria
 11    {
 12        public static void IniciarAuditoria(IConfiguration config)
 13        {
 14            // Build base logger from configuration (levels, enrichers, etc.)
 015            var loggerConfig = new LoggerConfiguration()
 016                .ReadFrom.Configuration(config);
 17
 18            // Add console sink for local verification (show properties), then read audit DB connection and table name f
 019            loggerConfig = loggerConfig.WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj} 
 20
 21            // Read audit DB connection and table name from configuration
 022            var auditConn = config.GetConnectionString("DefaultConnection");
 023            var tableName = "bitacora_auditoria";
 024            if (!string.IsNullOrWhiteSpace(auditConn))
 25            {
 26                // configure column writers explicitly to avoid issues with JSON type resolution
 027                var columnWriters = new Dictionary<string, ColumnWriterBase>
 028                {
 029                    { "usuario_id", new SinglePropertyColumnWriter("usuario_id", PropertyWriteMethod.Raw, NpgsqlDbType.B
 030                    { "accion_id", new SinglePropertyColumnWriter("accion_id", PropertyWriteMethod.Raw, NpgsqlDbType.Big
 031                    { "contexto_id", new SinglePropertyColumnWriter("contexto_id", PropertyWriteMethod.Raw, NpgsqlDbType
 032                    { "host", new SinglePropertyColumnWriter("host", PropertyWriteMethod.Raw, NpgsqlDbType.Text) },
 033                    { "fecha", new TimestampColumnWriter(NpgsqlDbType.Timestamp) }
 034                };
 35
 036                loggerConfig = loggerConfig.WriteTo.PostgreSQL(
 037                    auditConn,
 038                    tableName,
 039                    columnWriters,
 040                    formatProvider: null,
 041                    restrictedToMinimumLevel: LogEventLevel.Information,
 042                    batchSizeLimit: 1000,
 043                    period: TimeSpan.FromSeconds(2),
 044                    useCopy: false);
 45            }
 46
 47
 048            Serilog.Debugging.SelfLog.Enable(msg => Console.Error.WriteLine("Serilog SelfLog: " + msg));
 049            Log.Logger = loggerConfig.CreateLogger();
 050        }
 51    }
 52}