示例#1
0
        private void btnValidar_Click(object sender, EventArgs e)
        {
            try
            {
                var proxy    = new AquiPagaProxy();
                var products = proxy.GetAvailableProducts("Voucher");
                var dt       = new DataTable();
                dt.Columns.Add("Nome");
                dt.Columns.Add("Descricao");
                dt.Columns.Add("PrecoDisplay");
                dt.Columns.Add("Preco");
                dt.Columns.Add("ProductTypeCode");
                dt.Columns.Add("ProviderCode");
                dt.Columns.Add("ProductCode");
                dt.Columns.Add("ProductOptionCode");
                dt.Columns.Add("Description");

                DataRow dr;
                foreach (var p in products)
                {
                    foreach (var o in p.ProductOptionsList)
                    {
                        dr    = dt.NewRow();
                        dr[0] = p.Name;
                        dr[1] = o.Name;
                        dr[2] = o.Value?.ToString("C");
                        dr[3] = o.Value;
                        dr[4] = "Voucher";
                        dr[5] = p.ProviderCode;
                        dr[6] = p.ProductCode;
                        dr[7] = o.ProductOptionCode;
                        dr[8] = o.Description;
                        dt.Rows.Add(dr);
                    }
                }
                dgProdutos.DataSource = dt;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro");
            }
        }
示例#2
0
        private void btnCompar_Click(object sender, EventArgs e)
        {
            var qtd = string.IsNullOrEmpty(txtQtd.Text) ? 0 : Convert.ToInt32(txtQtd.Text);

            if (qtd == 0)
            {
                MessageBox.Show("A quantidade deve ser maior que ZERO", "Atenção");
                return;
            }
            var resultList = new List <PurchaseDetails>();

            var proxy        = new AquiPagaProxy();
            var totalSucesso = 0;

            Parallel.For(0, qtd, (x) =>
            {
                PurchaseDetails data;
                try
                {
                    double preco = 0;
                    if (productDetails.Preco.HasValue)
                    {
                        preco = productDetails.Preco.Value;
                    }
                    else if (double.TryParse(txtPreco.Text, out preco))
                    {
                        preco = Convert.ToDouble(txtPreco.Text, new CultureInfo("pt-BR"));
                    }
                    else
                    {
                        MessageBox.Show("Informe o preço do produto", "Atenção");
                        return;
                    }
                    var result = proxy.DoTransaction(productDetails.ProductTypeCode, productDetails.ProviderCode,
                                                     productDetails.ProductCode, productDetails.ProductOptionCode, preco);
                    data = new PurchaseDetails
                    {
                        Date = result.Date.ToString("dd/MM/yyyy hh:mm:ss"),
                        ProviderTransactionId = result.ProviderTransactionId.ToString(),
                        Amount       = result.Amount.ToString("C"),
                        Reference    = result.Reference.ToString(),
                        SerialNumber = result.SerialNumber.ToString(),
                        Message      = string.Join(Environment.NewLine, result.Receipt)
                    };
                    Interlocked.Increment(ref totalSucesso);
                    repository.Add(new Purchase
                    {
                        PaidPrice      = result.Amount.ToString(CultureInfo.InvariantCulture),
                        PartnerId      = 2,
                        SuggestedPrice = result.Amount.ToString(CultureInfo.InvariantCulture),
                        Token          = result.Reference,
                        Serial         = result.SerialNumber,
                        PurchaseDate   = DateTime.Now,
                        Sku            = productDetails.Descricao,
                        TransactionId  = result.ProviderTransactionId.ToString(),
                        Receipt        = string.Join(Environment.NewLine, result.Receipt),
                        Cancelled      = false
                    });
                }
                catch (Exception ex)
                {
                    data = new PurchaseDetails
                    {
                        Message = "Error - " + ex.Message
                    };
                }
                lock (objLock)
                    resultList.Add(data);
            });
            dgResult.DataSource = resultList;
            lblSucesso.Text     = $"{totalSucesso}/{qtd}";
            lblValor.Text       = $"{totalSucesso * (productDetails.Preco ?? 0):C}";
        }