示例#1
0
        //парсим 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); //после парсинга не даем переключаться на следующий клиент, всегда выходим
        }