コード例 #1
0
ファイル: TransactionEvent.cs プロジェクト: 2garryn/wpay
        public Transaction To()
        {
            var descr = new TransactionDescription();

            foreach (var kv in Description)
            {
                descr.Add(kv.Key, kv.Value);
            }

            var metadata = new TransactionMetadata();

            foreach (var kv in Metadata)
            {
                metadata.Add(kv.Key, kv.Value);
            }

            var am = AmountFactory.New(AmountValue, AmountCurrency);
            ITransactionAmount amount = AmountType switch
            {
                _completedIncome => new AmountIncomeCompleted(am),
                _cancelledOutcome => new AmountOutcomeCancelled(am),
                _processingOutcome => new AmountOutcomeProcessing(am),
                _completedOutcome => new AmountOutcomeCompleted(am),
                _ => throw new InvalidOperationException("Invalid transaction status")
            };

            return(new Transaction(
                       new AccountId(new UniqId(AccountId)),
                       new TransactionId(new UniqId(Id)),
                       new TransactionLabel(Label),
                       amount,
                       metadata,
                       descr,
                       CreatedOn,
                       UpdateOn
                       ));
        }
コード例 #2
0
        public CreateTransaction To()
        {
            Console.WriteLine("My Value {0} {1} {2}", CreateAmountValue, CreateAmountCurrency, CreateAmountType);
            var          am           = AmountFactory.New(CreateAmountValue, CreateAmountCurrency);
            CreateAmount createAmount = CreateAmountType switch
            {
                _processingOutcome => new CreateAmountProcessingOutcome(am),
                _completedIncome => new CreateAmountCompletedIncome(am),
                _ => throw new InvalidOperationException("Invalid create transaction status")
            };

            var descr = new TransactionDescription();

            foreach (var kv in Description)
            {
                descr.Add(kv.Key, kv.Value);
            }

            var metadata = new TransactionMetadata();

            foreach (var kv in Metadata)
            {
                metadata.Add(kv.Key, kv.Value);
            }

            return(new CreateTransaction(
                       new AccountId(new UniqId(AccountId)),
                       new TransactionId(new UniqId(Id)),
                       new TransactionLabel(Label),
                       createAmount,
                       Signature,
                       descr,
                       metadata
                       ));
        }
    }
コード例 #3
0
        public UpdateTransaction To()
        {
            var descr = new TransactionDescription();

            foreach (var kv in Description)
            {
                descr.Add(kv.Key, kv.Value);
            }

            var metadata = new TransactionMetadata();

            foreach (var kv in Metadata)
            {
                metadata.Add(kv.Key, kv.Value);
            }

            return(new UpdateTransaction(
                       new TransactionId(new UniqId(Id)),
                       Status == StatusCompleted ? UpdateStatus.Complete : UpdateStatus.Cancel,
                       Signature,
                       descr,
                       metadata
                       ));
        }