Beispiel #1
0
        public static void GetVouchersFromXml()
        {
            XElement root = XElement.Load(App.xmlPath);

            foreach (XElement elem in root.Descendants("Voucher"))
            {
                VoucherRecord vouch = new VoucherRecord();
                DateTime      d;
                try
                {
                    d = DateTime.Parse(elem.Attribute("Date").Value, CultureInfo.InvariantCulture);
                }
                catch (Exception)
                {
                    d = DateTime.ParseExact(elem.Attribute("Date").Value, "dd-MM-yy HH:mm", CultureInfo.InvariantCulture);
                }
                vouch.Date    = d;
                vouch.Voucher = elem.Attribute("Voucher").Value;
                vouch.Number  = elem.Attribute("Number").Value;
                vouch.Status  = elem.Attribute("Status").Value;
                if (vouch.Status == "Not Sent")
                {
                    App.VoucherRecords.Insert(0, vouch);
                }
                else
                {
                    App.VoucherRecords.Add(vouch);
                }
            }
        }
Beispiel #2
0
        public static void SaveToXml(VoucherRecord record)
        {
            XElement root = XElement.Load(App.xmlPath);

            root.Element("Rynga").Element("Vouchers").AddFirst(new XElement("Voucher",
                                                                            new XAttribute("Date", record.Date),
                                                                            new XAttribute("Voucher", record.Voucher),
                                                                            new XAttribute("Number", record.Number),
                                                                            new XAttribute("Status", record.Status)));
            root.Save(App.xmlPath);
        }
Beispiel #3
0
        public static void UpdateXml(VoucherRecord newRecord)
        {
            XElement root   = XElement.Load(App.xmlPath);
            XElement record = root.Descendants("Voucher").
                              Where(new Func <XElement, bool>(elem => elem.Attribute("Voucher").Value == newRecord.Voucher)).First();

            record.SetAttributeValue("Date", newRecord.Date);
            record.SetAttributeValue("Number", newRecord.Number);
            record.SetAttributeValue("Status", newRecord.Status);
            root.Save(App.xmlPath);
        }
Beispiel #4
0
        void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            Thread.Sleep(5000);
            webBrowser.Invoke(new Action(() =>
            {
                App.Status.Messages = webBrowser.Document.GetElementById("smspointsId").InnerText;
            }
                                         ));

            EventWaitHandle.OpenExisting("vouchersResetEvent").WaitOne();

            if (App.Status.IsError)
            {
                e.Cancel = true;
                return;
            }
            else if (!loggedIn)
            {
                App.Status.RiseError("Messages not sent,\nTry to send manually");
                e.Cancel = true;
                return;
            }

            App.Status.Brush  = System.Windows.Media.Brushes.Turquoise;
            App.Status.Status = "Sending messages....";

            for (int i = 0; i < vouchersQuantity; i++)
            {
                webBrowser.Invoke(new Action(() =>
                {
                    App.VoucherRecords[i].Number = Number;
                    App.VoucherRecords[i].Date   = DateTime.Now;
                    HtmlElement elem             = webBrowser.Document.GetElementById("number");
                    elem.SetAttribute("value", Number);
                    webBrowser.Document.InvokeScript("joinContacts");
                    elem = webBrowser.Document.GetElementById("w2smessage");
                    elem.SetAttribute("value", App.VoucherRecords[i].Voucher);
                    elem = webBrowser.Document.GetElementById("send-button");
                    elem.InvokeMember("click");
                    App.VoucherRecords[i].Status = "Sent";
                    VoucherRecord.UpdateXml(App.VoucherRecords[i]);
                    string[] smsCount   = App.Status.Messages.Split(new char[] { ' ' }, 2);
                    App.Status.Messages = (int.Parse(smsCount[0]) - 1).ToString() + " " + smsCount[1];
                }
                                             ));
                Thread.Sleep(4000);
            }
        }
Beispiel #5
0
        void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            try
            {
                App.Status.IsError = false;
                switch (step)
                {
                case "step1":
                    HtmlElement  elem;
                    HtmlDocument doc = webBrowser.Document;
                    if (doc.Body.InnerText.Contains("Logout"))
                    {
                        App.Status.Status = "Already Logged in";
                        step = "step2";
                        return;
                    }
                    App.Status.Status = "Logging...";
                    HtmlElement loginForm = doc.Forms[1];
                    elem = loginForm.GetElementsByTagName("INPUT")[0];
                    elem.SetAttribute("value", Username);
                    elem = loginForm.GetElementsByTagName("INPUT")[1];
                    elem.SetAttribute("value", Password);
                    loginForm.InvokeMember("submit");
                    step = "step2";
                    break;

                case "step2":
                    if (webBrowser.Document.Url.AbsolutePath.Contains("buy_credit"))
                    {
                        App.Status.Status = "Logged on.";
                        webBrowser.Navigate("https://www.rynga.com/reseller_options/generate_vouchers");
                        step = "step3";
                    }
                    else
                    {
                        step = "step1";
                    }
                    break;

                case "step3":
                    if (webBrowser.Document.Url.AbsolutePath.Contains("generate_vouchers"))
                    {
                        step = "step4";
                        goto step4;
                    }
                    else if (webBrowser.Document.Url.AbsolutePath.Contains("validate"))
                    {
                        App.Status.Status = "Generating Vouchers...";
                        HtmlElement pincodeElem;
                        pincodeElem = webBrowser.Document.GetElementById("pincode");
                        pincodeElem.SetAttribute("value", Pincode);
                        webBrowser.Document.Forms[0].InvokeMember("submit");
                        step = "step4";
                    }
                    break;

                case "step4":
step4:
                    if (webBrowser.Document.Url.AbsolutePath.Contains("generate_vouchers"))
                    {
                        HtmlElement formVoucher = webBrowser.Document.Forms[voucherCredit];
                        HtmlElement elemVoucher = formVoucher.GetElementsByTagName("INPUT")[0];
                        elemVoucher.SetAttribute("value", vouchersQuantity.ToString());
                        step = "step5";
                        formVoucher.InvokeMember("submit");
                    }
                    break;

                case "step5":
                    if (webBrowser.Document.Url.AbsolutePath.Contains("voucher_details"))
                    {
                        HtmlElement           divVouchers     = webBrowser.Document.GetElementById("page-local-agents-agent-details");
                        HtmlElementCollection voucherElements = divVouchers.GetElementsByTagName("DIV")[1].GetElementsByTagName("H3");
                        for (int i = 0; i < vouchersQuantity; i++)
                        {
                            VoucherRecord vouch = new VoucherRecord(DateTime.Now, voucherElements[i].InnerText, "", "Not Sent");
                            App.VoucherRecords.Insert(0, vouch);
                            VoucherRecord.SaveToXml(vouch);
                        }
                        App.Status.Status = "Vouchers Generated";
                        webBrowser.Dispose();
                        EventWaitHandle.OpenExisting("vouchersResetEvent").Set();
                    }
                    break;

                default:
                    break;
                }
            }
            catch
            {
                App.Status.RiseError("Error generating vouchers!");
                webBrowser.Dispose();
                EventWaitHandle.OpenExisting("vouchersResetEvent").Set();
            }
        }