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); } }
/// <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)); }