public static TaskStatusChange UpdateWithLog( this TaskStatus status, Guid userId, Action <TaskStatus> action) { var oldValueJson = status.ToJsonString(); action(status); return(new TaskStatusChange { StatusId = status.Id, ChangerUserId = userId, CreateDateTime = DateTime.UtcNow, OldValueJson = oldValueJson, NewValueJson = status.ToJsonString() }); }