コード例 #1
0
        public override void UpdateMetaData(IFeatureChain currentChain, Transaction transaction, FeatureData featureData)
        {
            var accountId = transaction.AccountId;
            var feature   = featureData as AccountIndexBase;

            feature.PreviousTransactionId = _lastTransactionIdLookup.Update(accountId, transaction.TransactionId);
            feature.TransactionCount      = _lastTransactionCountLookup.Increase(accountId);
        }
コード例 #2
0
        public override void Update(CommitItems commitItems, IFeatureChain featureChain, Transaction transaction, FeatureData transactionFeature)
        {
            var feature = transactionFeature as AccountIndex;
            var info    = new LastTransactionCountInfo(transaction.TransactionId, transaction.Timestamp, feature.TransactionCount);

            UpdateLastTransactionInfo(feature.Index, info);
            commitItems.DirtyAccounts.Add(transaction.AccountId);
        }
コード例 #3
0
        public override void PreProcess(IFeatureChain featureChain, FeatureAccount featureAccount, Transaction transaction, FeatureData featureData)
        {
            var receiverData = featureData as Receiver;
            var receivers    = receiverData.Receivers;

            foreach (var receiverId in receivers)
            {
                var receiverAccount = featureChain.GetFeatureAccount(receiverId);
                var info            = receiverAccount.GetFeatureContainer <ReceiverContainer>(featureData.FeatureId)?.LastReceiverTransactionInfo ?? LastTransactionCountInfo.Empty;

                _lastTransactionIdLookup.Set(receiverId, info.TransactionId);
                _lastTransactionCountLookup.Set(receiverId, info.Count);
            }
        }
コード例 #4
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);
            }
        }
コード例 #5
0
        public override void UpdateMetaData(IFeatureChain featureChain, Transaction transaction, FeatureData featureData)
        {
            var targetData = featureData as TransactionTarget;
            var targets    = targetData.Targets;

            var count = targets.Count;

            for (var i = 0; i < count; i++)
            {
                var receiverId = targets[i];

                targetData._previousTargetedTransactionId[i] = _lastTransactionIdLookup.Update(receiverId, transaction.TransactionId);
                targetData._targetedTransactionsCount[i]     = _lastTransactionCountLookup.Increase(receiverId);
            }
        }
コード例 #6
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);
            }
        }
コード例 #7
0
        public override void PreProcess(IFeatureChain currentChain, FeatureAccount featureAccount, Transaction transaction, FeatureData featureData)
        {
            var feature   = featureData as AccountIndexBase;
            var featureId = featureData.FeatureId;
            var accountId = featureAccount.AccountId;

            var container = featureAccount.GetFeatureContainer <AccountIndexContainerBase>(featureId);

            if (container != null)
            {
                var info = container.GetLastTransactionInfo(feature.Index);

                _lastTransactionIdLookup.Set(accountId, info.TransactionId);
                _lastTransactionCountLookup.Set(accountId, info.Count);
            }
        }
コード例 #8
0
        public override void UpdateMetaData(IFeatureChain featureChain, Transaction transaction, FeatureData featureData)
        {
            var request        = (transaction as IFeatureRequestTransaction).Request;
            var administration = featureData as GroupAdministration;

            if (request.RequestId == GroupRegistrationRequest.GroupRegistrationRequestId)
            {
                administration.NewGroupId = _nextGroupId;
                ++_nextGroupId;
            }
            else if (request.RequestId == GroupAdministrationRequest.GroupAdministrationRequestId)
            {
                var groupId = ((GroupAdministrationRequest)(request)).GroupId;
                administration.PreviousAdministrationTransactionId = _lastTransactionIdLookup.Update(groupId, transaction.TransactionId);
            }
        }
コード例 #9
0
        public override void Update(CommitItems commitItems, IFeatureChain chain, Transaction transaction, FeatureData featureData)
        {
            var receiverData = featureData as Receiver;

            for (var i = 0; i < receiverData.Receivers.Count; i++)
            {
                var receiverAccountId = receiverData.Receivers[i];

                var receiverAccount   = chain.GetFeatureAccount(receiverAccountId);
                var receiverContainer = receiverAccount.GetOrAddFeatureContainer <ReceiverContainer>(FeatureId);

                if (receiverContainer != null)
                {
                    if (receiverContainer.SetLastReceiverInfo(transaction, receiverData._receiverTransactionCount[i]))
                    {
                        commitItems.DirtyAccounts.Add(receiverAccountId);
                    }
                }
            }
        }