2024-12-28 23:17:16 +01:00
|
|
|
|
using System;
|
|
|
|
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
|
|
|
|
using Itenso.TimePeriod;
|
2024-12-29 19:37:36 +01:00
|
|
|
|
using Wino.Core.Domain.Entities.Calendar;
|
2024-12-28 23:17:16 +01:00
|
|
|
|
using Wino.Core.Domain.Interfaces;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Wino.Calendar.ViewModels.Data
|
|
|
|
|
|
{
|
2024-12-29 19:37:36 +01:00
|
|
|
|
public partial class CalendarItemViewModel : ObservableObject, ICalendarItem, ICalendarItemViewModel
|
2024-12-28 23:17:16 +01:00
|
|
|
|
{
|
2024-12-29 19:37:36 +01:00
|
|
|
|
public CalendarItem CalendarItem { get; }
|
2024-12-28 23:17:16 +01:00
|
|
|
|
|
|
|
|
|
|
public string Title => CalendarItem.Title;
|
|
|
|
|
|
|
|
|
|
|
|
public Guid Id => CalendarItem.Id;
|
|
|
|
|
|
|
2024-12-30 23:10:51 +01:00
|
|
|
|
public IAccountCalendar AssignedCalendar => CalendarItem.AssignedCalendar;
|
2024-12-28 23:17:16 +01:00
|
|
|
|
|
2024-12-30 23:10:51 +01:00
|
|
|
|
public DateTime StartDate { get => CalendarItem.StartDate; set => CalendarItem.StartDate = value; }
|
2024-12-28 23:17:16 +01:00
|
|
|
|
|
2024-12-30 23:10:51 +01:00
|
|
|
|
public DateTime EndDate => CalendarItem.EndDate;
|
2024-12-28 23:17:16 +01:00
|
|
|
|
|
2024-12-30 23:10:51 +01:00
|
|
|
|
public double DurationInSeconds { get => CalendarItem.DurationInSeconds; set => CalendarItem.DurationInSeconds = value; }
|
|
|
|
|
|
|
|
|
|
|
|
public ITimePeriod Period => CalendarItem.Period;
|
2024-12-29 19:37:36 +01:00
|
|
|
|
|
2024-12-31 19:21:07 +01:00
|
|
|
|
public bool IsAllDayEvent => ((ICalendarItem)CalendarItem).IsAllDayEvent;
|
|
|
|
|
|
|
|
|
|
|
|
public bool IsMultiDayEvent => ((ICalendarItem)CalendarItem).IsMultiDayEvent;
|
|
|
|
|
|
|
2025-01-02 00:18:34 +01:00
|
|
|
|
public bool IsRecurringEvent => !string.IsNullOrEmpty(CalendarItem.Recurrence);
|
|
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
|
private bool _isSelected;
|
|
|
|
|
|
|
2024-12-29 19:37:36 +01:00
|
|
|
|
public CalendarItemViewModel(CalendarItem calendarItem)
|
2024-12-28 23:17:16 +01:00
|
|
|
|
{
|
|
|
|
|
|
CalendarItem = calendarItem;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|