private async void btnValidate_Click(object sender, RoutedEventArgs e) { if (ValidateInput() == false) { return; } browserPlaceHolder.Children.Clear(); using (browser = new Awesomium.Windows.Controls.WebControl()) { browser.Height = browserPlaceHolder.Height; browser.Width = browserPlaceHolder.Width; var overlay = new System.Windows.Controls.Canvas() { Height = browserPlaceHolder.Height, Width = browserPlaceHolder.Width }; overlay.Opacity = .5; overlay.Background = System.Windows.Media.Brushes.Gray; browserPlaceHolder.Children.Add(browser); browserPlaceHolder.Children.Add(overlay); if (cbUseSSHProxy.IsChecked == true) { browser.WebSession = WebCore.CreateWebSession(new WebPreferences() { Plugins = false, ProxyConfig = string.Format("socks4://{0}:{1}", txtLocalHost.Text, txtLocalPort.Text) }); await browser.WaitPageLoadComplete(() => { browser.Source = "api.ipify.org".ToUri(); }); string ip = Regex.Match(browser.HTML, ValidIpAddressRegex).Value; MessageBox.Show(string.Format("Proxy IP: {0}", ip)); } btnValidate.IsEnabled = false; btnRedeem.IsEnabled = false; btnParseAmazonCode.IsEnabled = false; CTSRedeemAmazon = new CancellationTokenSource(); decimal currentBalance = await browser.AuthenticateToAmazonAsync(txtAmazonUsername.Text, txtPassword.Password, CTSRedeemAmazon.Token); if (currentBalance > -1) { lblBalance.Content = string.Format("Balance: {0}", currentBalance.ToString("C")); int gcCount = 0; decimal validationBalance = 0; int validationSuccessCount = 0; int validationFailureCount = 0; int delayMS = string.IsNullOrWhiteSpace(txtDelayMS.Text) ? 0 : int.Parse(txtDelayMS.Text); foreach (AmazonGiftCode gc in colParsedAmazonGiftCodes) { gcCount++; try { decimal currentGCValidationValue = await browser.ValidateAmazonAsync(txtAmazonUsername.Text, txtPassword.Password, gc.Code, CTSRedeemAmazon.Token, delayMS); if (currentGCValidationValue > 0) { if (gc.Value == null) { gc.Value = currentGCValidationValue; gc.Validated = true; validationSuccessCount++; validationBalance += currentGCValidationValue; } else { if (gc.Value == currentGCValidationValue) { gc.Validated = true; validationSuccessCount++; validationBalance += currentGCValidationValue; } else { gc.Validated = false; validationFailureCount++; } } } else { gc.Validated = false; validationFailureCount++; } datagridParsedAmazonCodes.ScrollIntoView(gc); } catch (OperationCanceledException ex) { } } StringBuilder sb = new StringBuilder(); sb.AppendLine(string.Format("Successful Validations: {0}/{1}", validationSuccessCount, colParsedAmazonGiftCodes.Count())); sb.AppendLine(string.Format("Failed Validations: {0}/{1}", validationFailureCount, colParsedAmazonGiftCodes.Count())); sb.AppendLine(string.Format("Validated Balance: ${0}", validationBalance)); txtResults.Text = sb.ToString(); } else { MessageBox.Show("Authentication failure."); } btnRedeem.IsEnabled = true; btnValidate.IsEnabled = true; btnParseAmazonCode.IsEnabled = true; } browserPlaceHolder.Children.Clear(); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null) { return(null); } if (!targetType.Equals(typeof(string))) { throw new ArgumentOutOfRangeException("targetType", "The convert method can only convert to string, to convert from string to the parameter type use ConverBack"); } if (parameter != null) { switch ((string)parameter) { case "color": { if (value is System.String) { return(value.ToString()); } else { StyleHelper.FormattedStringFromColor((System.Windows.Media.Color)value); } } break; case "regex": { Regex regex = value as Regex; return(regex.ToString()); } case "Collection": { TrulyObservableCollection <UIControlInstanceModel> collection = value as TrulyObservableCollection <UIControlInstanceModel>; return(collection.Count().ToString(culture)); } case "rect": { Rect rectvalue = (Rect)value; StringBuilder stringValue = new StringBuilder(); stringValue.Append("{"); stringValue.Append("{"); stringValue.AppendFormat("{0},{1}", rectvalue.Left, rectvalue.Top); stringValue.Append("}"); stringValue.Append(","); stringValue.Append("{"); stringValue.AppendFormat("{0},{1}", rectvalue.Width, rectvalue.Height); stringValue.Append("}"); stringValue.Append("}"); return(stringValue.ToString()); } case "inset": { Rect rectValue = (Rect)value; StringBuilder stringValue = new StringBuilder(); stringValue.Append("{"); stringValue.AppendFormat("{0},{1},{2},{3}", rectValue.Top, rectValue.Left, rectValue.Height, rectValue.Width); stringValue.Append("}"); return(stringValue.ToString()); } } } if (value != null) { return(value.ToString()); } else { return(null); } }