public async Task <IActionResult> Post([FromBody] Update update) { if (Regex.IsMatch(update.Message.Text, "[A-z0-9]{64} [A-z0-9]{64}")) { MatchCollection matchList = Regex.Matches(update.Message.Text, "[A-z0-9]{64}"); List <string> list = matchList.Cast <Match>().Select(match => match.Value).ToList(); BinanceClient binanceClient = binanceService.GetClient(list[0], list[1]); if (binanceClient == null) { return(new OkObjectResult(await mainService.telegramClient.SendTextMessageAsync(update.Message.From.Id, "Аккаунт Binance с указанной парой ключ/секрет не найден"))); } //Если аккаунт найден InlineKeyboardMarkup keyboard = new InlineKeyboardMarkup(new[] { new[] { new InlineKeyboardButton() { Text = "Оплатить через QIWI", Url = mainService.CreatePaymentURL(update.Message.From.Id, update.Message.From.Username).AbsoluteUri } } }); await mainService.telegramClient.SendTextMessageAsync(update.Message.From.Id, "Стоймость услуги 35 руб.", replyMarkup : keyboard); //Если фаил для этого пользователя еще не существует if (mainService.casesPendingPayment.FirstOrDefault(x => x.chatId != update.Message.From.Id) == null) { try { Thread sendCaseThread = new Thread(new ParameterizedThreadStart(binanceService.CreateCase)); sendCaseThread.Start(new CreateCaseParameters() { Client = binanceClient, ChatId = update.Message.From.Id, Username = update.Message.From.Username }); } catch { await mainService.telegramClient.SendTextMessageAsync(update.Message.From.Id, "Не удалось создать поток!"); } } } else if (update.Message.Text.ToLower() == "/пример" || update.Message.Text.ToLower() == "/example") { await mainService.SendExample(update.Message.From.Id); } else { await mainService.telegramClient.SendTextMessageAsync(update.Message.From.Id, "Неверный формат. Правильный вариант:\n<key> <secret>"); } return(Ok()); }