コード例 #1
0
        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();
        }
コード例 #2
0
        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);
            }
        }