public async Task HandleCallbackQBlacklistLabelAction(CallbackQuery query, SettingsCallbackData callbackData, Service service) { var userSettings = await _dbWorker.FindUserSettingsAsync(query.From); if (userSettings == null) { return; } var label = await Methods.GetLabelAsync(callbackData.LabelId, service); var labelModel = userSettings.Blacklist.SingleOrDefault(b => b.LabelId == label.Id); if (labelModel == null) { userSettings.Blacklist.Add(new BlacklistModel { Name = label.Name, LabelId = label.Id }); } else { userSettings.Blacklist.Remove(labelModel); } await _dbWorker.UpdateUserSettingsRecordAsync(userSettings); await HandleCallbackQBlacklistMenu(query, service); }
public async Task HandleCallbackQLabelActionsMenu(CallbackQuery query, SettingsCallbackData callbackData) { var userSettings = await _dbWorker.FindUserSettingsAsync(query.From); if (userSettings == null) { return; } var tempData = await _dbWorker.FindTempDataAsync(userSettings.UserId); if (tempData == null) { await _dbWorker.AddNewTempDataAsync(new TempDataModel { UserId = userSettings.UserId, LabelId = callbackData.LabelId, }); } else { tempData.LabelId = callbackData.LabelId; await _dbWorker.UpdateTempDataRecordAsync(tempData); } await _botActions.UpdateSettingsMenu(query.From, query.Message.MessageId, SettingsKeyboardState.LabelActionsMenu, SelectedOption.None, userSettings, tempData, null); }
public async Task HandleCallbackQRemoveLabel(CallbackQuery query, SettingsCallbackData callbackData, Service service) { var tempData = await _dbWorker.FindTempDataAsync(query.From); await Methods.DeleteLabelAsync(tempData.LabelId, service); await HandleCallbackQBackToEditLabelsListMenu(query, service); }
public override void CreateInlineKeyboard() { GeneralCallbackData = new SettingsCallbackData { MessageKeyboardState = State }; ButtonsInitializer(); base.InlineKeyboard = DefineInlineKeyboard(); }
public async Task HandleCallbackQAbout(CallbackQuery query, SettingsCallbackData callbackData) { var userSettings = await UserSettings(query.From); if (userSettings == null) { return; } await _botActions.UpdateSettingsMenu(query.From, query.Message.MessageId, SettingsKeyboardState.MainMenu, callbackData.Option, userSettings); }
public async Task HandleCallbackQDisplayIgnoredEmails(CallbackQuery query, SettingsCallbackData callbackData) { var userSettings = await _dbWorker.FindUserSettingsAsync(query.From); if (userSettings == null) { return; } await _botActions.UpdateSettingsMenu(query.From, query.Message.MessageId, SettingsKeyboardState.IgnoreMenu, callbackData.Option, userSettings); }
public async Task HandleCallbackQReadAfterReceiving(CallbackQuery query, SettingsCallbackData callbackData) { var userSettings = await _dbWorker.FindUserSettingsAsync(query.From); if (userSettings == null) { return; } userSettings.ReadAfterReceiving = !userSettings.ReadAfterReceiving; await _dbWorker.UpdateUserSettingsRecordAsync(userSettings); await _botActions.UpdateSettingsMenu(query.From, query.Message.MessageId, SettingsKeyboardState.AdditionalMenu, callbackData.Option, userSettings); }
protected virtual InlineKeyboardButton InitButton(InlineKeyboardType type, string text, string command, SelectedOption option = default(SelectedOption), string labelId = "", bool forceCallbackData = true) { if (!forceCallbackData) { return(base.InitButton(type, text, command)); } var callbackData = new SettingsCallbackData(GeneralCallbackData) { Command = command, Option = option, LabelId = labelId }; return(base.InitButton(type, text, callbackData)); }