Files
Wino-Mail/Wino.Calendar.ViewModels/Data/CalendarItemViewModel.cs

43 lines
1.4 KiB
C#
Raw Normal View History

2024-12-28 23:17:16 +01:00
using System;
using System.Collections.ObjectModel;
2024-12-28 23:17:16 +01:00
using CommunityToolkit.Mvvm.ComponentModel;
using Itenso.TimePeriod;
using Wino.Core.Domain.Entities.Calendar;
using Wino.Core.Domain.Enums;
2024-12-28 23:17:16 +01:00
using Wino.Core.Domain.Interfaces;
2025-05-18 14:06:25 +02:00
namespace Wino.Calendar.ViewModels.Data;
2024-12-28 23:17:16 +01:00
2025-05-18 14:06:25 +02:00
public partial class CalendarItemViewModel : ObservableObject, ICalendarItem, ICalendarItemViewModel
{
public CalendarItem CalendarItem { get; }
2024-12-28 23:17:16 +01:00
2025-05-18 14:06:25 +02:00
public string Title => CalendarItem.Title;
2024-12-28 23:17:16 +01:00
2025-05-18 14:06:25 +02:00
public Guid Id => CalendarItem.Id;
2024-12-28 23:17:16 +01:00
2025-05-18 14:06:25 +02:00
public IAccountCalendar AssignedCalendar => CalendarItem.AssignedCalendar;
2024-12-28 23:17:16 +01:00
public DateTime StartDateTime { get => CalendarItem.StartDateTime; set => CalendarItem.StartDateTime = value; }
2024-12-28 23:17:16 +01:00
public DateTime EndDateTime => CalendarItem.EndDateTime;
2025-05-18 14:06:25 +02:00
public ITimePeriod Period => CalendarItem.Period;
public bool IsRecurringEvent => !string.IsNullOrEmpty(CalendarItem.RecurrenceRules) || !string.IsNullOrEmpty(CalendarItem.RecurringEventId);
2025-05-18 14:06:25 +02:00
[ObservableProperty]
private bool _isSelected;
2025-05-18 14:06:25 +02:00
public ObservableCollection<CalendarEventAttendee> Attendees { get; } = new ObservableCollection<CalendarEventAttendee>();
public CalendarItemType ItemType => ((ICalendarItem)CalendarItem).ItemType;
2025-05-18 14:06:25 +02:00
public CalendarItemViewModel(CalendarItem calendarItem)
{
CalendarItem = calendarItem;
2024-12-28 23:17:16 +01:00
}
2025-05-18 14:06:25 +02:00
public override string ToString() => CalendarItem.Title;
2024-12-28 23:17:16 +01:00
}