public string RegisterTransaction(Product product) { var transactionId = Guid.NewGuid().ToString(); TransactionStorage.Add(new TransactionData { ProductToBuy = product, TransactionChangeTime = DateTime.Now, TransactionGuid = transactionId, TransactionStatus = TransactionStatusEnum.AuthWaiting, AuthCode = "1234", }); return(transactionId); }
public void ConsumeBlockData(BlockData <MaintainBlock> blockData) { if (!Active) { return; } var block = blockData.Block; if (block.BlockId <= LastProcessedBlockId) { return; } var dirtyData = new DirtyData(); var commitItems = NewCommitItems(); foreach (var item in block.Items) { ConsumeTransaction(dirtyData, commitItems, item); TransactionStorage.Add(block.BlockId, item); } CommmitDirtyData(dirtyData, commitItems); commitItems.Commit(); var lastTransactionid = LastProcessedTransactionId; var count = block.Transactions.Count; if (count > 0) { lastTransactionid = block.Transactions[count - 1].TransactionId; } foreach (var metaStorage in _metaDiscStorage) { metaStorage.LastBlockId = block.BlockId; metaStorage.LastTransactionId = lastTransactionid; metaStorage.Commit(); } TransactionStorage.Save(); }
public void ConsumeCoreBlockData(BlockData <CoreBlock> blockData) { var block = blockData.Block; if (block.BlockId < LastProcessedBlockId) { return; } var dirtyData = new DirtyData(); var i = 0; foreach (var item in block.Items) { var operation = item.Transaction; if (ConsumeTransaction(dirtyData, item)) { TransactionStorage.Add(block.BlockId, item); i++; } } ProcessDirtyData(dirtyData); var lastTransactionid = LastProcessedTransactionId; var count = block.Items.Count; if (count > 0) { lastTransactionid = block.Items[count - 1].Transaction.OperationId; } foreach (var metaStorage in _metaDiscStorage) { metaStorage.LastBlockId = block.BlockId; metaStorage.LastTransactionId = lastTransactionid; metaStorage.Commit(); } TransactionStorage.Save(); }