private async Task <bool> SelectCalendar()
        {
            _logger.Trace("Choosing calendar.");

            CalendarList calendarList;

            using (var service = _calendarServiceProvider.GetCalendarService())
                calendarList = await service.CalendarList.List().ExecuteAsync();

            while (true)
            {
                for (var i = 0; i < calendarList.Items.Count; i++)
                {
                    var calendar = calendarList.Items[i];
                    Console.WriteLine($"[{i}] {calendar.Summary}");
                }

                Console.Write("Calendar nr.: ");

                if (!int.TryParse(Console.ReadLine(), out var chosenCalendarIndex) || chosenCalendarIndex < 0 || chosenCalendarIndex >= calendarList.Items.Count)
                {
                    Console.WriteLine("Invalid number.");
                    continue;
                }

                var chosenCalendar = calendarList.Items[chosenCalendarIndex];
                SettingsService.Settings.TargetCalendarId = chosenCalendar.Id;
                SettingsService.Save();

                _logger.Info($"Chosen calendar: [{chosenCalendar.Id}] {chosenCalendar.Summary}");

                return(true);
            }
        }
Example #2
0
 private async Task <bool> CanGetPrimaryCalendar()
 {
     try
     {
         using (var service = _calendarServiceProvider.GetCalendarService())
             return((await service.Calendars.Get("primary").ExecuteAsync())?.Id != null);
     }
     catch (Exception ex)
     {
         _logger.Error(ex, "Could not get default calendar ID.");
         return(false);
     }
 }