public TrackedChangeRecord ToRecord(TrackedChange change) { return(new TrackedChangeRecord() { Id = change.Id, ActorName = change.ActorName, UserId = change.UserId, AggregateClassId = change.AggregateClassId, AggregateId = change.AggregateId, ChangeDataClassName = changeDataTypeCache.GetChangeDataTypeName(change.ChangeData.GetType()), ChangeDataJson = JsonConvert.SerializeObject(change.ChangeData), ChangeTime = change.ChangeTime, EntityClassId = change.EntityClassId, EntityId = change.EntityId }); }
public TrackedChange AddChange <T>(T changeData, Guid?aggregateId = null, Guid?aggregateClassId = null, Guid?entityId = null, Guid?entityClassId = null, Guid?userId = null) where T : ChangeData { var actorName = actorContext.CurrentActorName; var now = Clock.Current.Now; TrackedChange change = new TrackedChange(Guid.NewGuid(), changeData, actorName: actorName, aggregateId: aggregateId, aggregateClassId: aggregateClassId, entityId: entityId, entityClassId: entityClassId, changeTime: now, userId: userId); TrackedChangeRecord record = trackedChangeRecordConverter.ToRecord(change); unsavedChangeRecords.Add(record); return(change); }