private TransactionContextEntity <T> GetTargetContextEntity()
        {
            var target   = GetTargetEntity().ToEntity <T>();
            var txTarget = new TransactionContextEntity <T>(target);

            var actionContext = new TargetActionContext
            {
                TransactionContext = this,
                Target             = txTarget
            };

            foreach (var action in Config.TargetActions)
            {
                if (action.CanExecute(actionContext))
                {
                    action.Execute(actionContext);
                }
            }

            return(txTarget);
        }
        private TransactionContextEntity <T> GetCurrentContextEntity()
        {
            var current         = GetCurrentEntity();
            var currentAccessor = new FormattedValueCurrentAccessor <T>(Target.Entity, current, this);
            var txCurrent       = new TransactionContextEntity <T>(currentAccessor);

            var actionContext = new CurrentActionContext
            {
                TransactionContext = this,
                Target             = Target,
                Current            = txCurrent
            };

            foreach (var action in Config.CurrentActions)
            {
                if (action.CanExecute(actionContext))
                {
                    action.Execute(actionContext);
                }
            }

            return(txCurrent);
        }