コード例 #1
0
        private async Task InputDescriptionForProject(Message message)
        {
            _sessionRepo.Update(message.From.Id, session =>
            {
                var project     = session.Data.CastObject <Project>();
                project.Purpose = message.Text;
                session.Data    = project;

                session.State = SessionState.WaitInputDescriptionForNewProject;
            });

            await _telegramBotClient.SendTextMessageAsync(message.Chat.Id, "Input description for new project:", replyMarkup : Keyboards.GetProjectsMenuKeyboard());
        }
コード例 #2
0
        private async Task GetProjects(Message message)
        {
            await _telegramBotClient.SendTextMessageAsync(message.Chat.Id, "\U0001F4C0 Loading your projects...", replyMarkup : Keyboards.GetProjectsMenuKeyboard());

            var digitalOceanApi = _digitalOceanClientFactory.GetInstance(message.From.Id);
            var projects        = await digitalOceanApi.Projects.GetAll();

            if (projects.Count > 0)
            {
                _sessionRepo.Update(message.From.Id, session =>
                {
                    session.Data  = projects;
                    session.State = SessionState.ProjectsMenu;
                });

                var page      = _pageFactory.GetInstance <ProjectPage>();
                var pageModel = page.GetPage(message.From.Id, 0);

                var sendMessage = await _telegramBotClient.SendTextMessageAsync(message.Chat.Id, pageModel.Message, ParseMode.Markdown, replyMarkup : pageModel.Keyboard);

                _handlerCallbackRepo.Update(message.From.Id, callback =>
                {
                    callback.MessageId   = sendMessage.MessageId;
                    callback.UserId      = message.From.Id;
                    callback.HandlerType = GetType().FullName;
                });
            }
            else
            {
                await _telegramBotClient.SendTextMessageAsync(message.Chat.Id, "You don't have a projects \U0001F914");
            }
        }