using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using CommunityToolkit.Mvvm.Collections; using Wino.Calendar.ViewModels.Data; using Wino.Core.Domain.Entities.Shared; using Wino.Core.Domain.Interfaces; namespace Wino.Calendar.ViewModels.Interfaces; public interface IAccountCalendarStateService : INotifyPropertyChanged { IDispatcher Dispatcher { get; set; } ReadOnlyObservableCollection GroupedAccountCalendars { get; } event EventHandler CollectiveAccountGroupSelectionStateChanged; event EventHandler AccountCalendarSelectionStateChanged; public void AddGroupedAccountCalendar(GroupedAccountCalendarViewModel groupedAccountCalendar); public void RemoveGroupedAccountCalendar(GroupedAccountCalendarViewModel groupedAccountCalendar); public void ClearGroupedAccountCalendars(); public void AddAccountCalendar(AccountCalendarViewModel accountCalendar); public void RemoveAccountCalendar(AccountCalendarViewModel accountCalendar); /// /// Enumeration of currently selected calendars. /// IEnumerable ActiveCalendars { get; } IEnumerable AllCalendars { get; } ReadOnlyObservableGroupedCollection GroupedCalendars { get; set; } }