2026-02-12 18:04:29 +01:00
|
|
|
using System;
|
|
|
|
|
using CommunityToolkit.Mvvm.Messaging;
|
2024-12-30 23:10:51 +01:00
|
|
|
using Wino.Core.Domain.Entities.Calendar;
|
2026-02-12 18:04:29 +01:00
|
|
|
using Wino.Core.Domain.Enums;
|
2024-11-10 23:28:25 +01:00
|
|
|
using Wino.Messaging.Client.Calendar;
|
|
|
|
|
|
2025-02-16 11:54:23 +01:00
|
|
|
namespace Wino.Core.ViewModels;
|
|
|
|
|
|
2025-12-29 23:13:32 +01:00
|
|
|
public class CalendarBaseViewModel : CoreBaseViewModel,
|
|
|
|
|
IRecipient<CalendarItemAdded>,
|
|
|
|
|
IRecipient<CalendarItemUpdated>,
|
|
|
|
|
IRecipient<CalendarItemDeleted>
|
2024-11-10 23:28:25 +01:00
|
|
|
{
|
2026-04-07 16:48:46 +02:00
|
|
|
public void Receive(CalendarItemAdded message) => DispatchToUIThread(() => OnCalendarItemAdded(message.CalendarItem, message.Source));
|
2026-02-12 18:04:29 +01:00
|
|
|
public void Receive(CalendarItemUpdated message) => DispatchToUIThread(() => OnCalendarItemUpdated(message.CalendarItem, message.Source));
|
2026-04-07 16:48:46 +02:00
|
|
|
public void Receive(CalendarItemDeleted message) => DispatchToUIThread(() => OnCalendarItemDeleted(message.CalendarItem, message.Source));
|
2024-11-10 23:28:25 +01:00
|
|
|
|
2026-04-07 16:48:46 +02:00
|
|
|
protected virtual void OnCalendarItemAdded(CalendarItem calendarItem, EntityUpdateSource source) { }
|
|
|
|
|
protected virtual void OnCalendarItemUpdated(CalendarItem calendarItem, EntityUpdateSource source) { }
|
|
|
|
|
protected virtual void OnCalendarItemDeleted(CalendarItem calendarItem, EntityUpdateSource source) { }
|
2025-10-21 01:27:29 +02:00
|
|
|
|
2026-02-12 18:04:29 +01:00
|
|
|
private void DispatchToUIThread(Action action)
|
|
|
|
|
{
|
|
|
|
|
_ = ExecuteUIThread(action);
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-21 01:27:29 +02:00
|
|
|
protected override void RegisterRecipients()
|
|
|
|
|
{
|
|
|
|
|
base.RegisterRecipients();
|
2025-12-29 23:13:32 +01:00
|
|
|
|
2025-10-21 01:27:29 +02:00
|
|
|
Messenger.Register<CalendarItemAdded>(this);
|
2025-12-29 23:13:32 +01:00
|
|
|
Messenger.Register<CalendarItemUpdated>(this);
|
|
|
|
|
Messenger.Register<CalendarItemDeleted>(this);
|
2025-10-21 01:27:29 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void UnregisterRecipients()
|
|
|
|
|
{
|
|
|
|
|
base.UnregisterRecipients();
|
2025-12-29 23:13:32 +01:00
|
|
|
|
2025-10-21 01:27:29 +02:00
|
|
|
Messenger.Unregister<CalendarItemAdded>(this);
|
2025-12-29 23:13:32 +01:00
|
|
|
Messenger.Unregister<CalendarItemUpdated>(this);
|
|
|
|
|
Messenger.Unregister<CalendarItemDeleted>(this);
|
2025-10-21 01:27:29 +02:00
|
|
|
}
|
2024-11-10 23:28:25 +01:00
|
|
|
}
|
2026-02-12 18:04:29 +01:00
|
|
|
|