using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using Wino.Calendar.ViewModels.Data; using Wino.Core.Domain.Entities.Shared; namespace Wino.Calendar.ViewModels.Interfaces; public interface IAccountCalendarStateService : INotifyPropertyChanged { ReadOnlyObservableCollection GroupedAccountCalendars { get; } event EventHandler CollectiveAccountGroupSelectionStateChanged; event EventHandler AccountCalendarSelectionStateChanged; public void AddGroupedAccountCalendar(GroupedAccountCalendarViewModel groupedAccountCalendar); public void RemoveGroupedAccountCalendar(GroupedAccountCalendarViewModel groupedAccountCalendar); public void ClearGroupedAccountCalendar(); public void AddAccountCalendar(AccountCalendarViewModel accountCalendar); public void RemoveAccountCalendar(AccountCalendarViewModel accountCalendar); /// /// Enumeration of currently selected calendars. /// IEnumerable ActiveCalendars { get; } IEnumerable> GroupedAccountCalendarsEnumerable { get; } }