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