diff --git a/audit-logs/audit-logs.sln.DotSettings.user b/audit-logs/audit-logs.sln.DotSettings.user
index c26cea0..17714e0 100644
--- a/audit-logs/audit-logs.sln.DotSettings.user
+++ b/audit-logs/audit-logs.sln.DotSettings.user
@@ -1,19 +1,41 @@
+ ForceIncluded
ForceIncluded
ForceIncluded
+ ForceIncluded
+ ForceIncluded
ForceIncluded
ForceIncluded
+ ForceIncluded
+ ForceIncluded
+ ForceIncluded
ForceIncluded
+ ForceIncluded
ForceIncluded
- <SessionState ContinuousTestingMode="0" IsActive="True" Name="AuditRecordRepositoryTests" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
+ <SessionState ContinuousTestingMode="0" Name="AuditRecordRepositoryTests" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
+ <Project Location="/home/julian/Documentos/repos/audit/audit-logs/audit-test" Presentation="<audit-test>" />
+</SessionState>
+ <SessionState ContinuousTestingMode="0" Name="GetAuditLogsAsync_FilterByDateRange_ReturnsCorrectRecords #2" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
<TestAncestor>
- <TestId>NUnit3x::053B6D24-445B-439A-AD42-80D31DC53059::net8.0::audit_test.Repository.AuditRecordRepositoryTests</TestId>
- <TestId>NUnit3x::053B6D24-445B-439A-AD42-80D31DC53059::net8.0::audit_test.AuditServiceIntegrationTests</TestId>
- <TestId>NUnit3x::053B6D24-445B-439A-AD42-80D31DC53059::net8.0::audit_test.Service.AuditServiceIntegrationTests</TestId>
- <TestId>xUnit::053B6D24-445B-439A-AD42-80D31DC53059::net8.0::audit_test.Service.AuditServiceTests</TestId>
- <TestId>NUnit3x::053B6D24-445B-439A-AD42-80D31DC53059::net8.0::audit_test.Repository.AuditServiceIntegrationTests</TestId>
+ <TestId>NUnit3x::053B6D24-445B-439A-AD42-80D31DC53059::net8.0::audit_test.Repository.AuditServiceFilterbyTextAndDateTests.GetAuditLogsAsync_FilterByDateRange_ReturnsCorrectRecords</TestId>
+ <TestId>NUnit3x::053B6D24-445B-439A-AD42-80D31DC53059::net8.0::audit_test.Repository.AuditServiceFilterTests.GetAuditLogsAsync_FilterByDateRange_ReturnsCorrectRecords</TestId>
</TestAncestor>
</SessionState>
- <SessionState ContinuousTestingMode="0" Name="RecordAuditAsync_ValidRecord_InsertsRecord" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
+ <SessionState ContinuousTestingMode="0" Name="GetAuditLogsAsync_FilterByDateRange_ReturnsCorrectRecords #3" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
+ <TestAncestor>
+ <TestId>NUnit3x::053B6D24-445B-439A-AD42-80D31DC53059::net8.0::audit_test.Repository.AuditServiceFilterbyTextAndDateTests.GetAuditLogsAsync_FilterByDateRange_ReturnsCorrectRecords</TestId>
+ </TestAncestor>
+</SessionState>
+ <SessionState ContinuousTestingMode="0" Name="VerifyAllRecordsLoaded_ReturnsCorrectCount" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
+ <TestAncestor>
+ <TestId>NUnit3x::053B6D24-445B-439A-AD42-80D31DC53059::net8.0::audit_test.Repository.AuditServiceFilterbyTextAndDateTests</TestId>
+ </TestAncestor>
+</SessionState>
+ <SessionState ContinuousTestingMode="0" Name="GetAuditLogsAsync_FilterByDateRange_ReturnsCorrectRecords" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
+ <TestAncestor>
+ <TestId>NUnit3x::053B6D24-445B-439A-AD42-80D31DC53059::net8.0::audit_test.Repository.AuditServiceFilterTests.GetAuditLogsAsync_FilterByDateRange_ReturnsCorrectRecords</TestId>
+ </TestAncestor>
+</SessionState>
+ <SessionState ContinuousTestingMode="0" IsActive="True" Name="RecordAuditAsync_ValidRecord_InsertsRecord" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
<Project Location="/home/julian/Documentos/repos/audit/audit-logs/audit-test" Presentation="<audit-test>" />
</SessionState>
\ No newline at end of file
diff --git a/audit-logs/audit-logs/Models/AppSettings/MongoDbSettings.cs b/audit-logs/audit-logs/Models/AppSettings/MongoDbSettings.cs
index 9050f70..7d7c2af 100644
--- a/audit-logs/audit-logs/Models/AppSettings/MongoDbSettings.cs
+++ b/audit-logs/audit-logs/Models/AppSettings/MongoDbSettings.cs
@@ -2,8 +2,6 @@
{
public class MongoDbSettings
{
- public const string Database = "DatabaseSettings";
-
public string? ConnectionString { get; set; }
public string? DatabaseName { get; set; }
}
diff --git a/audit-logs/audit-logs/Models/AuditLogData.cs b/audit-logs/audit-logs/Models/AuditLogData.cs
index a623c36..975d2d9 100644
--- a/audit-logs/audit-logs/Models/AuditLogData.cs
+++ b/audit-logs/audit-logs/Models/AuditLogData.cs
@@ -8,7 +8,7 @@ public class AuditLogData
public string ActionType { get; set; }
public string Reason { get; set; }
public DateTime ActionTime { get; set; }
- public string OriginalJson { get; set; }
+ public Object OriginalJson { get; set; }
public string ModifiedJson { get; set; }
public string UserIpAddress { get; set; }
}
\ No newline at end of file
diff --git a/audit-logs/audit-logs/Models/AuditRecord.cs b/audit-logs/audit-logs/Models/AuditRecord.cs
index ea053ee..4dd1cd6 100644
--- a/audit-logs/audit-logs/Models/AuditRecord.cs
+++ b/audit-logs/audit-logs/Models/AuditRecord.cs
@@ -3,6 +3,7 @@ using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using System;
using System.Collections.Generic;
+
public class AuditRecord
{
[BsonId]
@@ -28,7 +29,7 @@ public class AuditRecord
[BsonElement("reason")]
public string Reason { get; set; }
-
+
[BsonElement("user_ip_address")]
public string UserIpAddress { get; set; }
@@ -45,5 +46,55 @@ public class AuditRecord
[BsonElement("value_type")]
public string ValueType { get; set; }
+
+ public static object ConvertBsonValue(BsonValue bsonValue)
+ {
+ if (bsonValue == null || bsonValue.IsBsonNull)
+ {
+ return null; // Devuelve nulo si el valor BSON es nulo o no existe
+ }
+ switch (bsonValue.BsonType)
+ {
+ case BsonType.String:
+ return bsonValue.AsString;
+ case BsonType.Int32:
+ return bsonValue.AsInt32;
+ case BsonType.Int64:
+ return bsonValue.AsInt64;
+ case BsonType.Boolean:
+ return bsonValue.AsBoolean;
+ case BsonType.DateTime:
+ return bsonValue.ToUniversalTime();
+ case BsonType.Double:
+ return bsonValue.AsDouble;
+ case BsonType.ObjectId:
+ return bsonValue.AsObjectId.ToString();
+ /*case BsonType.Document:
+ return bsonValue.ToJson(); */
+ case BsonType.Array:
+ var array = bsonValue.AsBsonArray;
+ var resultList = new List