//парсим email, ищем заявку там string _getResultByEmail(long requestId, long startTime, string btcAddr, double rubAmount, string phoneFrom, string forwardtobtc, int dempingpercent, int forwardint, string forwardfraction) { //в течении следующих time_check_email_sec проверяем email long maxTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds() + App.settings.data.time_check_email_sec; while (DateTimeOffset.UtcNow.ToUnixTimeSeconds() < maxTime) { var emails = App.emailParser.GetLastByClient(App.LAST_PARSED_RATE.client); TicketClientCreateResponse ticketByEmail = null; CreateResponse createResponseByEmail = EmailParser.Find(emails, btcAddr, phoneFrom, out ticketByEmail); if (createResponseByEmail == null) //еще не пришло, ждем { Thread.Sleep(500); continue; } try { if (forwardtobtc != null) { (new BtcAddressForwardModel(App.db)) .Create(btcAddr, forwardtobtc, dempingpercent, forwardint, forwardfraction); } } catch (Exception e) { } try { (new BtcAddressModel(App.db)).Create(startTime, btcAddr, ticketByEmail.account, //phone to ticketByEmail.comment, ticketByEmail.btc_amount, App.LAST_PARSED_RATE.GetClientNameOnPath(), phoneFrom, ticketByEmail.ip, ticketByEmail.email); } catch (Exception e) { } createResponseByEmail.other = new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("type_get", "complicated") }.ToArray(); try { (new LogRequestModel(App.db)).SetResponse(requestId, createResponseByEmail.toJson()); } catch (Exception e) { } return(createResponseByEmail.toJson()); } return(null); //после парсинга не даем переключаться на следующий клиент, всегда выходим }