Пример #1
0
        /// <summary>
        /// Creates a new google spreadsheet
        /// </summary>
        /// <param name="chatId"></param>
        /// <returns>Url of newly created spreadsheet</returns>
        public async Task <string> CreateNewSpreadsheet(ChatId chatId)
        {
            _logger.Debug("creating new google spreadsheet for chat {chatId}", chatId);

            SheetsService sheetsService = await _sheetsServiceFactory.GetSheetsServiceAsync(chatId);

            DateTime now = DateTime.Now;

            string sheetName = $"bot-spreadsheet-{now.Day}-{CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(now.Month)}-{now.Year}";

            Spreadsheet newSheet = new Spreadsheet {
                Properties = new SpreadsheetProperties {
                    Title = sheetName
                }
            };

            Spreadsheet newSheetResponse = await sheetsService.Spreadsheets.Create(newSheet).ExecuteAsync();

            _logger.Information("new spreadsheet {spreadsheet id} created for chat {chatId}",
                                newSheetResponse.SpreadsheetId, chatId);

            await _spreadsheetIdStore.SetSpreadSheetIdAsync(chatId, newSheetResponse.SpreadsheetId);

            await AppendMessageAsync(sheetsService, newSheetResponse.SpreadsheetId, new Message("Note", "Added on", "Added by"));

            return(_spreadsheetIdStore.ConvertSpreadSheetIdToUrl(newSheetResponse.SpreadsheetId));
        }
Пример #2
0
        public async Task ProcessMessageAsync(Update update)
        {
            try
            {
                string args = _textParser.ParseArgs(update);
                if (string.IsNullOrWhiteSpace(args))
                {
                    await ProvideHelpAsync(update);
                }
                else if (args.ToLower() == "new")
                {
                    string url = await _spreadsheetDriver.CreateNewSpreadsheet(update.Message.Chat.Id);

                    await _telegramBotClient.SendTextMessageAsync(update.Message.Chat.Id,
                                                                  $@"New spreadsheet has been created here - 
{url}");
                }
                else
                {
                    string spreadsheetId = ExtractSpreadSheetId(args);
                    string chatId        = update.Message.Chat.Id.ToString();
                    await _spreadsheetIdStore.SetSpreadSheetIdAsync(chatId, spreadsheetId);

                    await _telegramBotClient.SendTextMessageAsync(chatId, $@"Done

Google spreadsheet is now set to {args}");
                }
            }
            catch (UnauthorizedChatException)
            {
                await _telegramBotClient.SendTextMessageAsync(update.Message.Chat.Id, "First, you need to /authorize me");
            }
            catch (Exception e)
            {
                _logger.Error(e, "Error");
                await _telegramBotClient.SendTextMessageAsync(update.Message.Chat.Id, "Something went wrong");
            }
        }