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); }
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); }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } } } }