public Responce Greetings(long chatId) { try { var newTable = _service.CreateTable(chatId); var restaurants = _service.GetAllActiveRestaurants(); if (restaurants.Count > 1) { return(new Responce { ChatId = chatId, ResponceText = "В каком вы заведении?" }); } else { var rest = restaurants.FirstOrDefault(); _service.AssignRestaurant(chatId, rest.Name); _service.UpdateTableState(chatId, SessionState.InQueue); return(new Responce { ChatId = chatId, ResponceText = "Введите номер стола за которым вы сидите:" }); } } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public Responce RemoveFromOrder(long chatId) { try { var table = _service.GetActiveTable(chatId); if (table.Orders.Any()) { if (table.Cheque != null && table.Cheque.PaymentRecieved) { return new Responce { ResponceText = "Извините, но заказ уже оплачен!" } } ; var resp = ShowCart(chatId); resp.ResponceText += Environment.NewLine + "Отправьте сообщением номер блюда, которое вы хотите убрать из заказа"; return(resp); } else { return(new Responce { ResponceText = "Вы пока еще ничего не заказали :(" }); } } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public Responce LeaveFeedback(long chatId, string username, string text) { try { _service.CreateFeedback(new Feedback { ChatId = chatId, Date = DateTime.Now, Id = Guid.NewGuid(), Text = text, UserName = username }); var table = _service.GetActiveTable(chatId); if (table != null) { if (table.TableNumber == null) { _service.DeleteTable(table.Id); } else { _service.UpdateTableState(table.Id, SessionState.Sitted); } } return(new Responce { ChatId = chatId, ResponceText = "Спасибо за ваш отзыв!" }); } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public Responce CloseTimeArriving(long chatId) { try { var table = _service.GetActiveTable(chatId); if (table != null) { _service.UpdateTableState(chatId, SessionState.Sitted); return(new Responce { ChatId = chatId, ResponceText = "Напишите \"Меню\" в чат и я принесу его вам.", }); } else { return(Responce.UnknownResponce(chatId)); } } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public Responce CancelTable(long chatId) { try { var table = _service.GetActiveTable(chatId); if (table != null) { if (table.TableNumber == null) { _service.DeleteTable(table.Id); } else { _service.UpdateTableState(table.Id, SessionState.Sitted); } } return(new Responce { ChatId = chatId, ResponceText = "Вы в главном меню." }); } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public Responce CloseMenu(long chatId) { try { var table = _service.GetActiveTable(chatId); if (table != null) { if (table.State != SessionState.OrderPosted) { _service.UpdateTableState(chatId, SessionState.Sitted); } return(new Responce { ChatId = chatId, ResponceText = "Нажмите \"Меню\" и я принесу его вам.", }); } else { return(new Responce { ChatId = chatId, ResponceText = "Нажмите \"Заказ за столиком\", чтобы сделать заказ!", }); } } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public Responce LeaveBooking(long chatId, string text) { try { _service.CreateBooking(new Booking { ChatId = chatId, Date = DateTime.Now, Id = Guid.NewGuid(), Text = text }); var table = _service.GetActiveTable(chatId); if (table != null) { if (table.TableNumber == null) { _service.DeleteTable(table.Id); } else { _service.UpdateTableState(table.Id, SessionState.Sitted); } } return(new Responce { ChatId = chatId, ResponceText = "Скоро с вами свяжутся!" }); } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public Responce AddRemark(long chatId, string message) { try { var table = _service.GetActiveTable(chatId); if (table != null) { _service.UpdateDishRemark(table.Id, message); _service.UpdateTableState(chatId, SessionState.Sitted); return(new Responce { ChatId = chatId, ResponceText = "Хорошо, чтобы оформить заказ перейдите в корзину." }); } else { return(new Responce { ChatId = chatId, ResponceText = "Нажмите \"Заказ за столиком\" в главном меню, чтобы сделать заказ!" }); } } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public Responce CallWaiter(long chatId) { try { _service.SetHelpNeeded(chatId); return(new Responce { ChatId = chatId, ResponceText = "Официант уже идет" }); } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public Responce RemoveFromOrderByNum(long chatId, string message) { try { var dishNum = int.Parse(message); _service.RemoveDishFromOrder(chatId, dishNum); return(new Responce { ResponceText = "Блюдо успешно удалено из вашего заказа!" }); } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public Responce Restrunt(long chatId, string restruntName) { try { _service.AssignRestaurant(chatId, restruntName); _service.UpdateTableState(chatId, SessionState.InQueue); return(new Responce { ChatId = chatId, ResponceText = "Номер стола:" }); } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public Responce PayCash(long chatId) { try { _service.SetCashPayment(chatId); _service.SendOrderToDesk(chatId); return(new Responce { ChatId = chatId, ResponceText = "Вы выбрали оплату наличными в заведении. Заказ отправлен в заведение!" }); } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public Responce FeedbackRequest(long chatId) { try { var table = _service.GetActiveTable(chatId); var tableId = (table == null) ? _service.CreateTable(chatId) : table.Id; _service.UpdateTableState(tableId, SessionState.Feedback); return(new Responce { ChatId = chatId, ResponceText = "Тут можно оставить отзыв. Уместите его в одно сообщение, пожалуйства! Мы обязательно учтем все ваши пожелания!" }); } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public Responce BookingRequest(long chatId) { try { var table = _service.GetActiveTable(chatId); var tableId = (table == null) ? _service.CreateTable(chatId) : table.Id; _service.UpdateTableState(chatId, SessionState.Booking); return(new Responce { ChatId = chatId, ResponceText = "Пожалуйста, введите информацию о бронировании в одно сообщение (Имя, дата и время, количество человек и телефон для связи). Мы вам перезвоним!" }); } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public Responce PaymentRequest(long chatId) { try { var table = _service.GetActiveTable(chatId); var tableId = (table == null) ? _service.CreateTable(chatId) : table.Id; _service.UpdateTableState(tableId, SessionState.Cheque); return(new Responce { ChatId = chatId, ResponceText = "Введите сумму для оплаты" }); } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public Responce ShowMenuCategories(long chatId) { try { var table = _service.GetActiveTable(chatId); if (table != null && table.State != SessionState.OrderPosted) { _service.UpdateTableState(chatId, SessionState.MenuCategory); } return(new Responce { ChatId = chatId, ResponceText = "Выберите раздел меню!" }); } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public Responce QRCode(long chatId, string code) { try { string restruntCode = code.Substring(1, 3); int tableNumber = int.Parse(code.Substring(5)); _service.AssignRestaurantByCode(chatId, restruntCode); _service.AssignNextQueueNumber(chatId); _service.UpdateTableState(chatId, SessionState.Sitted); return(new Responce { ChatId = chatId, ResponceText = "Отлично! Напишите \"меню\" в чат и я принесу его вам." }); } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public Responce AssignTableNumber(long chatId, string message) { try { var table = _service.GetActiveTable(chatId); if (table != null) { var isNumber = Int32.TryParse(message, out int tableNumber); if (isNumber) { _service.AssignQueueNumber(chatId, message); _service.UpdateTableState(chatId, SessionState.Sitted); return(new Responce { ChatId = chatId, ResponceText = "Отлично! Теперь вы можете сделать заказ" }); } else { return(new Responce { ChatId = chatId, ResponceText = "Нужно ввести номер стола." }); } } else { return new Responce { ChatId = chatId, ResponceText = "Стол не найден!" } }; } catch (Exception) { return(Responce.UnknownResponce(chatId)); } }
public async Task <IHttpActionResult> WebHook(Update update) { long chatId = 0; try { var bot = new BotBrains(Request.Headers.Host); Telegram = new TelegramBotClient(bot.BotToken); if (update.Type == UpdateType.MessageUpdate) { var message = update.Message; chatId = message.Chat.Id; var parser = ParserChoser.GetParser(chatId, bot); if (message.Type == MessageType.TextMessage || message.Type == MessageType.PhotoMessage || message.Type == MessageType.SuccessfulPayment) { var cmd = parser.ParseForCommand(update); switch (cmd) { case CmdTypes.Start: { var greetings = "Здравствуйте, меня зовут ДайнерБот! Я помогу вам сделать заказ. " + "Для того, чтобы ознакомиться с меню нажмите \"Меню\", чтобы " + "сделать заказ нажмите \"Заказать\"."; await Telegram.SendTextMessageAsync( chatId, bot.GreetingsText ?? greetings, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.Greetings: { var responce = bot.Greetings(chatId); await Telegram.SendTextMessageAsync( chatId, responce.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.Restrunt: { var responce = bot.Restrunt(chatId, message.Text); await Telegram.SendTextMessageAsync( chatId, responce.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.TableNumber: { var responce = bot.AssignTableNumber(chatId, message.Text); await Telegram.SendTextMessageAsync( chatId, responce.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.RequestPayment: { var responce = bot.PaymentRequest(chatId); await Telegram.SendTextMessageAsync(chatId, responce.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.InputSumm: { var response = bot.InputSumm(chatId, message.Text, message.Chat.Username); if (response.InvoiceReady) { var prices = new LabeledPrice[1]; prices[0] = new LabeledPrice { Amount = response.Invoice.SummInCents, Label = "Итого" }; await Telegram.SendInvoiceAsync( chatId, response.Invoice.Title, response.Invoice.Description, response.Invoice.Id.ToString(), bot.PaymentToken, "startP", response.Invoice.Currency, prices); } else { await Telegram.SendTextMessageAsync(chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); } break; } case CmdTypes.Menu: { var responce = bot.ShowMenuCategories(chatId); await Telegram.SendTextMessageAsync( chatId, responce.ResponceText, parseMode : ParseMode.Html, replyMarkup : new MenuCategorySessionParser(bot.GetMenuCategoriesByChatId(chatId)).Keyboard); break; } case CmdTypes.RequestFeedback: { var responce = bot.FeedbackRequest(chatId); await Telegram.SendTextMessageAsync( chatId, responce.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.LeaveFeedback: { var responce = bot.LeaveFeedback(chatId, message.Chat.Username, message.Text); await Telegram.SendTextMessageAsync( chatId, responce.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.RequestBooking: { var responce = bot.BookingRequest(chatId); await Telegram.SendTextMessageAsync(chatId, responce.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.LeaveBooking: { var responce = bot.LeaveBooking(chatId, message.Text); await Telegram.SendTextMessageAsync(chatId, responce.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.CancelTable: { var responce = bot.CancelTable(chatId); await Telegram.SendTextMessageAsync(chatId, responce.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.Category: { var response = bot.SnowMenuByCategory(chatId, message.Text); if (response.Dishes != null) { await Telegram.SendTextMessageAsync( chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : InlineKeyBoardManager.MenuKeyBoard(response.Dishes)); } else { await Telegram.SendTextMessageAsync( chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); } break; } case CmdTypes.CloseMenu: { var response = bot.CloseMenu(chatId); await Telegram.SendTextMessageAsync( chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.SuccessfulPayment: { var payment = message.SuccessfulPayment; var responce = bot.SuccessPayment(chatId, payment.InvoicePayload, payment.TotalAmount, payment.TelegramPaymentChargeId, payment.Currency); await Telegram.SendTextMessageAsync( chatId, responce.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.Cart: { var responce = bot.ShowCart(chatId); if (responce.NeedInlineKeeyboard) { var keyboard = InlineKeyBoardManager.GetByCmnd(CmdTypes.Cart); await Telegram.SendTextMessageAsync(chatId, responce.ResponceText, parseMode : ParseMode.Html, replyMarkup : keyboard); } else { await Telegram.SendTextMessageAsync(chatId, responce.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); } break; } case CmdTypes.MyOrders: { var responce = bot.ShowAllOrders(chatId); await Telegram.SendTextMessageAsync(chatId, responce.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.Remark: { var response = bot.AddRemark(chatId, message.Text); await Telegram.SendTextMessageAsync( chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.CloseTimeArriving: { var response = bot.CloseTimeArriving(chatId); await Telegram.SendTextMessageAsync( chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.Waiter: { var response = bot.CallWaiter(chatId); await Telegram.SendTextMessageAsync( chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.Remove: { var response = bot.RemoveFromOrder(chatId); await Telegram.SendTextMessageAsync( chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.RemoveByNum: { var response = bot.RemoveFromOrderByNum(chatId, message.Text); await Telegram.SendTextMessageAsync( chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.Unknown: { await Telegram.SendTextMessageAsync( chatId, "Извините, не понял вашей просьбы.", parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.QRCode: { var code = ""; var file = await Telegram.GetFileAsync(message.Photo.LastOrDefault()?.FileId); var filename = bot.PicturePath + chatId + "." + file.FilePath.Split('.').Last(); using (var saveImageStream = System.IO.File.Open(filename, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite)) { await file.FileStream.CopyToAsync(saveImageStream); saveImageStream.Position = 0; saveImageStream.Close(); } file.FileStream.Position = 0; file.FileStream.Close(); code = CodeController.ReadCode(filename); if (System.IO.File.Exists(filename)) { System.IO.File.Delete(filename); } if (code != null) { var response = bot.QRCode(chatId, code); await Telegram.SendTextMessageAsync( chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); } else { await Telegram.SendTextMessageAsync( chatId, "Не удалось распознать код! Попробуйте еще раз или выберите ресторан и номер стола через меню!", parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); } break; } case CmdTypes.Actions: { await Telegram.SendTextMessageAsync( chatId, bot.Actions, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.Description: { await Telegram.SendTextMessageAsync( chatId, bot.Description, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.Location: { var responce = bot.GetAllRestaurants(chatId); if (responce.IsOk) { foreach (var restaurant in responce.RestaurantsInfo) { await Telegram.SendTextMessageAsync(chatId, restaurant.Info, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); await Telegram.SendLocationAsync(chatId, restaurant.Latitude, restaurant.Longitude, replyMarkup : InlineKeyBoardManager.TaxiKeyboard()); } } else { await Telegram.SendTextMessageAsync(chatId, responce.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); } break; } } } } else if (update.Type == UpdateType.CallbackQueryUpdate) { chatId = update.CallbackQuery.Message.Chat.Id; var parser = ParserChoser.GetParser(chatId, bot); var cmd = parser.ParseForCommand(update); switch (cmd) { case CmdTypes.AddToOrder: { var response = bot.OrderMeal(chatId, update.CallbackQuery.Data); if (response.IsOk) { var keyboard = InlineKeyBoardManager.RemarkKeyBoard(response.Modificators); await Telegram.SendTextMessageAsync(chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : keyboard); } else { await Telegram.SendTextMessageAsync(chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); } break; } case CmdTypes.AddMod: { var response = bot.AddModificator(chatId, update.CallbackQuery.Data); if (response.IsOk) { if (response.Modificators.Any()) { var keyboard = InlineKeyBoardManager.RemarkKeyBoard(response.Modificators); await Telegram.EditMessageTextAsync(chatId, update.CallbackQuery.Message.MessageId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : keyboard); } else { await Telegram.EditMessageTextAsync(chatId, update.CallbackQuery.Message.MessageId, response.ResponceText, parseMode : ParseMode.Html); } } else { await Telegram.SendTextMessageAsync(chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); } break; } case CmdTypes.BackToMenu: { var response = bot.ShowMenuCategories(chatId); await Telegram.SendTextMessageAsync(chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : new MenuCategorySessionParser(bot.GetMenuCategoriesByChatId(chatId)).Keyboard); break; } case CmdTypes.DishDetails: { var response = bot.GetMenuItem(chatId, update.CallbackQuery.Data); if (response.NeedInlineKeyboard) { var keyboard = InlineKeyBoardManager.DescriptionKeyBoard(response.DishId); await Telegram.SendTextMessageAsync(chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : keyboard); } else { await Telegram.SendTextMessageAsync(chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); } break; } case CmdTypes.ArrivingTime: { var response = bot.ArrivingTime(chatId); if (response.OkToChangeTime) { await Telegram.EditMessageTextAsync(chatId, update.CallbackQuery.Message.MessageId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : InlineKeyBoardManager.GetByCmnd(CmdTypes.ArrivingTime)); } else { await Telegram.SendTextMessageAsync(chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); } break; } case CmdTypes.TimeInput: { var timeResp = bot.ChangeArrivingTime(chatId, update.CallbackQuery.Data); if (!timeResp.OkToChangeTime) { await Telegram.SendTextMessageAsync(chatId, timeResp.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); } else { var orderResp = bot.ShowCart(chatId); if (orderResp.NeedInlineKeeyboard) { var keyboard = InlineKeyBoardManager.GetByCmnd(CmdTypes.Cart); await Telegram.EditMessageTextAsync(chatId, update.CallbackQuery.Message.MessageId, orderResp.ResponceText, parseMode : ParseMode.Html, replyMarkup : keyboard); } else { await Telegram.SendTextMessageAsync(chatId, orderResp.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); } } break; } case CmdTypes.CreateInvoice: { var response = bot.CreateInvoice(chatId); if (response.InvoiceReady) { var prices = new LabeledPrice[1]; prices[0] = new LabeledPrice { Amount = response.Invoice.SummInCents, Label = "Итого" }; await Telegram.SendInvoiceAsync( chatId, response.Invoice.Title, response.Invoice.Description, response.Invoice.Id.ToString(), bot.PaymentToken, "startP", response.Invoice.Currency, prices); } else { await Telegram.SendTextMessageAsync(chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); } break; } case CmdTypes.PayCash: { var response = bot.PayCash(chatId); await Telegram.SendTextMessageAsync(chatId, response.ResponceText, parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } case CmdTypes.Unknown: { await Telegram.SendTextMessageAsync( chatId, "Извините, не понял вашей просьбы.", parseMode : ParseMode.Html, replyMarkup : ParserChoser.GetParser(chatId, bot).Keyboard); break; } } } else if (update.Type == UpdateType.PreCheckoutQueryUpdate) { chatId = update.PreCheckoutQuery.From.Id; var preCheck = update.PreCheckoutQuery; var response = bot.PreCheckout(chatId, preCheck.TotalAmount, preCheck.Currency, preCheck.InvoicePayload); if (!response.IsError) { await Telegram.AnswerPreCheckoutQueryAsync(preCheck.Id, true); } else { await Telegram.AnswerPreCheckoutQueryAsync(preCheck.Id, false, errorMessage : response.ResponceText); } } } catch (Exception ex) { new LogWriter().WriteException(ex.Message); if (chatId != 0 && Telegram != null) { if (ex.Message.Contains("429")) { var excResponce = Responce.UnknownResponce(chatId); await Telegram.SendTextMessageAsync( chatId, "К сожалению Телеграм не позволяет нам так часто вам отвечать 😔, подождите пару минут пожалуйста.", parseMode : ParseMode.Html); } else { var excResponce = Responce.UnknownResponce(chatId); await Telegram.SendTextMessageAsync( chatId, excResponce.ResponceText, parseMode : ParseMode.Html); } } } return(Ok()); }