示例#1
0
        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");
        }
示例#2
0
        /// <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());
            }
        }
示例#3
0
        /*@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);
            }
        }
示例#5
0
        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);
        }
示例#6
0
        /// <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();
        }
示例#7
0
 /// <summary>
 /// Clears all schedules from the calendar.
 /// </summary>
 /// <param name=""></param>
 /// <returns></returns>
 public async ValueTask ClearCalendar()
 {
     await CalendarInterop.Clear();
 }