Ejemplo n.º 1
0
        private async Task ProvideHelpAsync(Update update)
        {
            try
            {
                string spreadSheetId = await _spreadsheetIdStore.GetSpreadSheetIdAsync(update.Message.Chat.Id.ToString());

                string response = $@"Current spreadsheet url: `{_spreadsheetIdStore.ConvertSpreadSheetIdToUrl(spreadSheetId)}`

To change it, use `/spreadsheet <spreadsheet url>`

To create a new spreadsheet, use `/spreadsheet new`";
                await _telegramBotClient.SendTextMessageAsync(update.Message.Chat.Id,
                                                              response, ParseMode.Markdown);
            }
            catch (SpreadSheetNotSetException)
            {
                var response = @"There is no spreadsheet set yet.

To set it, use `/spreadsheet <spreadsheet url>`

To create a new spreadsheet, use `/spreadsheet new`";
                await _telegramBotClient.SendTextMessageAsync(update.Message.Chat.Id,
                                                              response, ParseMode.Markdown);
            }
        }
Ejemplo n.º 2
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));
        }