2024-12-29 19:37:36 +01:00
|
|
|
|
using System;
|
2024-12-30 23:10:51 +01:00
|
|
|
|
using System.Collections.Generic;
|
2024-12-29 19:37:36 +01:00
|
|
|
|
using System.Collections.ObjectModel;
|
2025-01-02 00:18:34 +01:00
|
|
|
|
using System.ComponentModel;
|
2024-12-31 22:22:19 +01:00
|
|
|
|
using System.Linq;
|
2024-12-29 17:41:54 +01:00
|
|
|
|
using Wino.Calendar.ViewModels.Data;
|
2024-12-31 22:22:19 +01:00
|
|
|
|
using Wino.Core.Domain.Entities.Shared;
|
2024-12-29 17:41:54 +01:00
|
|
|
|
|
2025-05-18 14:06:25 +02:00
|
|
|
|
namespace Wino.Calendar.ViewModels.Interfaces;
|
|
|
|
|
|
|
|
|
|
|
|
public interface IAccountCalendarStateService : INotifyPropertyChanged
|
2024-12-29 17:41:54 +01:00
|
|
|
|
{
|
2025-05-18 14:06:25 +02:00
|
|
|
|
ReadOnlyObservableCollection<GroupedAccountCalendarViewModel> GroupedAccountCalendars { get; }
|
2024-12-29 19:37:36 +01:00
|
|
|
|
|
2025-05-18 14:06:25 +02:00
|
|
|
|
event EventHandler<GroupedAccountCalendarViewModel> CollectiveAccountGroupSelectionStateChanged;
|
|
|
|
|
|
event EventHandler<AccountCalendarViewModel> AccountCalendarSelectionStateChanged;
|
2024-12-29 19:37:36 +01:00
|
|
|
|
|
2025-05-18 14:06:25 +02:00
|
|
|
|
public void AddGroupedAccountCalendar(GroupedAccountCalendarViewModel groupedAccountCalendar);
|
|
|
|
|
|
public void RemoveGroupedAccountCalendar(GroupedAccountCalendarViewModel groupedAccountCalendar);
|
|
|
|
|
|
public void ClearGroupedAccountCalendar();
|
2024-12-29 19:37:36 +01:00
|
|
|
|
|
2025-05-18 14:06:25 +02:00
|
|
|
|
public void AddAccountCalendar(AccountCalendarViewModel accountCalendar);
|
|
|
|
|
|
public void RemoveAccountCalendar(AccountCalendarViewModel accountCalendar);
|
2024-12-30 23:10:51 +01:00
|
|
|
|
|
2025-05-18 14:06:25 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Enumeration of currently selected calendars.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
IEnumerable<AccountCalendarViewModel> ActiveCalendars { get; }
|
|
|
|
|
|
IEnumerable<IGrouping<MailAccount, AccountCalendarViewModel>> GroupedAccountCalendarsEnumerable { get; }
|
2024-12-29 17:41:54 +01:00
|
|
|
|
}
|