Add capability-first account and calendar setup flow
This commit is contained in:
@@ -299,6 +299,9 @@ public partial class CalendarAppShellViewModel : CalendarBaseViewModel,
|
||||
|
||||
foreach (var account in accounts)
|
||||
{
|
||||
if (!GroupedAccountCalendarViewModel.SupportsCalendar(account))
|
||||
continue;
|
||||
|
||||
var accountCalendars = await _calendarService.GetAccountCalendarsAsync(account.Id).ConfigureAwait(false);
|
||||
var calendarViewModels = accountCalendars.Select(calendar => new AccountCalendarViewModel(account, calendar)).ToList();
|
||||
var groupedAccountCalendarViewModel = new GroupedAccountCalendarViewModel(account, calendarViewModels);
|
||||
|
||||
@@ -408,6 +408,9 @@ public partial class CalendarEventComposePageViewModel : CalendarBaseViewModel
|
||||
|
||||
foreach (var account in accounts)
|
||||
{
|
||||
if (!GroupedAccountCalendarViewModel.SupportsCalendar(account))
|
||||
continue;
|
||||
|
||||
var calendars = await _calendarService.GetAccountCalendarsAsync(account.Id).ConfigureAwait(false);
|
||||
var viewModels = calendars
|
||||
.Select(calendar => new AccountCalendarViewModel(account, calendar))
|
||||
|
||||
@@ -17,6 +17,9 @@ public partial class GroupedAccountCalendarViewModel : ObservableObject
|
||||
public MailAccount Account { get; }
|
||||
public ObservableCollection<AccountCalendarViewModel> AccountCalendars { get; }
|
||||
|
||||
public static bool SupportsCalendar(MailAccount account)
|
||||
=> account?.IsCalendarAccessGranted == true;
|
||||
|
||||
public GroupedAccountCalendarViewModel(MailAccount account, IEnumerable<AccountCalendarViewModel> calendarViewModels)
|
||||
{
|
||||
Account = account;
|
||||
|
||||
Reference in New Issue
Block a user