diff --git a/Wino.Calendar.ViewModels/CalendarPageViewModel.cs b/Wino.Calendar.ViewModels/CalendarPageViewModel.cs index f2b0fcb3..2872a11c 100644 --- a/Wino.Calendar.ViewModels/CalendarPageViewModel.cs +++ b/Wino.Calendar.ViewModels/CalendarPageViewModel.cs @@ -793,25 +793,14 @@ public partial class CalendarPageViewModel : CalendarBaseViewModel, // If the calendar item is not recurring, we can just return it. - if (calendarItemViewModel.ItemType == CalendarItemType.Timed) return new[] { calendarItemViewModel }; + if (calendarItemViewModel.ItemType == CalendarItemType.Timed || calendarItemViewModel.ItemType == CalendarItemType.RecurringException) return new[] { calendarItemViewModel }; - - // TODO: Implement below logic. - return default; - - //if (!calendarItemViewModel.IsRecurringEvent) - //{ - // return [calendarItemViewModel]; - //} - //else - //{ - // return DayRanges - // .SelectMany(a => a.CalendarDays) - // .Select(b => b.EventsCollection.GetCalendarItem(calendarItemViewModel.Id)) - // .Where(c => c != null) - // .Cast() - // .Distinct(); - //} + return DayRanges + .SelectMany(a => a.CalendarDays) + .Select(b => b.EventsCollection.GetCalendarItem(calendarItemViewModel.Id)) + .Where(c => c != null) + .Cast() + .Distinct(); } private void UnselectCalendarItem(CalendarItemViewModel calendarItemViewModel, CalendarDayModel calendarDay = null) @@ -820,6 +809,8 @@ public partial class CalendarPageViewModel : CalendarBaseViewModel, var itemsToUnselect = GetCalendarItems(calendarItemViewModel, calendarDay); + if (itemsToUnselect == null) return; + foreach (var item in itemsToUnselect) { item.IsSelected = false; diff --git a/Wino.Core.Domain/Collections/CalendarEventCollection.cs b/Wino.Core.Domain/Collections/CalendarEventCollection.cs index 354c88c2..56a3c199 100644 --- a/Wino.Core.Domain/Collections/CalendarEventCollection.cs +++ b/Wino.Core.Domain/Collections/CalendarEventCollection.cs @@ -80,7 +80,7 @@ public class CalendarEventCollection // Multi-day events go to both. // Anything else goes to regular. - if (calendarItem.ItemType == Enums.CalendarItemType.AllDay) + if (calendarItem.ItemType == Enums.CalendarItemType.AllDay || calendarItem.ItemType == Enums.CalendarItemType.MultiDayAllDay || calendarItem.ItemType == Enums.CalendarItemType.RecurringAllDay) { return [_internalAllDayEvents]; }