protected void ShowOptions(Message message) { //get selected option var options = RefusalTypeRepository.List(); var keyboard = new ReplyKeyboardMarkup(GetKeyboard(options), false, true); Api.SendTextMessageAsync(message.Chat.Id, TelegramBotMessages.AskRefusalText, false, false, 0, keyboard, ParseMode.Default, CancellationToken.None); UpdateCurrentState(message.Chat.Id, RefusalWorkflowStatusType.ShowedOptions); }
public TelegramChatBot() { Api = new TelegramBotClient(Settings.Default.TELEGRAM_API_KEY); UserRepository = new UserRepository(); UserProcessStatusRepository = new RefusalWorkflowStatusRepository(); ProductRepository = new ProductRepository(); RefusalRepository = new RefusalRepository(); RefusalTypeRepository = new RefusalTypeRepository(); ErrorRepository = new ErrorRepository(); BarCodeReader = new BarCodeRecognition(); }
protected bool SaveOption(Message message) { bool result = false; var currentState = new RefusalWorkflowStatus(); try { currentState = GetCurrentState(message.Chat.Id); //get selected option var refusalTypes = RefusalTypeRepository.List(); var type = refusalTypes.Find(itm => itm.Name.ToLower().Contains(message.Text.ToLower())); //save feedback RefusalRepository.AddEdit(new Refusal() { UserId = currentState.UserId, ProductId = currentState.ProductId, RefusalTypeId = type?.Id ?? 0 }); Api.SendTextMessageAsync(message.Chat.Id, TelegramBotMessages.AskRefusalSuccess); //update current state UpdateCurrentState(message.Chat.Id, RefusalWorkflowStatusType.SavedOptions); result = true; } catch (Exception ex) { ErrorRepository.AddEdit(new Error() { ChatId = message.Chat.Id, ErrorCode = ex.HResult, ErrorMessage = ex.Message, StackTrace = ex.StackTrace, RefusalWorkflowStatusId = currentState.ProcessStage }); } return(result); }
protected bool SaveOther(Message message) { var currentState = new RefusalWorkflowStatus(); try { currentState = GetCurrentState(message.Chat.Id); //get selected option var refusalTypes = RefusalTypeRepository.List(); var type = refusalTypes.Find(itm => itm.HasComment); //save feedback RefusalRepository.AddEdit(new Refusal() { UserId = currentState.UserId, ProductId = currentState.ProductId, RefusalTypeId = type?.Id ?? 0, RefusalComment = message.Text }); Api.SendTextMessageAsync(message.Chat.Id, TelegramBotMessages.AskRefusalSuccess); UpdateCurrentState(message.Chat.Id, RefusalWorkflowStatusType.SavedOther); } catch (Exception ex) { ErrorRepository.AddEdit(new Error() { ChatId = message.Chat.Id, ErrorCode = ex.HResult, ErrorMessage = ex.Message, StackTrace = ex.StackTrace, RefusalWorkflowStatusId = currentState.ProcessStage }); } return(true); }