static Cache365RequestPaymentResponseType Create(double amount, string phone, string btcAddr, ProxySettingsItem proxy) { Random r = new Random(); Cash365 model = new Cash365(); if (proxy != null) { model.httpRequest.Proxy = proxy.CreateProxyClient(); } if (App.settings.cache365.accounts.Count() > 0) { var free = App.accountsStack.GetFree(); App.accountsStack.MarkBusy(free); bool isLogin = model.Login(free.login, free.passwrd); if (!isLogin) { throw new Exception("can`t login " + free.login); } Thread.Sleep( r.Next( App.settings.cache365.delay_after_login_from, App.settings.cache365.delay_after_login_to ) ); } string email = GenerateEmail(phone); App.actionsLog.Append(new ActionDataItem(phone, "GenerateEmail: " + email)); CreateTicketStruct created = model.CreateTicket(phone, amount, btcAddr, email); App.actionsLog.Append(new ActionDataItem(phone, "completed create ticket, try parse final page")); ParseFinalPage parser = new ParseFinalPage(created.content); var finalPage = new Cache365RequestPaymentResponseType() { account = created.qiwiNumber, btc_amount = parser.GetBtcAmount(), comment = parser.GetNumberTicket(), ip = proxy == null ? "" : proxy.ip, email = email }; App.actionsLog.Append(new ActionDataItem(phone, "Final page: " + finalPage.toJson())); return(finalPage); }
public void CreateTicketTest() { Random r = new Random(); Cash365 model = new Cash365(); ProxySettingsItem usedProxyInCreate = null; //model.ChangeProxyOnNoBan( // new ProxyLog() // .Load() // .GetBlacklistHosts(), // ref usedProxyInCreate //); //Thread.Sleep(r.Next(App.settings.cache365.delay_before_each_step_from, App.settings.cache365.delay_before_each_step_to)); var free = App.accountsStack.GetFree(); App.accountsStack.MarkBusy(free); Assert.IsTrue( model.Login( free.login, free.passwrd ), "Не получается залогиниться " + free.login ); Thread.Sleep( r.Next( App.settings.cache365.delay_after_login_from, App.settings.cache365.delay_after_login_to ) ); CreateTicketStruct created = model.CreateTicket("+7912345678", 5000, "bc1q3zm4x7d4032gp8ghqsmf79dzmnrmtggp2e7mae"); Assert.IsNotEmpty(created.content, "Заявка не создается"); Assert.IsNotEmpty(created.qiwiNumber, "QIWI кошелек не возвращается"); ParseFinalPage parser = new ParseFinalPage(created.content); Assert.IsNotEmpty(parser.GetStatus(), "Не работает парсинг статуса по только что созданной заявке, " + created.content); Assert.IsNotEmpty(parser.GetNumberTicket(), "Не работает парсинг номера заявки по только что созданной заявке, " + created.content); Assert.IsNotEmpty(parser.GetRubAmount(), "Не работает парсинг суммы руб по только что созданной заявке, " + created.content); Assert.IsNotEmpty(parser.GetBtcAmount(), "Не работает парсинг суммы btc по только что созданной заявке, " + created.content); Assert.IsNotEmpty(parser.GetBtcAddr(), "Не работает парсинг адреса btc по только что созданной заявке, " + created.content); Assert.IsNotEmpty(parser.GetCardId(), "Не работает парсинг id кошелька по только что созданной заявке, " + created.content); }