예제 #1
0
        public override void PreProcess(IFeatureChain featureChain, FeatureAccount featureAccount, Transaction transaction, FeatureData featureData)
        {
            if (_chainHandler == null)
            {
                _chainHandler = featureChain.GetFeatureChainHandler <GroupChainHandler>(featureData.FeatureId);
            }

            var group     = featureData as Group;
            var groupId   = group.GroupId;
            var index     = group.GroupIndex;
            var groupInfo = _chainHandler.GetGroupInfo(groupId);

            var info = groupInfo.LastTransactionInfo;

            PreviousGroupTransactions.Set(groupId, info.TransactionId);
            GroupTransactionsCount.Set(groupId, info.Count);

            if (index != null)
            {
                info = groupInfo.GetLastGroupIndexTransactionInfo(index, true);

                PreviousGroupIndexTransactions.Set(groupId, index, info.TransactionId);
                GroupIndexTransactionsCount.Set(groupId, info.Count);
            }
        }
예제 #2
0
        public override void PreProcess(IFeatureChain featureChain, FeatureAccount featureAccount, Transaction transaction, FeatureData featureData)
        {
            var targetData    = featureData as TransactionTarget;
            var targetHandler = featureChain.GetFeatureChainHandler <TransactionTargetChainHandler>(featureData.FeatureId);

            var targets = targetData.Targets;

            foreach (var targetId in targets)
            {
                var info = targetHandler?.GetTransactionTargetInfo(targetId)?.LastTransactionInfo ?? LastTransactionCountInfo.Empty;
                _lastTransactionIdLookup.Set(targetId, info.TransactionId);
                _lastTransactionCountLookup.Set(targetId, info.Count);
            }
        }
예제 #3
0
        public override void PreProcess(IFeatureChain featureChain, FeatureAccount featureAccount, Transaction transaction, FeatureData featureData)
        {
            if (_chainHandler == null)
            {
                _chainHandler = featureChain.GetFeatureChainHandler <GroupAdministrationChainHandler>(featureData.FeatureId);
                _nextGroupId  = _chainHandler.LastGroupId + 1;
            }

            if (transaction.GetFeatureRequest <GroupAdministrationRequest>(out var request))
            {
                var groupId = request.GroupId;
                var group   = _chainHandler.GetGroupInfo(groupId);
                _lastTransactionIdLookup.Set(groupId, group.AdministrationLastTransactionInfo.TransactionId);
            }
        }
예제 #4
0
        public override void UpdateMetaData(IFeatureChain featureChain, Transaction transaction, FeatureData featureData)
        {
            if (_chainHandler == null)
            {
                _chainHandler = featureChain.GetFeatureChainHandler <GroupChainHandler>(featureData.FeatureId);
            }

            var group         = featureData as Group;
            var groupId       = group.GroupId;
            var index         = group.GroupIndex;
            var transactionId = transaction.TransactionId;

            group.PreviousGroupTransactionId = PreviousGroupTransactions.Update(groupId, transactionId);
            group.GroupTransactionCount      = GroupTransactionsCount.Increase(groupId);

            if (index != null)
            {
                group.PreviousGroupIndexTransactionId = PreviousGroupIndexTransactions.Update(groupId, index, transactionId);
                group.GroupIndexTransactionCount      = GroupIndexTransactionsCount.Increase(groupId);
            }
        }
예제 #5
0
 public GroupQueryHandler(Feature feature, IFeatureChain currentChain) : base(feature, currentChain)
 {
     _handler = currentChain.GetFeatureChainHandler <GroupChainHandler>(FeatureId);
 }
예제 #6
0
 public TransactionTargetQueryHandler(Feature feature, IFeatureChain featureChain) : base(feature, featureChain)
 {
     _chainHandler = featureChain.GetFeatureChainHandler <TransactionTargetChainHandler>(feature.FeatureId);
 }
예제 #7
0
 public GroupAdministrationQueryHandler(Feature feature, IFeatureChain currentChain) : base(feature, currentChain)
 {
     _handler = currentChain.GetFeatureChainHandler <GroupAdministrationChainHandler>(FeatureId);
 }