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);
        }
Пример #4
0
 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);
        }
Пример #8
0
        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));
        }