public async Task UpdateSchedule(dynamic scheduleBeingModified, dynamic updatedScheduleFields) { var currentSchedule = JsonSerializer.Deserialize <TUISchedule>(scheduleBeingModified.ToString()); var updatedSchedule = CalendarInterop.UpdateSchedule(currentSchedule, updatedScheduleFields); //Todo: Combine changes with actual schedule await OnChangeCalendarEventOrTask.InvokeAsync(updatedSchedule); //Todo: Test This callback! Debug.WriteLine($"Schedule {currentSchedule.id} Modified"); }
/// <summary> /// Each time there is a view change or advance of the calendar, ask the calendar what date range is visible /// </summary> /// <returns></returns> private async Task SetDateRange() { if (CalendarInterop is not null) { await VisibleStartDateRangeChanged.InvokeAsync(await CalendarInterop.GetDateRangeStart()); await VisibleEndDateRangeChanged.InvokeAsync(await CalendarInterop.GetDateRangeEnd()); } }
/*@Todo: Waiting for Double click in TUI API * [JSInvokable("OnDoubleClickSchedule")] * public async Task OnScheduleDoubleClick(string scheduleId) * { * await OnDoubleClickCalendarEventOrTask.InvokeAsync(scheduleId); * Debug.WriteLine($"Schedule {scheduleId} Double-Clicked!"); * } */ protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { await CalendarInterop.InitCalendarAsync(_ObjectReference, CalendarOptions); await CalendarInterop.SetCalendars(CalendarProperties); await CalendarInterop.CreateSchedulesAsync(Schedules); await SetDateRange(); } }
// Token: 0x060016A7 RID: 5799 RVA: 0x000802C8 File Offset: 0x0007E4C8 public void ProcessPendingActions(MailboxSession mailboxSession, StoreObject item) { CalendarItemSeries calendarItemSeries = item as CalendarItemSeries; if (calendarItemSeries == null) { return; } if (calendarItemSeries.CalendarInteropActionQueueHasData) { CalendarInterop.ExecutePendingInteropActions(mailboxSession, calendarItemSeries, null, null, null); } }
public override async Task SetParametersAsync(ParameterView parameters) { var viewName = parameters.GetValueOrDefault <TUICalendarViewName>("CalendarViewName"); if (viewName != CalendarViewName) { CalendarViewName = viewName; _OnParameterChangeEvents.Enqueue(CalendarInterop?.ChangeView(viewName).AsTask()); _OnParameterChangeEvents.Enqueue(SetDateRange()); } var newDateDisplay = parameters.GetValueOrDefault <DateTimeOffset?>("GoToDate"); if (newDateDisplay != GoToDate) { GoToDate = newDateDisplay; _OnParameterChangeEvents.Enqueue(CalendarInterop?.SetDate(newDateDisplay).AsTask()); _OnParameterChangeEvents.Enqueue(SetDateRange()); } var calendarOptions = parameters.GetValueOrDefault <TUICalendarOptions>("CalendarOptions"); if (calendarOptions is not null) { if (!calendarOptions.Equals(CalendarOptions)) { CalendarOptions = calendarOptions; _OnParameterChangeEvents.Enqueue(CalendarInterop?.SetCalendarOptionsAsync(calendarOptions).AsTask()); _OnParameterChangeEvents.Enqueue(SetDateRange()); } } CalendarProperties = parameters.GetValueOrDefault <IEnumerable <TUICalendarProps> >("CalendarProperties"); Schedules = parameters.GetValueOrDefault <ICollection <TUISchedule> >("Schedules"); //Visible Date Range VisibleEndDateRange = parameters.GetValueOrDefault <DateTimeOffset?>("VisibleEndDateRange"); VisibleStartDateRange = parameters.GetValueOrDefault <DateTimeOffset?>("VisibleStartDateRange"); VisibleStartDateRangeChanged = parameters.GetValueOrDefault <EventCallback <DateTimeOffset?> >("VisibleStartDateRangeChanged"); VisibleEndDateRangeChanged = parameters.GetValueOrDefault <EventCallback <DateTimeOffset?> >("VisibleEndDateRangeChanged"); //Events OnChangeCalendarEventOrTask = parameters.GetValueOrDefault <EventCallback <TUISchedule> >("OnChangeCalendarEventOrTask"); OnCreateCalendarEventOrTask = parameters.GetValueOrDefault <EventCallback <TUISchedule> >("OnCreateCalendarEventOrTask"); OnClickCalendarEventOrTask = parameters.GetValueOrDefault <EventCallback <string> >("OnClickCalendarEventOrTask"); OnDeleteCalendarEventOrTask = parameters.GetValueOrDefault <EventCallback <string> >("OnDeleteCalendarEventOrTask"); await base.SetParametersAsync(ParameterView.Empty); }
/// <summary> /// Call this method and Advance the calendar, in any view, forward,backward, or to today. /// </summary> /// <param name="moveTo">Previous, Next, or Today</param> /// <returns></returns> public async ValueTask MoveCalendar(CalendarMove moveTo) { await CalendarInterop.MoveCalendar(moveTo); await SetDateRange(); }
/// <summary> /// Clears all schedules from the calendar. /// </summary> /// <param name=""></param> /// <returns></returns> public async ValueTask ClearCalendar() { await CalendarInterop.Clear(); }