Beispiel #1
0
        public ILongLastingUserActionHandler GetHandler(LongLastingUserActionArguments actionArguments)
        {
            switch (actionArguments.UserActionType)
            {
            case LongLastingUserActionType.TimetableSelectingFaculty:
                return(_serviceProvider.GetService <TimetableSelectingFacultyActionHandler>());

            case LongLastingUserActionType.TimetableSelectingFacultyGroupToAdd:
                return(_serviceProvider.GetService <TimetableSelectingFacultyGroupToAddActionHandler>());

            default:
                throw new NotImplementedException();
            }
        }
        public CurrentUserLocalizationService(ILocalizationService localizationService,
                                              ICurrentScopeServiceProvider currentScopeServiceProvider)
        {
            _localizationService         = localizationService;
            _currentScopeServiceProvider = currentScopeServiceProvider;

            _getUserLang = () => _currentScopeServiceProvider.GetService <ICurrentTelegramUserContext>().Language;
        }
        public async Task <Message> SendOrEditMessageAsync(string text, ParseMode parseMode = ParseMode.Default,
                                                           bool disableWebPagePreview       = false, bool disableNotification           = false, int replyToMessageId   = 0,
                                                           IReplyMarkup replyMarkup         = null, CancellationToken cancellationToken = default, bool forceNewMessage = false)
        {
            var chatId = CurrentUserChatId;

            if (forceNewMessage)
            {
                return(await SendMessage());
            }

            var currentScopeMessageIdProvider = _currentScopeServiceProvider.GetService <ICurrentScopeMessageIdProvider>();
            var currentMessageId = currentScopeMessageIdProvider.MessageId;

            if (currentMessageId == null)
            {
                return(await SendMessage());
            }

            if (replyMarkup is InlineKeyboardMarkup keyboardMarkup)
            {
                try
                {
                    return(await Client.EditMessageTextAsync(
                               chatId, (int)currentMessageId, text, parseMode, disableWebPagePreview, keyboardMarkup,
                               cancellationToken));
                }
                catch (MessageIsNotModifiedException)
                {
                    // dos
                    return(null);
                }
            }

            await Client.DeleteMessageAsync(chatId, (int)currentMessageId, cancellationToken);

            return(await SendMessage());

            Task <Message> SendMessage()
            {
                return(Client.SendTextMessageAsync(chatId, text, parseMode, disableWebPagePreview, disableNotification,
                                                   replyToMessageId, replyMarkup, cancellationToken));
            }
        }
Beispiel #4
0
        internal ISpecificCallbackQueryHandler GetHandler(CallbackQueryActionType actionType)
        {
            switch (actionType)
            {
            case CallbackQueryActionType.AddGroup:
                return(_serviceProvider.GetService <AddGroupCallbackHandler>());

            case CallbackQueryActionType.ShowTimetableFacultyGroupViewMenu:
                return(_serviceProvider.GetService <ShowTimetableFacultyGroupViewMenuCallbackHandler>());

            case CallbackQueryActionType.ShowTimetableFacultyGroupsMenu:
                return(_serviceProvider.GetService <ShowTimetableFacultyGroupsMenuCallbackHandler>());

            case CallbackQueryActionType.TimetableFacultyGroupsMenuGroupSelected:
                return(_serviceProvider.GetService <TimetableFacultyGroupsMenuGroupSelectedHandler>());

            case CallbackQueryActionType.OpenRemoveGroupsMenu:
                return(_serviceProvider.GetService <OpenRemoveGroupsMenuCallbackHandler>());

            case CallbackQueryActionType.RemoveGroup:
                return(_serviceProvider.GetService <RemoveGroupCallbackHandler>());

            case CallbackQueryActionType.ShowScheduleMenu:
                break;

            case CallbackQueryActionType.ShowNotificationMenuForGroup:
                break;

            case CallbackQueryActionType.SubscribeToScheduleNotification:
                break;

            case CallbackQueryActionType.UnsubscribeFromScheduleNotification:
                break;

            case CallbackQueryActionType.ShowNotificationsMenu:
                break;
            }

            throw new NotImplementedException();
        }
Beispiel #5
0
 public TelegramRozkladUser GetCurrentTelegramRozkladUser() => _currentScopeServiceProvider
 .GetService <ICurrentTelegramUserContext>()?.TelegramRozkladUser;
        private void StoreMessageId(CallbackQuery callbackQuery)
        {
            var scopeMessageIdProvider = _currentScopeServiceProvider.GetService <ICurrentScopeMessageIdProvider>();

            scopeMessageIdProvider.MessageId = callbackQuery.Message?.MessageId;
        }
Beispiel #7
0
 public Task ShowTimetableSelectingFacultyGroupToAddMenu(
     ShowTimetableSelectingFacultyGroupToAddMenuOptions options)
 {
     return(_currentScopeServiceProvider.GetService <ShowTimetableSelectingFacultyGroupToAddMenuAction>()
            .Execute(options));
 }