コード例 #1
0
ファイル: Subscription.cs プロジェクト: vicnaum/nethermind
 public async Task PublishTransactionAsync(FullTransaction transaction)
 {
     foreach (var producer in _producers)
     {
         await producer.PublishAsync(transaction);
     }
 }
        public ActionResult Status()
        {
            var token = Request.Form["token_ws"];

            var result = FullTransaction.Status(token);

            var urlHelper = new UrlHelper(ControllerContext.RequestContext);
            var returnUrl = urlHelper.Action("Refund", "TransaccionCompleta", null, Request.Url.Scheme);

            ViewBag.Action = returnUrl;
            ViewBag.Token  = token;
            ViewBag.Result = result;

            return(View());
        }
コード例 #3
0
 private async Task PublishTransactionAsync(FullTransaction transaction)
 {
     foreach (var producer in _producers)
     {
         try
         {
             await producer.PublishAsync(transaction);
         }
         catch (Exception e)
         {
             Console.WriteLine(e);
             throw;
         }
     }
 }
        public ActionResult Commit()
        {
            var token = Request.Form["token_ws"];
            var idQueryInstallments  = int.Parse(Request.Form["id_query_installments"]);
            var deferredPeriodsIndex = 10;
            var gracePeriods         = false;

            var result = FullTransaction.Commit(token, idQueryInstallments, deferredPeriodsIndex, gracePeriods);

            UrlHelper urlHelper = new UrlHelper(ControllerContext.RequestContext);
            var       returnUrl = urlHelper.Action("Status", "TransaccionCompleta", null, Request.Url.Scheme);


            ViewBag.SaveIdQueryInstallments = idQueryInstallments;
            ViewBag.DeferredPeriodIndex     = deferredPeriodsIndex;
            ViewBag.GracePrediods           = gracePeriods;
            ViewBag.Action = returnUrl;
            ViewBag.Token  = token;
            ViewBag.Result = result;

            return(View());
        }
コード例 #5
0
        private void KeepProcessingJobs()
        {
            foreach (ReplayJob job in _jobs.GetConsumingEnumerable(_cancellationSource.Token))
            {
                if (_cancellationSource.IsCancellationRequested)
                {
                    break;
                }

                if (job.IsCancellationRequested)
                {
                    continue;
                }

                for (long i = job.StartBlock; i < job.EndBlock; i++)
                {
                    if (job.IsCancellationRequested || _cancellationSource.IsCancellationRequested)
                    {
                        break;
                    }

                    Block block = _blockTree.FindBlock(i);
                    _subscription.PublishBlockAsync(block);

                    for (int txIndex = 0; txIndex < block.Transactions.Length; txIndex++)
                    {
                        if (job.IsCancellationRequested)
                        {
                            break;
                        }

                        TxReceipt       receipt = _receiptStorage.Find(block.Transactions[txIndex].Hash);
                        FullTransaction fullTx  = new FullTransaction(txIndex, block.Transactions[txIndex], receipt);
                        _subscription.PublishTransactionAsync(fullTx);
                    }
                }
            }
        }
        public ActionResult Installments()
        {
            var token = Request.Form["token_ws"];
            var installments_number = 10;

            ViewBag.Token = token;
            UrlHelper urlHelper = new UrlHelper(ControllerContext.RequestContext);

            ViewBag.SaveToken = token;
            var returnUrl = urlHelper.Action("Commit", "TransaccionCompleta", null, Request.Url.Scheme);

            ViewBag.Action = returnUrl;
            var result = FullTransaction.Installments(
                token,
                installments_number);

            ViewBag.InstallmentsNumber      = installments_number;
            ViewBag.SaveIdQueryInstallments = result.IdQueryInstallments.ToString();
            ViewBag.Result    = result;
            ViewBag.ReturnUrl = returnUrl;

            return(View());
        }
        public ActionResult Create()
        {
            var random = new Random();

            var buy_order            = random.Next(999999999).ToString();
            var session_id           = random.Next(9999999).ToString();
            var amount               = 10000;
            var cvv                  = 123;
            var card_number          = "4051885600446623";
            var card_expiration_date = "22/10";

            UrlHelper urlHelper = new UrlHelper(ControllerContext.RequestContext);
            var       returnUrl = urlHelper.Action("Installments", "TransaccionCompleta", null, Request.Url.Scheme);

            var result = FullTransaction.Create(
                buyOrder: buy_order,
                sessionId: session_id,
                amount: amount,
                cvv: cvv,
                cardNumber: card_number,
                cardExpirationDate: card_expiration_date);

            ViewBag.Action    = returnUrl;
            ViewBag.ReturnUrl = returnUrl;
            ViewBag.Token     = result.Token;
            ViewBag.Result    = result;

            ViewBag.BuyOrder           = buy_order;
            ViewBag.SessionId          = session_id;
            ViewBag.Amount             = amount;
            ViewBag.Cvv                = cvv;
            ViewBag.CardNumber         = card_number;
            ViewBag.CardExpirationDate = card_expiration_date;

            return(View());
        }
コード例 #8
0
 public Task PublishTransactionAsync(FullTransaction transaction) => Task.CompletedTask;
コード例 #9
0
        private static void StartConsumingAvro <T>(string topic) where T : ISpecificRecord
        {
            bool consuming = true;
            ConsumerBuilder <Ignore, T> consumerBuilder = new ConsumerBuilder <Ignore, T>(Configuration.ConsumerConfig);

            consumerBuilder.SetErrorHandler((s, e) =>
            {
                consuming = !e.IsFatal;
                Log(e.ToString());
            });

            CachedSchemaRegistryClient schemaRegistry = new CachedSchemaRegistryClient(new[]
            {
                new KeyValuePair <string, string>(SchemaRegistryConfig.PropertyNames.SchemaRegistryUrl, Configuration.SchemaRegistryUrl)
            });

            var deserializer = new AvroDeserializer <T>(schemaRegistry).AsSyncOverAsync();

            consumerBuilder.SetValueDeserializer(deserializer);
            IConsumer <Ignore, T> consumer = consumerBuilder.Build();

            using (consumer)
            {
                ConsumerConfig consumerConfig = Configuration.ConsumerConfig;
                Log($"Consumer for group: '{consumerConfig.GroupId}' was created. Data type: '{Configuration.Type}'.");
                consumer.Subscribe(new[] { topic });
                Log($"Subscribed to topic: '{topic}'.");
                while (consuming)
                {
                    try
                    {
                        ConsumeResult <Ignore, T> consumeResult = consumer.Consume();
                        Type type = typeof(T);
                        if (type == typeof(Avro.Models.Block))
                        {
                            ConsumeResult <Ignore, Avro.Models.Block> result = consumeResult as ConsumeResult <Ignore, Avro.Models.Block>;
                            Avro.Models.Block block = result.Value;
                            Log($"Block: {block.blockNumber} {block.blockHash}");
                        }
                        else if (type == typeof(Avro.Models.FullTransaction))
                        {
                            ConsumeResult <Ignore, FullTransaction> result = consumeResult as ConsumeResult <Ignore, Avro.Models.FullTransaction>;
                            FullTransaction transaction = result.Value;
                            Log($"Transaction for block: {transaction.blockNumber} {transaction.receipt.blockHash}");
                        }
                        else
                        {
                            Log($"Unknown data type: {type.Name}");

                            continue;
                        }

                        Log($"Consumed value at '{consumeResult.TopicPartitionOffset}'.");
                    }
                    catch (ConsumeException exception)
                    {
                        Log($"Consumer error occured: {exception.Error.Reason}");
                    }
                    catch (Exception exception)
                    {
                        Log(exception.Message);
                    }
                }

                consumer.Close();
            }
        }