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)); } }
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(); }
public TelegramRozkladUser GetCurrentTelegramRozkladUser() => _currentScopeServiceProvider .GetService <ICurrentTelegramUserContext>()?.TelegramRozkladUser;
private void StoreMessageId(CallbackQuery callbackQuery) { var scopeMessageIdProvider = _currentScopeServiceProvider.GetService <ICurrentScopeMessageIdProvider>(); scopeMessageIdProvider.MessageId = callbackQuery.Message?.MessageId; }
public Task ShowTimetableSelectingFacultyGroupToAddMenu( ShowTimetableSelectingFacultyGroupToAddMenuOptions options) { return(_currentScopeServiceProvider.GetService <ShowTimetableSelectingFacultyGroupToAddMenuAction>() .Execute(options)); }