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