Fix CreatedAt to never change after being created

This commit is contained in:
Marc Hernandez 2025-11-01 15:01:09 -07:00
parent a5871e9c0b
commit 307a0b8cdc

View File

@ -258,7 +258,8 @@ public record class Recorded<T> : Versioned<T> where T : Recorded<T>
var current = (T)this; var current = (T)this;
var next = fn( current ); var next = fn( current );
if (ReferenceEquals(current, next)) return current; if( ReferenceEquals( current, next ) )
return current;
var newMeta = new Metadata_Recorded var newMeta = new Metadata_Recorded
{ {
@ -324,7 +325,7 @@ public record class Timed<T> : Recorded<T> where T : Timed<T>
LineNumber = dbgLine, LineNumber = dbgLine,
Expression = dbgExpression, Expression = dbgExpression,
OldObject = current, OldObject = current,
CreatedAt = DateTime.UtcNow, CreatedAt = current.Meta.CreatedAt,
TouchedAt = DateTime.UtcNow TouchedAt = DateTime.UtcNow
}; };
@ -354,8 +355,7 @@ public static class TimedExt
[CallerFilePath] string dbgPath = "", [CallerFilePath] string dbgPath = "",
[CallerLineNumber] int dbgLine = 0, [CallerLineNumber] int dbgLine = 0,
[CallerArgumentExpression( "fn" )] string dbgExpression = "" [CallerArgumentExpression( "fn" )] string dbgExpression = ""
) ) where T : imm.Timed<T>
where T : imm.Timed<T>
{ {
obj = obj.Process( fn, reason, dbgName, dbgPath, dbgLine, dbgExpression ); obj = obj.Process( fn, reason, dbgName, dbgPath, dbgLine, dbgExpression );
return obj; return obj;