From 28a0a5465a3cdf4cb8c674e66b90a106189d8a40 Mon Sep 17 00:00:00 2001 From: praveensf4999 Date: Mon, 6 Oct 2025 16:35:03 +0530 Subject: [PATCH 1/4] 984382: Updated the UG document for scheduler Component --- blazor/scheduler/accessibility.md | 16 +- blazor/scheduler/appointment-customization.md | 35 +- blazor/scheduler/appointment-drag-and-drop.md | 76 +- blazor/scheduler/appointment-resizing.md | 27 +- blazor/scheduler/appointments.md | 180 +- blazor/scheduler/cell-customization.md | 45 +- blazor/scheduler/clipboard.md | 22 +- blazor/scheduler/context-menu.md | 13 +- blazor/scheduler/crud-actions.md | 165 +- blazor/scheduler/data-binding.md | 129 +- blazor/scheduler/images/add-appointment.png | Bin 0 -> 32788 bytes blazor/scheduler/images/backgroundcolor.png | Bin 0 -> 25114 bytes blazor/scheduler/images/bind-eventnames.png | Bin 0 -> 24273 bytes blazor/scheduler/images/custom-fields.png | Bin 0 -> 28080 bytes blazor/scheduler/images/different-color.png | Bin 0 -> 26069 bytes blazor/scheduler/images/disable-scrolling.gif | Bin 0 -> 215160 bytes blazor/scheduler/images/drag-drop.png | Bin 0 -> 27072 bytes blazor/scheduler/images/edit-event.png | Bin 0 -> 26051 bytes blazor/scheduler/images/eventrendered.png | Bin 0 -> 25185 bytes blazor/scheduler/images/field-settings.png | Bin 0 -> 52965 bytes blazor/scheduler/images/filter.png | Bin 0 -> 62469 bytes blazor/scheduler/images/list-data.png | Bin 0 -> 29614 bytes blazor/scheduler/images/min-maxdate.png | Bin 0 -> 54555 bytes blazor/scheduler/images/normal-event.png | Bin 0 -> 25403 bytes .../images/observablecollectiondata.png | Bin 0 -> 34131 bytes blazor/scheduler/images/prevent-overlap.png | Bin 0 -> 39759 bytes blazor/scheduler/images/readonly.png | Bin 0 -> 54565 bytes blazor/scheduler/images/specific-readonly.png | Bin 0 -> 56291 bytes blazor/scheduler/images/template.png | Bin 0 -> 29024 bytes blazor/scheduler/images/validation.png | Bin 0 -> 52804 bytes blazor/scheduler/images/weekend-color.png | Bin 0 -> 23807 bytes blazor/scheduler/test.md | 1605 +++++++++++++++++ 32 files changed, 2027 insertions(+), 286 deletions(-) create mode 100644 blazor/scheduler/images/add-appointment.png create mode 100644 blazor/scheduler/images/backgroundcolor.png create mode 100644 blazor/scheduler/images/bind-eventnames.png create mode 100644 blazor/scheduler/images/custom-fields.png create mode 100644 blazor/scheduler/images/different-color.png create mode 100644 blazor/scheduler/images/disable-scrolling.gif create mode 100644 blazor/scheduler/images/drag-drop.png create mode 100644 blazor/scheduler/images/edit-event.png create mode 100644 blazor/scheduler/images/eventrendered.png create mode 100644 blazor/scheduler/images/field-settings.png create mode 100644 blazor/scheduler/images/filter.png create mode 100644 blazor/scheduler/images/list-data.png create mode 100644 blazor/scheduler/images/min-maxdate.png create mode 100644 blazor/scheduler/images/normal-event.png create mode 100644 blazor/scheduler/images/observablecollectiondata.png create mode 100644 blazor/scheduler/images/prevent-overlap.png create mode 100644 blazor/scheduler/images/readonly.png create mode 100644 blazor/scheduler/images/specific-readonly.png create mode 100644 blazor/scheduler/images/template.png create mode 100644 blazor/scheduler/images/validation.png create mode 100644 blazor/scheduler/images/weekend-color.png create mode 100644 blazor/scheduler/test.md diff --git a/blazor/scheduler/accessibility.md b/blazor/scheduler/accessibility.md index 408ae8dbfb..d957bbf48c 100644 --- a/blazor/scheduler/accessibility.md +++ b/blazor/scheduler/accessibility.md @@ -11,7 +11,7 @@ documentation: ug The [Blazor Scheduler](https://www.syncfusion.com/blazor-components/blazor-scheduler) component followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. -The accessibility compliance for the Blazor Scheduler component is outlined below. +The accessibility compliance for the Blazor Scheduler component is detailed below. | Accessibility Criteria | Compatibility | | -- | -- | @@ -37,7 +37,7 @@ The accessibility compliance for the Blazor Scheduler component is outlined belo
No - The component does not meet the requirement.
-## WAI-ARIA attributes +## WAI-ARIA Attributes [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/patterns/) (Accessibility Initiative – Accessible Rich Internet Applications) defines a way to increase the accessibility of web pages, dynamic content, and user interface components developed with Ajax, HTML, JavaScript, and related technologies. ARIA provides additional semantics to describe the role, state, and functionality of web components. @@ -52,9 +52,9 @@ The following ARIA attributes are used in the Scheduler: | aria-describedby | It indicates editor dialog content description to the user through assistive technologies. | | aria-disabled | Attribute is set to the appointment element to indicates the disabled state of the Scheduler. | -## Keyboard interaction +## Keyboard Interaction -All the Scheduler actions can be controlled via keyboard keys and is availed by using `AllowKeyboardInteraction` property which is set to `true` by default. The applicable key combinations and its relative functionalities are listed below. +All interactive actions within the Blazor Scheduler can be controlled via keyboard keys, supporting users who rely on assistive technologies or prefer keyboard-only navigation. This functionality is enabled by the `AllowKeyboardInteraction` property, which is set to `true` by default. The key combinations and their functionalities are outlined below. | Windows | Mac | Actions | | ----- | ----- | ---- | @@ -78,12 +78,12 @@ All the Scheduler actions can be controlled via keyboard keys and is availed by | Shift + Alt + Y | + + Y | To navigate to today date. | | Shift + Alt + N | + + N | To open editor window. | -## Ensuring accessibility +## Ensuring Accessibility -The Blazor Scheduler component's accessibility levels are ensured through an [axe-core](https://www.nuget.org/packages/Deque.AxeCore.Playwright) software tool during automated testing. +The Blazor Scheduler component's adherence to accessibility standards is rigorously validated through automated testing using [axe-core](https://www.nuget.org/packages/Deque.AxeCore.Playwright). -The accessibility compliance of the Scheduler component is shown in the following sample. Open the [sample](https://blazor.syncfusion.com/accessibility/schedule) in a new window to evaluate the accessibility of the Scheduler component with accessibility tools. +The accessibility compliance of the Scheduler component can be evaluated by opening the [sample](https://blazor.syncfusion.com/accessibility/schedule) in a new window and using various accessibility testing tools. -## See also +## See Also * [Accessibility in Syncfusion® Blazor components](https://blazor.syncfusion.com/documentation/common/accessibility) \ No newline at end of file diff --git a/blazor/scheduler/appointment-customization.md b/blazor/scheduler/appointment-customization.md index 4b8640a55a..e8c36c59d4 100644 --- a/blazor/scheduler/appointment-customization.md +++ b/blazor/scheduler/appointment-customization.md @@ -1,13 +1,13 @@ --- layout: post -title: Appointment customization in Blazor Scheduler Component | Syncfusion +title: Appointment Customization in Blazor Scheduler Component | Syncfusion description: Checkout and learn here all about appointment customization in Syncfusion Blazor Scheduler component. platform: Blazor control: Scheduler documentation: ug --- -# Appointment customization +# Appointment Customization in Blazor Scheduler Component The look and feel of the Scheduler events can be customized using any one of the following ways. @@ -15,11 +15,11 @@ The look and feel of the Scheduler events can be customized using any one of the * [Using EventRendered event](#using-eventrendered-event) * [Using CssClass property](#using-cssclass) -## Using template +## Using Template -Any kind of text, images and links can be added to customize the look of the events. The user can format and change the default appearance of the events by making use of the [Template](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_Template) option available within the `ScheduleEventSettings` tag helper. +An event template provides full control over the rendering of each appointment's content. Text, images, links, and even other Blazor components can be dynamically added to customize the look of events. This is achieved using the [`Template`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_Template) option available within the `ScheduleEventSettings` property. -To get start quickly on customizing events using template, you can check on this video: +To get started quickly customizing events using a template, refer to this video: {% youtube "youtube:https://www.youtube.com/watch?v=8kBXcBjL12A"%} @@ -68,11 +68,15 @@ The following code example customizes the appointment. } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/hZLICjtdhIoxxqEi?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Template in Blazor Scheduler](./images/template.png) + N> All the built-in fields that are mapped to the appropriate field properties within the `ScheduleEventSettings`, as well as custom mapped fields from the Scheduler dataSource can be accessed within the template code. -## Using EventRendered event +## Using EventRendered Event -The [EventRendered](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_EventRendered) event triggers before the appointment renders on the Scheduler. Therefore, this event can be utilized to customize the look of events based on any specific criteria, before rendering them on the scheduler. +The [EventRendered](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_EventRendered) event triggers just before each appointment is rendered on the Scheduler. This event is highly versatile and can be used to dynamically customize the visual appearance of events based on specific criteria or conditions. In the following code example, the custom class has been added to events using [CssClasses](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.EventRenderedArgs-1.html#Syncfusion_Blazor_Schedule_EventRenderedArgs_1_CssClasses) to apply color to the events. @@ -122,8 +126,11 @@ In the following code example, the custom class has been added to events using [ } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/BtrosjDHBybiXDhd?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -Also, we can customize the events by adding or modifying its element attribute using [Attributes](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.EventRenderedArgs-1.html#Syncfusion_Blazor_Schedule_EventRenderedArgs_1_Attributes). In the following code example, event attributes have been modified through the `Attributes` to apply color to the events. +![Blazor Scheduler](./images/eventrendered.png) + +Events can also be customized by adding or modifying its element attribute using [Attributes](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.EventRenderedArgs-1.html#Syncfusion_Blazor_Schedule_EventRenderedArgs_1_Attributes). In the following code example, event attributes have been modified through the `Attributes` to apply color to the events. ```cshtml @using Syncfusion.Blazor.Schedule @@ -166,8 +173,11 @@ Also, we can customize the events by adding or modifying its element attribute u } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/LNVSWtNxVnDNNdNI?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Blazor Scheduler](./images/backgroundcolor.png) -## Using CssClass +## Using CssClass The customization of events can also be achieved using the built-in field [CssClass](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_CssClass) in which you can pass the class name to be applied to specific appointments. In the following example, the background of appointments has been changed. @@ -220,6 +230,9 @@ The customization of events can also be achieved using the built-in field [CssCl } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/LZLoWXtxBdWIIoLL?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Blazor Scheduler](./images/eventrendered.png) Also, the customization of events can be achieved using [CssClass](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_CssClass) property of the Scheduler. In the following example, the background of appointments has been changed using the CssClass. @@ -268,4 +281,8 @@ Also, the customization of events can be achieved using [CssClass](https://help. ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/hjBSWNDnVdhFnoie?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Blazor Scheduler](./images/eventrendered.png) + N> The events can't be customized using the styles that are `height`, `width`, `top`, `left`, `right`, and `display`. \ No newline at end of file diff --git a/blazor/scheduler/appointment-drag-and-drop.md b/blazor/scheduler/appointment-drag-and-drop.md index d1a7824e63..29a9409a1a 100644 --- a/blazor/scheduler/appointment-drag-and-drop.md +++ b/blazor/scheduler/appointment-drag-and-drop.md @@ -1,30 +1,30 @@ --- layout: post -title: Drag and drop in Blazor Scheduler Component | Syncfusion +title: Drag and Drop in Blazor Scheduler Component | Syncfusion description: Checkout and learn here all about recurring events in Syncfusion Blazor Scheduler component. platform: Blazor control: Scheduler documentation: ug --- -# Drag and drop +# Drag and Drop in Blazor Scheduler Component -Appointments can be rescheduled to any time by dragging and dropping them onto the desired location. To work with drag and drop functionality make sure that [AllowDragAndDrop](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowDragAndDrop) is set to **true** on Scheduler. In mobile mode, you can drag and drop the events by tap holding an event and dropping them on to the desired location. +Appointments within the Scheduler can be easily rescheduled by dragging and dropping them to a new time slot or resource. This functionality is enabled by ensuring the [`AllowDragAndDrop`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowDragAndDrop) property on the `SfSchedule` component is set to `true`. On mobile devices, events can be dragged and dropped by tap-holding an appointment and then dragging it to the desired location. -N> By default, drag and drop action is applicable on all Scheduler views, except Agenda and Month-Agenda view. +N> By default, drag-and-drop actions are applicable in all Scheduler views except the Agenda and Month-Agenda views. -To get start quickly about drag options available in our Scheduler, you can check on this video: +To get started quickly with the drag options available in the Scheduler, refer to this video: {% youtube "youtube:https://www.youtube.com/watch?v=Vtl1Wyuwt-0"%} -## Drag and drop multiple appointments +## Drag and Drop Multiple Appointments -Multiple appointments can be dragged and dropped by enabling the [AllowMultiDrag](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowMultiDrag) property. Multiple appointments can be selected by holding the CTRL key. Once the events are selected, leave the CTRL key and start dragging the event. +Multiple appointments can be dragged and dropped simultaneously by enabling the [`AllowMultiDrag`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowMultiDrag) property. To select multiple appointments, hold down the CTRL key while clicking on desired events. Once the events are selected, release the CTRL key and then drag any of the selected events to move the entire group. -Multiple events can also be dragged from one resource to another resource. In this case, if all the selected events are in the different resources, then all the events should be moved to the single resource that is related to the target event. +Multiple events can also be dragged from one resource to another. In scenarios where selected events originate from different resources, all selected events will be moved to the single resource associated with the target drop location. -N> Multiple events drag and drop is not supported on mobile devices. +N> Multiple event drag and drop is not supported on mobile devices. ```cshtml @using Syncfusion.Blazor.Schedule @@ -63,9 +63,13 @@ N> Multiple events drag and drop is not supported on mobile devices. } ``` -## Disable the drag action +{% previewsample "https://blazorplayground.syncfusion.com/embed/BNhyiXNHBRecufMs?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -By default, the events can be dragged and dropped within any of the applicable scheduler views, and to disable it, set **false** to the [AllowDragAndDrop](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowDragAndDrop) property. +![Drag and Drop in Blazor Scheduler](./images/drag-drop.png) + +## Disable the Drag Action + +By default, appointments can be dragged and dropped within any applicable Scheduler view. To disable this functionality, set the [`AllowDragAndDrop`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowDragAndDrop) property to `false` on the `SfSchedule` component. ```cshtml @using Syncfusion.Blazor.Schedule @@ -102,10 +106,11 @@ By default, the events can be dragged and dropped within any of the applicable s } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/BjVeijZxVddvMclV?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -## Preventing drag and drop on specific targets +## Preventing Drag and Drop on Specific Targets -It is possible to prevent the drag action on particular target, by passing the target to be excluded in the `ExcludeSelectors` option within [OnDragStart](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnDragStart) event. +The drag action can be prevented on particular target HTML elements by configuring the `ExcludeSelectors` option within the [`OnDragStart`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnDragStart) event arguments. This allows appointments to be dropped only on permissible areas. ```cshtml @using Syncfusion.Blazor.Schedule @@ -147,10 +152,11 @@ It is possible to prevent the drag action on particular target, by passing the t } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/BthIiDDdBnFmpIwr?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -## Disable scrolling on drag action +## Disable Scrolling on Drag Action -By default, while dragging an appointment to the edges, either top/bottom in the vertical Scheduler or left/right in the timeline Scheduler, scrolling action takes place automatically. To prevent this scrolling, set `false` to the `Scroll` value within the [OnDragStart](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnDragStart) event arguments. +By default, when dragging an appointment near the edges of the Scheduler (top/bottom in vertical views, left/right in timeline views), automatic scrolling occurs. To prevent this behavior, set `args.Scroll.Enable` to `false` within the [`OnDragStart`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnDragStart) event arguments. ```cshtml @using Syncfusion.Blazor.Schedule @@ -192,10 +198,14 @@ By default, while dragging an appointment to the edges, either top/bottom in the } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/VNreCtDHrHOIuJPU?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Drag and Drop in Blazor Scheduler](./images/disable-scrolling.gif) -## Controlling scroll speed while dragging an event -The speed of the scrolling action while dragging an appointment to the Scheduler edges can be controlled within the [OnDragStart](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnDragStart) event by setting the desired value to the `ScrollBy` and `TimeDelay` option, whereas its default value is 30 minutes and 100ms. +## Controlling Scroll Speed While Dragging An Event + +The speed of the automatic scrolling action that occurs when dragging an appointment to the Scheduler edges can be controlled. This is done within the [`OnDragStart`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnDragStart) event by setting the desired values for `args.Scroll.ScrollBy` and `args.Scroll.TimeDelay`. The default values are 30 minutes for `ScrollBy` and 100ms for `TimeDelay`. ```cshtml @using Syncfusion.Blazor.Schedule @@ -238,12 +248,13 @@ The speed of the scrolling action while dragging an appointment to the Scheduler } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/rjhSCZjRqCPpImEz?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -## Auto navigation of date ranges on dragging an event +## Auto Navigation of Date Ranges on Dragging an Event -When an event is dragged either to the left or right extreme edges of the Scheduler and kept hold for few seconds without dropping, the auto navigation of date ranges will be enabled allowing the Scheduler to navigate from current date range to back and forth respectively. This action is set to `false` by default and to enable it, set `Navigation` to true within the [OnDragStart](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnDragStart) event. +When an event is dragged to the left or right extreme edges of the Scheduler and held there for a few seconds without being dropped, the Scheduler can automatically navigate to the previous or next date range. This `Navigation` action is `false` by default and can be enabled by setting `args.Navigation.Enable` to `true` within the [`OnDragStart`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnDragStart) event. -By default, the navigation delay is set to 2000ms. The navigation delay decides how long the user needs to drag and hold the appointments at the extremities. You can also set your own delay value for letting the users to navigate based on it, using the `TimeDelay` within the [OnDragStart](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnDragStart) event. +The delay before navigation occurs is controlled by `args.Navigation.TimeDelay`, which defaults to 2000ms. This value determines how long an appointment needs to be held at the extremity before the date range shifts. A custom delay value for navigation can be configured using `TimeDelay` within the `OnDragStart` event. ```cshtml @using Syncfusion.Blazor.Schedule @@ -286,10 +297,11 @@ By default, the navigation delay is set to 2000ms. The navigation delay decides } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/BZBSMDXngMOhBLjP?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -## Setting drag time interval +## Setting Drag Time Interval -By default, while dragging an appointment, it moves at an interval of 30 minutes. To change the dragging time interval, pass the appropriate values to the `Interval` option within the [OnDragStart](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnDragStart) event. +By default, when dragging an appointment, it snaps to an interval of 30 minutes. To change this dragging time interval, pass the appropriate value (in minutes) to the `args.Interval` option within the [`OnDragStart`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnDragStart) event. ```cshtml @using Syncfusion.Blazor.Schedule @@ -332,11 +344,13 @@ By default, while dragging an appointment, it moves at an interval of 30 minutes } ``` -## Drag and drop items from external source +{% previewsample "https://blazorplayground.syncfusion.com/embed/hjVSMtZRAWYkImvg?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +## Drag and Drop Items from External Source -It is possible to drag and drop the unplanned items from any of the external source into the scheduler, by manually saving those dropped item as a new appointment data through [AddEventAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AddEventAsync__0_) method of Scheduler. +It is possible to drag unplanned items from any external source into the Scheduler. These dropped items are then saved as new appointment data using the [`AddEventAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AddEventAsync__0_) method of the Scheduler. -To get start quickly about dropping items from external source to our Scheduler, you can check on this video: +To get started quickly with dropping items from an external source to the Scheduler, refer to this video: {% youtube "youtube:https://www.youtube.com/watch?v=QxBBZYef6cg"%} @@ -441,10 +455,12 @@ In this example, the tree view control is used as an external source and the chi } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/LthyiNtdKLMYRqIt?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -## Drag and drop items to external source +## Drag and Drop Items to External Source -You can drag and drop the events to external source by setting the target to the property [EventDragArea](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_EventDragArea). In the following code example, we have two Scheduler and events from the first scheduler that can be dropped to the second scheduler. In the [Dragged](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_Dragged) event of the first scheduler, the dragged event has been deleted from the first scheduler and added to the second scheduler. +Events can also be dragged from the Scheduler to an external target. This is configured by setting the target's CSS selector to the [`EventDragArea`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_EventDragArea) property of the source Scheduler. +In the following example, two Scheduler instances are used. Events from the first Scheduler can be dragged and dropped into the second Scheduler. The [Dragged](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_Dragged) event of the source Scheduler is used to handle the transfer: the dragged event is deleted from the first Scheduler and then added to the second. ```cshtml @using Syncfusion.Blazor.Schedule @@ -510,10 +526,11 @@ You can drag and drop the events to external source by setting the target to the } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/BtVyMZXdABLxWcgM?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -## Opening the editor window on drag stop +## Opening the Editor Window on Drag Stop -There are scenarios where you want to open the editor filled with data on newly dropped location and may need to proceed to save it, only when `Save` button is clicked on the editor. Clicking on the cancel button should revert these changes. This can be achieved using the [Dragged](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_Dragged) event of Scheduler. +In some scenarios, after an appointment is dragged and dropped to a new location, an editor window might need to appear, pre-filled with the appointment's updated details. This allows the user to review or modify the changes before finally saving them. If the "Cancel" button is clicked in the editor, the changes should be reverted. This behavior can be implemented using the [`Dragged`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_Dragged) event of the Scheduler. ```cshtml @using Syncfusion.Blazor.Schedule @@ -557,3 +574,4 @@ There are scenarios where you want to open the editor filled with data on newly } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/LtryiDNxKrKhLmjo?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} diff --git a/blazor/scheduler/appointment-resizing.md b/blazor/scheduler/appointment-resizing.md index 490d1e31a0..37ff89b87d 100644 --- a/blazor/scheduler/appointment-resizing.md +++ b/blazor/scheduler/appointment-resizing.md @@ -7,18 +7,18 @@ control: Scheduler documentation: ug --- -# Resizing +# Resizing Appointments -Another way of rescheduling an appointment can be done by resizing it through either of its handlers. To work with resizing functionality make sure that [AllowResizing](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowResizing) property is set to **true**. +Appointments can be rescheduled by changing their duration through resizing via interactive handlers.To enable resizing functionality, ensure the [`AllowResizing`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowResizing) property is set to `true` on the `SfSchedule` component. -To get start quickly about resize options available in our Scheduler, you can check on this video: +To get started quickly with the resize options available in the Scheduler, refer to this video: {% youtube "youtube:https://www.youtube.com/watch?v=Vtl1Wyuwt-0"%} -## Disable the resize action +## Disable the Resize Action -By default, resizing of events is allowed on all Scheduler views except Agenda and Month-Agenda view. To disable this event resizing action, set false to the [AllowResizing](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowResizing) property. +By default, resizing of appointments is allowed in all applicable Scheduler views. To disable this event resizing action, set the [`AllowResizing`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowResizing) property to `false`. ```cshtml @using Syncfusion.Blazor.Schedule @@ -55,10 +55,11 @@ By default, resizing of events is allowed on all Scheduler views except Agenda a } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/BXLyCNNxqBwmnoJp?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -## Disable scrolling on resize action +## Disable Scrolling on Resize Action -By default, while resizing an appointment, when its handler reaches the extreme edges of the Scheduler, scrolling action will takes place along with event resizing. To prevent this scrolling action, set false to `Scroll` value within the [OnResizeStart](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnResizeStart) event. +By default, when resizing an appointment, if its handler reaches the extreme edges of the Scheduler, an automatic scrolling action occurs. To prevent this scrolling behavior, set the `args.Scroll.Enable` property to `false` within the [`OnResizeStart`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnResizeStart) event arguments. ```cshtml @using Syncfusion.Blazor.Schedule @@ -100,10 +101,11 @@ By default, while resizing an appointment, when its handler reaches the extreme } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/VjhoiNZxqhOVrtTC?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -## Controlling scroll speed while resizing an event +## Controlling Scroll Speed While Resizing An Event -The speed of the scrolling action while resizing an appointment to the Scheduler edges, can be controlled within the [OnResizeStart](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnResizeStart) event by setting the desired value to the [ScrollBy](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScrollOptions.html#Syncfusion_Blazor_Schedule_ScrollOptions_ScrollBy) option. +The speed of the automatic scrolling action that occurs when resizing an appointment near the Scheduler edges can be controlled. This is done within the [OnResizeStart](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnResizeStart) event by setting the desired value to the [ScrollBy](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScrollOptions.html#Syncfusion_Blazor_Schedule_ScrollOptions_ScrollBy) option. ```cshtml @using Syncfusion.Blazor.Schedule @@ -146,9 +148,11 @@ The speed of the scrolling action while resizing an appointment to the Scheduler } ``` -## Setting resize time interval +{% previewsample "https://blazorplayground.syncfusion.com/embed/BZBoWDZnghaGYtRM?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -By default, while resizing an appointment, it extends or shrinks at an interval of 30 minutes. To change this default resize interval, set appropriate values to `Interval` option within the [OnResizeStart](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnResizeStart) event. +## Setting Resize Time Interval + +By default, when resizing an appointment, its duration extends or shrinks in 30-minute intervals. To change this default resize interval, pass the desired minute value to the `args.Interval` option within the [`OnResizeStart`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnResizeStart) event arguments. ```cshtml @using Syncfusion.Blazor.Schedule @@ -190,3 +194,4 @@ By default, while resizing an appointment, it extends or shrinks at an interval } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/BDVSCNNxAUtFwMDC?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} \ No newline at end of file diff --git a/blazor/scheduler/appointments.md b/blazor/scheduler/appointments.md index 3dfb55cdac..9b7f7abc77 100644 --- a/blazor/scheduler/appointments.md +++ b/blazor/scheduler/appointments.md @@ -9,20 +9,20 @@ documentation: ug # Appointments in Blazor Scheduler Component -Appointments can be anything that are scheduled for a specific time period. It can be created on varied time range and each appointments are categorized based on this range. +Appointments represent scheduled items for a specific time period within the Scheduler. They can cover varied time ranges and are categorized based on these ranges. -To get start quickly about appointments and how to customize it, you can check on this video: +For a quick overview of appointments and their customization, refer to this video: {% youtube "youtube:https://www.youtube.com/watch?v=Vtl1Wyuwt-0"%} -## Event fields +## Event Fields -The Scheduler dataSource usually holds the event instances, where each of the instance includes a collection of appropriate [fields](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleField.html). It is mandatory to map these fields with the equivalent fields of database, when remote data is bound to it. When the local data is bound, then the field names defined within the instances needs to be mapped with the scheduler event fields correctly. +The Scheduler's data source typically holds event instances, where each instance includes a collection of appropriate [fields](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleField.html). These fields must be mapped to equivalent database fields when binding remote data. For local data, the field names defined within the `AppointmentData` instances need to be correctly mapped to the Scheduler's event fields. -N> To create an event on Scheduler, it is enough to define the `StartTime` and `EndTime` fields. In case, if remote data is bound to Scheduler, then `Id` field becomes mandatory to process the CRUD actions on appropriate events. +N> To create an event in the Scheduler, it is sufficient to define the `StartTime` and `EndTime` fields. When remote data is bound to the Scheduler, the `Id` field becomes mandatory for processing CRUD actions on events. -### Built-in fields +### Built-in Fields The built-in fields available on Scheduler event object are as follows. @@ -44,9 +44,9 @@ The built-in fields available on Scheduler event object are as follows. | IsBlock | It maps the [`IsBlock`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleField.html#Syncfusion_Blazor_Schedule_ScheduleField_IsBlock) field from dataSource. It is used to block the particular time ranges in the Scheduler and prevents the event creation on those time slots. | | CssClass | It maps the [`CssClass`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleField.html#Syncfusion_Blazor_Schedule_ScheduleField_CssClass) field from the dataSource. It is used to customize the particular events. | -### Binding different field names +### Binding Different Field Names -When the fields of event instances has the default mapping name, it is not mandatory to map them manually. If a Scheduler's dataSource holds the events collection with different field names, then it is necessary to map them with its equivalent field name within the [EventSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ISchedule.html#Syncfusion_Blazor_Schedule_ISchedule_EventSettings) property. +When event instances use default field names, manual mapping is often not required. However, if Scheduler's dataSource holds the events collection with different field names, then it is necessary to map them with its equivalent field name within the [EventSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ISchedule.html#Syncfusion_Blazor_Schedule_ISchedule_EventSettings) property. ```cshtml @using Syncfusion.Blazor.Schedule @@ -98,11 +98,15 @@ When the fields of event instances has the default mapping name, it is not manda } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/hDVoCNtdqUBRzczg?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Blazor Scheduler](./images/bind-eventnames.png) + N> The mapper field [`Id`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleField.html#Syncfusion_Blazor_Schedule_ScheduleField_Id) is of string type and has no additional validation options, whereas all other fields has additional options. -### Event field settings +### Event Field Settings -Each field of the Scheduler events are provided with additional settings such as options to set default value, to map with appropriate data source fields, to validate every event fields and to provide label values for those fields in the event window. +Each field within the Scheduler events can be configured with additional settings, such as options to set default values, map to specific data source fields, define validation rules, and provide custom labels for fields in the event editor window. | Options | Description | | ------- | ----------- | @@ -156,7 +160,11 @@ In following example, the Subject field in event editor will display its appropr } ``` -### Adding Custom fields +{% previewsample "https://blazorplayground.syncfusion.com/embed/rNBeWXXnUgzWFryN?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Blazor Scheduler](./images/field-settings.png) + +### Adding Custom Fields Apart from the default Scheduler fields, the user can include 'n' number of custom fields for appointments. The following code example shows how to include two custom fields namely **Status** and **Priority** within event collection. It is not necessary to bind the custom fields within the [EventSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ISchedule.html#Syncfusion_Blazor_Schedule_ISchedule_EventSettings). However, those additional fields can be accessed easily, for internal processing as well as from application end. @@ -200,13 +208,18 @@ Apart from the default Scheduler fields, the user can include 'n' number of cust } ``` -## Normal events +{% previewsample "https://blazorplayground.syncfusion.com/embed/hjLeMZtRqUyFbmIB?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Blazor Scheduler](./images/custom-fields.png) + -Represents an appointment that is created for any specific time interval within a day. +## Normal Events -### Creating a normal event +A normal event represents an appointment scheduled for a specific time interval within a single day. -The following example depicts how to define a normal event on the Scheduler, with event data being loaded from simple list of appointment collection. +### Creating a Normal Event + +The following example depicts how to define a normal event in the Scheduler, with event data loaded from a simple list of appointment collections. ```cshtml @using Syncfusion.Blazor.Schedule @@ -237,20 +250,23 @@ The following example depicts how to define a normal event on the Scheduler, wit } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/rDrSitZRUAQjvijV?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Blazor Scheduler](./images/normal-event.png) -## Spanned events +## Spanned Events Represents an appointment that is created for more than 24 hours, and usually displayed on the all-day row. Also, represents another type of appointment that is created for more than one day but less than 24 hours, and usually displayed appropriately on both the days. N> For example, in week view if an appointment is created for two days say from November 25, 2020 – 11.00 PM to November 26, 2020 - 2.00 AM but less than 24 hours time interval, then the appointment split into two partitions and will be displayed on both the days. -## All-day events +## All-Day Events -It represents an appointment that is created for an entire day such as holiday events. It is usually displayed separately in an all-day row, a separate row for all-day appointments below the date header section. In Timeline views, the all-day appointments displays in the working space area, and no separate all-day row is present in that view. +An all-day event represents an appointment that spans an entire day, such as a holiday or a full-day conference. These are usually displayed in a dedicated all-day row, which is a separate section below the date header. In Timeline views, all-day appointments are displayed horizontally within the working space area, as a separate all-day row is not typically present in those views. N> To change normal appointment into all-day event, set [`IsAllDay`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.FieldIsAllDay.html) field to true. -### Hide all-day row events +### Hide All-Day Row Events The CSS customization can be used to prevent the display of all-day row appointments on the Scheduler UI. @@ -262,7 +278,7 @@ The CSS customization can be used to prevent the display of all-day row appointm ## Block Date and Time -It is possible to block a set of dates or a particular time ranges on the Scheduler. To do so, define an appointment object within [EventSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ISchedule.html#Syncfusion_Blazor_Schedule_ISchedule_EventSettings) along with the required time range to block and set the [IsBlock](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleField.html#Syncfusion_Blazor_Schedule_ScheduleField_IsBlock) field to **true**. Usually, the event objects defined with `IsBlock` field set to true will block the entire time cells lying within the appropriate time ranges specified through `StartTime` and `EndTime` fields. +Specific date ranges or individual time slots within the Scheduler can be blocked to prevent appointment creation or indicate unavailability. To do so, define an appointment object within [EventSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ISchedule.html#Syncfusion_Blazor_Schedule_ISchedule_EventSettings) along with the required time range to block and set the [IsBlock](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleField.html#Syncfusion_Blazor_Schedule_ScheduleField_IsBlock) field to **true**. Usually, the event objects defined with `IsBlock` field set to true will block the entire time cells lying within the appropriate time ranges specified through `StartTime` and `EndTime` fields. ```cshtml @using Syncfusion.Blazor.Schedule @@ -301,10 +317,12 @@ It is possible to block a set of dates or a particular time ranges on the Schedu } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/LthoMDNHqAPappdA?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + ![Block Date and Time in Blazor Scheduler](images/blazor-scheduler-block-events.png) -Block events can also be defined to repeat on several days as shown in the following code example. +Block events can also be configured to repeat over several days, similar to recurring appointments, as shown in the following code example. ```cshtml @using Syncfusion.Blazor.Schedule @@ -344,11 +362,13 @@ Block events can also be defined to repeat on several days as shown in the follo } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/VjVoMNZHgAYJoZqF?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + ![Block Several Date and Time in Blazor Scheduler](images/blazor-scheduler-multiple-block-events.png) ## Readonly -An interaction with the appointments of Scheduler can be enabled/disabled using the [Readonly](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_Readonly) property. With this property enabled, you can simply navigate between the Scheduler dates, views and can be able to view the appointment details in the quick info window. Most importantly, the users are not allowed to perform any CRUD actions on Scheduler, when this property is set to true. By default, it is set as **false**. +To enable or disable interaction with appointments across the entire Scheduler, the [`Readonly`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_Readonly) property is used. When this property is set to `true`, users can navigate between Scheduler dates and views, and view appointment details in the quick info window, but are prevented from performing any CRUD (Create, Read, Update, Delete) actions on the Scheduler. By default, `Readonly` is set to `false`. ```cshtml @using Syncfusion.Blazor.Schedule @@ -386,9 +406,13 @@ An interaction with the appointments of Scheduler can be enabled/disabled using } ``` -## Make specific events readonly +{% previewsample "https://blazorplayground.syncfusion.com/embed/VZBIWtDdgJZVqOpp?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![ReadOnly Appointments in Blazor Scheduler](images/readonly.png) -There are scenarios where you need to restrict the CRUD action on specific appointments alone based on certain conditions. In the following example, the events that has occurred on the past hours from the current date of the Scheduler are made as read-only and the CRUD actions has been prevented only on those appointments. This can be achieved by setting [IsReadonly](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleField.html#Syncfusion_Blazor_Schedule_ScheduleField_IsReadonly) field of read-only events to `true`. +## Make Specific Events Read-Only + +There are scenarios where user need to restrict the CRUD action on specific appointments alone based on certain conditions. In the following example, the events that has occurred on the past hours from the current date of the Scheduler are made as read-only and the CRUD actions has been prevented only on those appointments. This can be achieved by setting [IsReadonly](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleField.html#Syncfusion_Blazor_Schedule_ScheduleField_IsReadonly) field of read-only events to `true`. ```cshtml @using Syncfusion.Blazor.Schedule @@ -429,11 +453,15 @@ There are scenarios where you need to restrict the CRUD action on specific appoi } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/hNBoCNXnKJBCmHLm?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Specific-ReadOnly Appointments in Blazor Scheduler](images/specific-readonly.png) + N> By default, the event editor is prevented to open on the read-only events when [`IsReadonly`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleField.html#Syncfusion_Blazor_Schedule_ScheduleField_IsReadonly) field is set to **true**. -## Customize the order of the overlapping events +## Customize the Order of Overlapping Events -By default, the scheduler will render the overlapping events based on the start and end time. Now, the order of the overlapping events can be customized based on the custom fields by using the [SortBy](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_SortBy) property grouped under the [EventSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ISchedule.html#Syncfusion_Blazor_Schedule_ISchedule_EventSettings) property. The following code example shows how to sort the appointments based on the custom field **RankId** as follows. +By default, the Scheduler renders overlapping events based on their start and end times internally. The display order of overlapping events can be customized according to a custom field by using the [SortBy](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_SortBy) property grouped under the [EventSettings](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ISchedule.html#Syncfusion_Blazor_Schedule_ISchedule_EventSettings) property. The following code example shows how to sort the appointments based on the custom field **RankId** as follows. ```cshtml @using Syncfusion.Blazor.Schedule @@ -478,19 +506,20 @@ By default, the scheduler will render the overlapping events based on the start } } ``` + ![Blazor Scheduler with Overlapping Events](images/blazor-scheduler-overlapping-events.png) ## Preventing Overlapping Events -By default, the scheduler displays overlapping events according to their start and end times. To prevent overlapping, you can set the [AllowOverlap](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowOverlap) property to `false`. +By default, the Scheduler displays events that overlap according to their start and end times. To prevent overlapping, set the [`AllowOverlap`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowOverlap) property to `false`. -When this property is set to `false`, any new or updated events that overlap with existing ones will trigger an overlap alert. The overlapping events will be collected in the [OverlapCollection](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.PopupOpenEventArgs-1.html#Syncfusion_Blazor_Schedule_PopupOpenEventArgs_1_OverlapCollection) within the [PopupOpenEventArgs](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.PopupOpenEventArgs-1.html). +When this property is set to `false`, any new or updated events that attempt to overlap with existing ones will trigger an overlap alert. The conflicting events are collected in the [`OverlapCollection`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.PopupOpenEventArgs-1.html#Syncfusion_Blazor_Schedule_PopupOpenEventArgs_1_OverlapCollection) within the [PopupOpenEventArgs](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.PopupOpenEventArgs-1.html). When the [AllowOverlap](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowOverlap) property is set to false, the scheduler behaves as follows: * **Initial Load Behavior:** Upon initial loading, the scheduler prioritizes non-overlapping events based on their duration and all-day status. Events with longer durations and those marked as all-day receive higher priority to ensure there are no overlaps. * **Recurring Appointments:** If there are conflicts within a recurring appointment series during the initial load, the scheduler will display all occurrences of the series, except for the conflicting instance. * **Event Modifications:** When a user edits, saves, or removes appointments, the scheduler checks for potential overlaps. If a conflict is detected, the action is blocked, and a conflict alert is displayed to the user to address the issue. -* **Dynamic Recurrence Series Creation or Editing:** When a user creates or edits a recurrence series dynamically, the scheduler will prevent any occurrences of the series from being added if a conflict is found within the series. +* **Dynamic Recurrence Series Creation or Editing:** When a recurrence series is created or edited dynamically, the Scheduler prevents any occurrences of the series from being added if a conflict is found within the series. ```cshtml @using Syncfusion.Blazor.Schedule @@ -538,11 +567,14 @@ When the [AllowOverlap](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor. } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/rXBeMtDxqJpojNSf?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Preventing-Overlap in Blazor Scheduler](images/prevent-overlap.png) ### Limitations -* The [AllowOverlap](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowOverlap) property checks for overlaps only within the currently rendered date event collection. This means that if you have events scheduled outside of the visible date range, the overlap check will not consider them by default. +* The [`AllowOverlap`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowOverlap) property checks for overlaps only within the currently rendered event collection for the visible date range. This means that events scheduled outside the currently visible date range are not considered by default in this check. -* If you need to check for overlaps with events that are outside the current rendered dates, you can trigger the [ActionBegin](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnActionBegin) event. This event allows you to perform custom logic to check for overlaps across all events, including those outside the visible date range, ensuring a more comprehensive overlap check. +* To check for overlaps with events outside the current rendered dates, the [`OnActionBegin`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnActionBegin) event can be utilized. This event allows implementing custom logic to perform a more comprehensive overlap check across all events, including those outside the visible date range. ```cshtml @@ -578,7 +610,7 @@ When the [AllowOverlap](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor. { if (args.ActionType == ActionType.EventCreate || args.ActionType == ActionType.EventChange) { - // you can perform custom logic to check for overlaps across all events. + // Custom logic can be performed here to check for overlaps across all events. } } @@ -595,11 +627,14 @@ When the [AllowOverlap](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor. } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/hNVoitXnKJdCamRQ?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Blazor Scheduler](images/prevent-overlap.png) -## Restricting event creation on specific time slots -You can restrict the users to create and update more than one appointment on specific time slots. Also, you can disable the CRUD action on those time slots if it is already occupied, which can be achieved using Scheduler’s public method [IsSlotAvailableAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_IsSlotAvailableAsync__0_). +## Restricting Event Creation on Specific Time Slots +The Scheduler allows for restricting users from creating or updating more than one appointment on specific time slots, and also disabling CRUD actions on time slots that are already occupied. This can be achieved using the Scheduler’s public method [`IsSlotAvailableAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_IsSlotAvailableAsync__0_). ->Note: The **IsSlotAvailableAsync** is centered around verifying appointments within the present view's date range. Yet, it does not encompass an evaluation of availability for recurrence occurrences that fall beyond this particular date range. +>Note: The `IsSlotAvailableAsync` method is designed to verify appointment availability primarily within the present view's date range. It does not encompass an evaluation of availability for recurrence occurrences that fall beyond this particular date range. ```cshtml @using Syncfusion.Blazor.Schedule @@ -648,9 +683,11 @@ You can restrict the users to create and update more than one appointment on spe } ``` -## Differentiate the past time events +{% previewsample "https://blazorplayground.syncfusion.com/embed/VZVoWttdqSMbcRNm?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -To differentiate the appearance of the appointments based on specific criteria such as displaying the past hour appointments with different colors on Scheduler, [EventRendered](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_EventRendered) event can be used which triggers before the appointment renders on the Scheduler. +## Differentiate Past Time Events + +To visually differentiate appointments based on specific criteria, such as displaying past appointments with a different color, the [`EventRendered`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_EventRendered) event can be used. This event triggers before each appointment renders on the Scheduler, allowing for dynamic styling modifications. In the following code example, the appointments beyond current date of the scheduler were differentiated with chocolate brown color. @@ -698,11 +735,15 @@ In the following code example, the appointments beyond current date of the sched ``` -## Appointments occupying entire cell +{% previewsample "https://blazorplayground.syncfusion.com/embed/htVeMtNRUSgNYpTK?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Differentiate Past Time Events in Blazor Scheduler](images/different-color.png) + +## Appointments Occupying Entire Cell -The Scheduler allows the event to occupy the full height of the cell without its header part by setting `true` for [EnableMaxHeight](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_EnableMaxHeight) Property. +The Scheduler allows appointments to occupy the full height of their respective cells, excluding the header part, by setting [`EnableMaxHeight`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_EnableMaxHeight) to `true`. -More indicator can be shown if more than one appointment is available in a same cell by setting `true` to [EnableIndicator](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_EnableIndicator) property whereas its default value is false. +If multiple appointments are present in the same cell, a more compact display can be achieved by setting [`EnableIndicator`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_EnableIndicator) to `true` (its default value is `false`). ```cshtml @using Syncfusion.Blazor.Schedule @@ -738,18 +779,19 @@ More indicator can be shown if more than one appointment is available in a same } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/VNBIMNZnAepwllVr?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -![Differentiate Past Time Events in Blazor Scheduler](images/blazor-scheduler-appointments-entirecell.png) +![Appointments Occupying Entire Cell in Blazor Scheduler](images/blazor-scheduler-appointments-entirecell.png) -N> The [`EnableIndicator`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_EnableIndicator) property will work, only when the [`EnableMaxHeight`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_EnableMaxHeight) property value is set to true. +N> The [`EnableIndicator`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_EnableIndicator) property functions only when the [`EnableMaxHeight`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_EnableMaxHeight) property value is set to true. -## Display tooltip for appointments +## Display Tooltip for Appointments The tooltip shows the Scheduler appointment's information in a formatted style by making use of the tooltip related options. -### Show or hide built-in tooltip +### Show or Hide Built-in Tooltip -The tooltip can be displayed for appointments by setting `true` to the [EnableTooltip](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_EnableTooltip) option within the `ScheduleEventSettings` tag helper. +A tooltip can be displayed for appointments by setting [`EnableTooltip`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_EnableTooltip) to `true` within the `` tag. ```cshtml @using Syncfusion.Blazor.Schedule @@ -789,12 +831,13 @@ The tooltip can be displayed for appointments by setting `true` to the [EnableTo } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/hZVysXDnKIogBhhz?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} ![Built-in Tooltip in Blazor Scheduler](images/blazor-scheduler-appointments-tooltip.png) -### Customizing event tooltip using template +### Customizing Event Tooltip Using Template -After enabling the default tooltip, it is possible to customize the display of needed event information on tooltip by making use of the [TooltipTemplate](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_TooltipTemplate) option within the `ScheduleEventSettings`. +After enabling the default tooltip, the display of event information within the tooltip can be customized by using the [`TooltipTemplate`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_TooltipTemplate) option within `ScheduleEventSettings`. ```cshtml @using Syncfusion.Blazor.Schedule @@ -840,17 +883,17 @@ After enabling the default tooltip, it is possible to customize the display of n } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/LZhesZNnAoxBLKzr?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} ![Tooltip in Blazor Scheduler](images/blazor-scheduler-appointments-tooltip-template.png) -N> All the field names that are mapped from the Scheduler dataSource to the appropriate field properties such as subject, description, location, startTime and endTime within the `ScheduleEventSettings` can be accessed within the template. +N> All field names mapped from the Scheduler data source to the appropriate field properties (such as `Subject`, `Description`, `Location`, `StartTime`, and `EndTime`) within `ScheduleEventSettings` can be accessed within the template. -### How to prevent the tooltip for specific events +### How to Prevent the Tooltip for Specific Events -By using the [`TooltipOpening`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_TooltipOpening) event, you can selectively control when tooltips appear, based on appointment data or other custom conditions. - -To prevent a tooltip from appearing for certain events, you can set the `cancel` property to `true` within the [`TooltipOpening`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_TooltipOpening) event. This ensures that tooltips are only displayed for the relevant appointments, improving user experience by minimizing unnecessary distractions. +The [`TooltipOpening`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_TooltipOpening) event allows for selectively controlling when tooltips appear, based on appointment data or other custom conditions. +To prevent a tooltip from appearing for certain events, set the `args.Cancel` property to `true` within the [`TooltipOpening`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_TooltipOpening) event handler. This ensures that tooltips are displayed only for relevant appointments, minimizing unnecessary distractions for the user. ```cshtml @using Syncfusion.Blazor.Schedule @@ -898,26 +941,26 @@ To prevent a tooltip from appearing for certain events, you can set the `cancel` } ``` -## Appointment selection +## Appointment Selection -Appointment selection can be done either through mouse or keyboard actions. The selected events in UI will have a box shadow effect around to differentiate it from other appointments. +Appointments can be selected via mouse clicks or keyboard actions. Selected events in the UI are typically visually differentiated (e.g., with a box shadow effect) from other appointments. | Action | Description | |-------|---------| | Mouse click or Single tap on appointments | Selects single appointment. | | Ctrl + [Mouse click] or [Single tap] on appointments | Selects multiple appointments.| -## Deleting multiple appointments +## Deleting Multiple Appointments -With the options available to select multiple appointments, it is also possible to delete the multiple selected appointments simply by pressing the `delete` key. In case of deleting multiple selected occurrences of an event series, only those occurrences will be deleted and not the entire series. +When multiple appointments are selected, it is possible to delete them simultaneously by pressing the Delete key. If multiple selected events are occurrences of a recurring series, only those specific occurrences will be deleted, not the entire series. -## Retrieve event details from the UI of an event +## Retrieve Event Details from the UI of an Event -It is possible to access the information about the event fields of an appointment based on the X and Y co-ordinates. This can be achieved by passing an X and Y co-ordinates to the public method [GetTargetEventAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_GetTargetEventAsync_System_Int32_System_Int32_). You can also get the selected appointment details using [GetSelectedEventsAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_GetSelectedEventsAsync) method. +Information about event fields of an appointment can be accessed based on its X and Y coordinates. This is achieved by passing X and Y coordinates to the public method [`GetTargetEventAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_GetTargetEventAsync_System_Int32_System_Int32_). Additionally, selected appointment details can be retrieved using the [`GetSelectedEventsAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_GetSelectedEventsAsync) method. -## Get the current view appointments +## Get Current View Appointments -To retrieve the appointments present in the current view of the Scheduler, the [GetCurrentViewEvents](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_GetCurrentViewEvents) public method can be used. In the following example, current view appointment collection rendered has been traced in [DataBound](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_DataBound) event. +To retrieve the appointments currently visible in the Scheduler's active view, the [`GetCurrentViewEvents`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_GetCurrentViewEvents) public method can be used. In the following example, the collection of appointments rendered in the current view is logged within the [DataBound](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_DataBound) event. ```cshtml @using Syncfusion.Blazor.Schedule @@ -940,7 +983,7 @@ To retrieve the appointments present in the current view of the Scheduler, the [ public void OnDataBound(DataBoundEventArgs args) { List eventCollection = ScheduleRef.GetCurrentViewEvents(); - //You can get the current view appointment collections in the EventCollection variable + // The current view appointment collections are available in the eventCollection variable } List DataSource = new List { @@ -963,9 +1006,9 @@ To retrieve the appointments present in the current view of the Scheduler, the [ } ``` -## Get the entire appointment collections +## Get the Entire Appointment Collections -The entire collection of appointments rendered on the Scheduler can be accessed using the [GetEventsAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_GetEventsAsync_System_Nullable_System_DateTime__System_Nullable_System_DateTime__System_Nullable_System_Boolean__) public method. In the following example, entire appointment collection rendered on the Scheduler has been traced in [DataBound](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_DataBound) event. +The entire collection of appointments (including those not currently visible due to the active view) rendered on the Scheduler can be accessed using the [`GetEventsAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_GetEventsAsync_System_Nullable_System_DateTime__System_Nullable_System_DateTime__System_Nullable_System_Boolean__) public method. In the following example, the entire appointment collection is logged within the [DataBound](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_DataBound) event. ```cshtml @using Syncfusion.Blazor.Schedule @@ -1012,9 +1055,9 @@ The entire collection of appointments rendered on the Scheduler can be accessed N> You can also get the specific range of appointments by passing the start and end time in the `GetEventsAsync` method. To get the block events, you can make use of the method `GetBlockEventsAsync`. -## Appointment filtering +## Appointment Filtering -The appointments can be filtered by passing the predicate value to [Query](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_Query) option in `ScheduleEventSettings`. The following code example shows how to filter and render the selected appointments alone in the Scheduler. +Appointments can be filtered by applying a predicate value to the [`Query`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_Query) option within `ScheduleEventSettings`. The following code example shows how to filter and render the selected appointments alone in the Scheduler. ```cshtml @using Syncfusion.Blazor.Schedule @@ -1221,10 +1264,13 @@ The appointments can be filtered by passing the predicate value to [Query](https } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/rZroitDdUSYiudYP?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Filtering in Blazor Scheduler](images/filter.png) -## Refresh appointments +## Refresh Appointments -If the requirement is to simply refresh the appointments instead of refreshing the entire Scheduler elements from the application end, make use of the [RefreshEventsAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_RefreshEventsAsync) public method. +To refresh only the appointments displayed in the Scheduler, without re-rendering the entire Scheduler component from the application, utilize the [`RefreshEventsAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_RefreshEventsAsync) public method. ```csharp ScheduleRef.RefreshEventsAsync(); diff --git a/blazor/scheduler/cell-customization.md b/blazor/scheduler/cell-customization.md index fa1a5783b2..0797887a15 100644 --- a/blazor/scheduler/cell-customization.md +++ b/blazor/scheduler/cell-customization.md @@ -9,9 +9,9 @@ documentation: ug # Cell Customizations in Blazor Scheduler Component -The cells of the Scheduler can be easily customized using the cell template. +The cells within the Scheduler component can be extensively customized using the cell template. -## Setting cell dimensions in Vertical Views +## Setting Cell Dimensions in Vertical Views The height and width of the Scheduler cells can be customized either to increase or reduce its size through the [`CssClass`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_CssClass) property, which overrides the default CSS applied on cells of vertical views. @@ -64,10 +64,11 @@ The height and width of the Scheduler cells can be customized either to increase } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/BZLIWNXdqxtemNNH?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} ![Cell Dimensions in Vertical Views in Blazor Scheduler](images/blazor-scheduler-celldimension-verticalviews.png) -## Setting cell dimensions in Timeline Views +## Setting Cell Dimensions in Timeline Views The height and width of the Scheduler cells can be customized either to increase or reduce its size through the [`CssClass`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_CssClass) property, which overrides the default CSS applied on cells of timeline views. @@ -108,12 +109,13 @@ The height and width of the Scheduler cells can be customized either to increase } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/VZBIiZNnKxstgmZQ?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} ![Cell Dimensions in Timeline Views in Blazor Scheduler](images/blazor-scheduler-celldimension-timelineviews.png) -## Customizing cells using CellTemplate +## Customizing Cells Using CellTemplate -The [`CellTemplate`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleTemplates.html#Syncfusion_Blazor_Schedule_ScheduleTemplates_CellTemplate) is used to customize the cell background with specific images or appropriate text on the given date values. +The [`CellTemplate`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleTemplates.html#Syncfusion_Blazor_Schedule_ScheduleTemplates_CellTemplate) allows for powerful customization of the background of individual cells. This can include displaying specific images, custom text, or conditional styling based on the date value of the cell. ```cshtml @using Syncfusion.Blazor.Schedule @@ -198,12 +200,13 @@ The [`CellTemplate`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Sch } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/VDreiXNdUHsJvbhb?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} ![Using CellTemplate in Blazor Scheduler](images/blazor-scheduler-celldimension-celltemplate.png) -## Customizing cell header in month view +## Customizing Cell Header in Month View -The month header of each date cell in the month view can be customized using the [CellHeaderTemplate](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleTemplates.html#Syncfusion_Blazor_Schedule_ScheduleTemplates_CellHeaderTemplate) +The month header of each date cell in the month view can be customized using the [CellHeaderTemplate](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleTemplates.html#Syncfusion_Blazor_Schedule_ScheduleTemplates_CellHeaderTemplate). ```cshtml @using Syncfusion.Blazor.Schedule @@ -239,12 +242,13 @@ The month header of each date cell in the month view can be customized using the } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/rtLoWNZdUnCPmdts?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} ![Customizing Cell Header in Blazor Scheduler](images/blazor-scheduler-celldimension-cellheader.png) -## Customizing cells using OnRenderCell event +## Customizing Cells Using OnRenderCell Event -The cells can also be customized by using [`OnRenderCell`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnRenderCell) event. In the [`OnRenderCell`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnRenderCell), the argument [`RenderCellEventArgs`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.RenderCellEventArgs.html#properties) returns the [`ElementType`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.RenderCellEventArgs.html#Syncfusion_Blazor_Schedule_RenderCellEventArgs_ElementType) as `WorkCells` and `AllDayCells` when the cell is rendering. +Cells can also be customized programmatically by using the [`OnRenderCell`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnRenderCell) event. In this event, the provided [`RenderCellEventArgs`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.RenderCellEventArgs.html#properties) expose properties such as [`ElementType`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.RenderCellEventArgs.html#Syncfusion_Blazor_Schedule_RenderCellEventArgs_ElementType) (e.g., `WorkCells`, `AllDayCells`), `Date`, and `CssClasses` to enable conditional styling. ```cshtml @using Syncfusion.Blazor.Schedule @@ -296,10 +300,13 @@ The cells can also be customized by using [`OnRenderCell`](https://help.syncfusi } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/rXVyMDtRqxStKKHB?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -## Customizing the minimum and maximum date values +## Customizing the Minimum and Maximum Date Values -Providing the [`MinDate`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_MinDate) and [`MaxDate`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_MaxDate) property with some date values, allows the Scheduler to set the minimum and maximum date range. The Scheduler date that lies beyond this minimum and maximum date range will be in a disabled state so that the date navigation will be blocked beyond the specified date range. +To define the minimum and maximum date range selectable and navigable within the Scheduler, the [`MinDate`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_MinDate) and [`MaxDate`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_MaxDate) properties are used. Dates outside this specified range will appear in a disabled state, and date navigation will be blocked beyond these limits. + +N> By default, the `MinDate` property is set to `new DateTime(1900, 1, 1)` and `MaxDate` to `new DateTime(2099, 12, 31)`. These default values can be customized as needed. ```cshtml @using Syncfusion.Blazor.Schedule @@ -325,10 +332,13 @@ Providing the [`MinDate`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazo } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/VjLSCjXRURSECfLj?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Customizing the Min and Max Date in Blazor Scheduler](images/min-maxdate.png) -## Customizing the weekend cells background color +## Customizing Weekend Cell Background Color -You can customize the background color of weekend cells by utilizing the [`OnRenderCell`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnRenderCell) event by adding the [`CssClasses`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.RenderCellEventArgs.html#Syncfusion_Blazor_Schedule_RenderCellEventArgs_CssClasses) and checking the [`ElementType`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.RenderCellEventArgs.html#Syncfusion_Blazor_Schedule_RenderCellEventArgs_ElementType) option within the event. +The background color of weekend cells can be customized using the [`OnRenderCell`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnRenderCell) event. This event allows adding [`CssClasses`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.RenderCellEventArgs.html#Syncfusion_Blazor_Schedule_RenderCellEventArgs_CssClasses) to cells based on their `Date` and [`ElementType`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.RenderCellEventArgs.html#Syncfusion_Blazor_Schedule_RenderCellEventArgs_ElementType). ```cshtml @using Syncfusion.Blazor.Schedule @@ -386,6 +396,9 @@ You can customize the background color of weekend cells by utilizing the [`OnRen } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/hNLoCDXdURmnmCBA?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Blazor Scheduler](images/weekend-color.png) And, the background color for weekend cells in the Month view through the [`CssClass`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_CssClass) property, which overrides the default CSS applied on cells. @@ -397,8 +410,6 @@ And, the background color for weekend cells in the Month view through the [`CssC ``` -## How to disable multiple cell and row selection in Schedule - -By default, the [AllowMultiCellSelection](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowMultiCellSelection) and [AllowMultiRowSelection](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowMultiRowSelection) properties of the Schedule are set to true that allows user to select multiple cells and rows. If you want disable the multiple cell/row selection, you can disable the [AllowMultiCellSelection](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowMultiCellSelection) and [AllowMultiRowSelection](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowMultiRowSelection) properties. +## How to Disable Multiple Cell and Row Selection in Schedule -N> By default, the `MinDate` property value is set to new DateTime(1900, 1, 1) and `MaxDate` property value is set to new DateTime(2099, 12, 31). The user can also set the customized `MinDate` and `MaxDate` property values. \ No newline at end of file +By default, the [`AllowMultiCellSelection`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowMultiCellSelection) and [`AllowMultiRowSelection`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowMultiRowSelection) properties of the Scheduler are set to `true`, allowing users to select multiple cells and rows. To disable this behavior, set both properties to `false`. diff --git a/blazor/scheduler/clipboard.md b/blazor/scheduler/clipboard.md index f43f6daeae..1bcdbbafc0 100644 --- a/blazor/scheduler/clipboard.md +++ b/blazor/scheduler/clipboard.md @@ -9,17 +9,17 @@ documentation: ug # Clipboard in Blazor Scheduler Component -The Clipboard functionality in the Syncfusion® Scheduler enhances scheduling efficiency by enabling users to cut, copy, and paste appointments with ease. This feature is especially beneficial for those managing multiple appointments, as it eliminates the need for repetitive data entry and allows users to quickly adjust their schedules without hassle. +The Clipboard functionality in the Syncfusion® Scheduler enhances scheduling efficiency by enabling users to cut, copy, and paste appointments with ease. This feature is especially beneficial for managing multiple appointments, as it streamlines repetitive tasks and allows for quick adjustments to schedules. -To activate the clipboard feature in the scheduler, simply set the [`AllowClipboard`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowKeyboardInteraction) property to **true**. +To activate the clipboard feature in the Scheduler, set the [`AllowClipboard`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowClipboard) property to `true`. -N> The [`AllowKeyboardInteraction`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowKeyboardInteraction) property must be true for proper functionality of the clipboard feature. +N> The [`AllowKeyboardInteraction`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowKeyboardInteraction) property must also be set to `true` for the clipboard feature to function correctly, as it relies on keyboard shortcuts. -## Cut, copy and paste using keyboard +## Cut, Copy, and Paste Using Keyboard -The Syncfusion® Scheduler supports keyboard shortcuts to streamline the process of managing appointments. +The Syncfusion® Scheduler supports standard keyboard shortcuts to streamline the process of managing appointments. -These keyboard shortcuts enable users to efficiently manage their schedules: +These keyboard shortcuts enable efficient schedule management: | Operation | Shortcut | Description | |-----------|----------|------------------------------------------------------------------| @@ -111,9 +111,9 @@ To use these shortcuts, simply click on the appointment and press **Ctrl+C** to N> For Mac users, use **Cmd** instead of **Ctrl** for copy, cut, and paste operations. -## Cut, copy, and paste using context menu +## Cut, Copy, and Paste Using Context Menu -You can programmatically manage appointments by using the public methods **cut**, **copy**, and **paste**. These methods allow you to perform the same actions as the context menu or external buttons. +Appointments can be programmatically managed using the public methods `CopyAsync`, `CutAsync`, and `PasteAsync`. These methods allow developers to trigger the same clipboard actions as keyboard shortcuts or context menu options, providing more control over the appointment management process. Utilize these public methods to manage appointments programmatically in Syncfusion® Schedule: @@ -123,7 +123,7 @@ Utilize these public methods to manage appointments programmatically in Syncfusi | `CutAsync` | None | Remove the selected appointment from its current slot for moving. | | `PasteAsync` | targetElement (Scheduler's work-cell) | Insert the copied or cut appointment into the specified time slot. | -By using these methods, you can programmatically cut, copy, and paste appointments in the scheduler, providing more control over the appointment management process. +By using these methods within event handlers (e.g., from a custom context menu), precise control over clipboard operations is achieved. ```cshtml @using Syncfusion.Blazor.Schedule @@ -289,9 +289,9 @@ By using these methods, you can programmatically cut, copy, and paste appointmen {% previewsample "https://blazorplayground.syncfusion.com/embed/rNVojqVGhZgDmVrp?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5 %} -## Modifying content before pasting +## Modifying Content Before Pasting -You can modify the content of an appointment before pasting it by using `Paste` event accessing the appointment details and making necessary changes. +The content of an appointment can be modified before it is pasted by utilizing the `Paste` event. This event provides access to the appointment details, allowing for necessary changes. The following example demonstrates how to seamlessly copy and paste content from a grid to a scheduler. To do this, follow these steps: diff --git a/blazor/scheduler/context-menu.md b/blazor/scheduler/context-menu.md index 3ee9352464..372fe4d097 100644 --- a/blazor/scheduler/context-menu.md +++ b/blazor/scheduler/context-menu.md @@ -9,13 +9,17 @@ documentation: ug # Context Menu in Blazor Scheduler Component -The context menu can be displayed on work cells, resource cells and appointments of Scheduler by making use of the [`ContextMenu`](https://blazor.syncfusion.com/documentation/context-menu/getting-started) control manually from the application end. In the following code example, context menu control is being added from sample end and set its target as `Scheduler` and the target element is got by using [GetElementInfoAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_GetElementInfoAsync_System_Int32_System_Int32_) public method in Blazor. +A context menu can be integrated with the Scheduler to display context-sensitive options on work cells, resource cells, and appointments. This functionality is achieved manually using Syncfusion's [`ContextMenu`](https://blazor.syncfusion.com/documentation/context-menu/getting-started) control. -On Scheduler cells, the menu items can be displayed such as `New Event`, `New Recurring Event` and `Today` option. For appointments, its related options can be displayed such as `Edit Event` and `Delete Event`. For resource cells, the related resource cell information can be displayed. The default event window can be opened for appointment creation and editing using the [OpenEditorAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_OpenEditorAsync__0_Syncfusion_Blazor_Schedule_CurrentAction_) method of Scheduler. +The example demonstrates adding a Context Menu from the application side, setting its target to the Scheduler, and using the Scheduler's [`GetElementInfoAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_GetElementInfoAsync_System_Int32_System_Int32_) public method to determine the specific element (cell, event, resource header) that was right-clicked. -The deletion of appointments can be done by using the [DeleteEventAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_DeleteEventAsync__1___0_System_Nullable_Syncfusion_Blazor_Schedule_CurrentAction__) public method. Also, the [SelectedDate](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_SelectedDate) property can be used to navigate between different dates. +* **On Scheduler cells:** Menu items such as `New Event`, `New Recurring Event`, and `Today` options can be displayed. +* **On Appointments:** Related options like `Edit Event` and `Delete Event` can be shown. +* **On Resource Cells:** The relevant resource cell information can be displayed or actions related to the resource can be offered. -N> You can also display custom menu options on Scheduler cells and appointments. Context menu will open on tap-hold in responsive mode. +The default event editor window can be opened for appointment creation and editing using the [`OpenEditorAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_OpenEditorAsync__0_Syncfusion_Blazor_Schedule_CurrentAction__) method. Appointment deletion is handled by the [`DeleteEventAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_DeleteEventAsync__1___0_System_Nullable_Syncfusion_Blazor_Schedule_CurrentAction__) public method. The [`SelectedDate`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_SelectedDate) property can be used to navigate between different dates. + +N> Custom menu options can also be displayed on Scheduler cells and appointments. In responsive mode, the context menu opens on a tap-hold gesture. ```cshtml @using Syncfusion.Blazor.Schedule @@ -196,5 +200,6 @@ N> You can also display custom menu options on Scheduler cells and appointments. } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/LthesNXHAvXJRJTH?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} ![Context Menu in Blazor Scheduler](images/blazor-scheduler-contextmenu.png) \ No newline at end of file diff --git a/blazor/scheduler/crud-actions.md b/blazor/scheduler/crud-actions.md index fd985922b4..39189bf4e7 100644 --- a/blazor/scheduler/crud-actions.md +++ b/blazor/scheduler/crud-actions.md @@ -1,32 +1,33 @@ --- layout: post -title: CRUD actions in Blazor Scheduler Component | Syncfusion +title: CRUD Actions in Blazor Scheduler Component | Syncfusion description: Learn here all about possible methods available on Syncfusion Blazor Scheduler component to perform CRUD actions on the events. platform: Blazor control: Scheduler documentation: ug --- -# CRUD actions in Blazor Scheduler Component +# CRUD Actions in Blazor Scheduler Component -Events, a.k.a. Appointments, play an important role in Scheduler with which the users mostly interact. You can easily manipulate (add/edit/delete) the desired appointments as and when required either using the editor window or through the drag and resize action. +Appointments, also known as events, are central to user interaction within the Scheduler. The component provides intuitive ways to manipulate these appointments (add, edit, delete) either through its interactive editor, quick popups, inline editing, or via drag-and-resize actions. ## Add -Any kind of appointments such as normal, all-day, spanned or recurring events can be easily added on Scheduler using any one of the following ways. +Appointments of any type—normal, all-day, spanned, or recurring events—can be easily added to the Scheduler using one of the following methods: -* [Creation using editor window](#creation-using-editor-window) -* [Creation using AddEventAsync method](#creation-using-addeventasync-method) +* [Creation using Editor Window](#creation-using-editor-window) +* [Creation using AddEventAsync Method](#creation-using-addeventasync-method) +* [Inline Creation](#inline-creation) -### Creation using editor window +### Creation using Editor Window -The default editor window opens when you double click on the Scheduler cells. It provides with event related options such as Subject, Location, Start and End time, All-day, Timezone, Description and other recurrence options. With these available fields, you can choose to provide detailed information to the events. Once the fields are filled with proper values, enter the `Save` button to add an event. +The default editor window opens when a user double-clicks on an empty cell in the Scheduler. This comprehensive editor provides various event-related options such as Subject, Location, Start and End time, All-day status, Timezone, Description, and recurrence options. Users can provide detailed information for the event through these fields. After filling in the appropriate values, clicking the `Save` button adds the event. -In case, if you want to simply provide the Subject alone for appointments, just single click on the required cells which will open the quick popup expecting you to enter subject alone and save it. You can also select multiple cells and press `Enter` key to open the quick popup for selected time range and save the appointment for that time range. +Alternatively, a single click on a Scheduler cell opens a quick popup, allowing the user to simply enter a subject and save the appointment. For a selected time range (e.g., multiple cells selected by dragging), pressing the Enter key can also open this quick popup to save an appointment for that duration. -### Creation using AddEventAsync method +### Creation using AddEventAsync Method -The appointments can be created dynamically by using [`AddEventAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AddEventAsync__0_) method. +Appointments can be dynamically created and added to the Scheduler programmatically using the [`AddEventAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AddEventAsync__0_) method. ```cshtml @using Syncfusion.Blazor.Schedule @@ -78,10 +79,13 @@ The appointments can be created dynamically by using [`AddEventAsync`](https://h } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/VZLSsNXHgvMUdWcA?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -### Inline creation +![Blazor Scheduler](images/add-appointment.png) -Another easier way to create the appointments is enabling the [`AllowInline`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowInline) property. By single clicking on the scheduler cells or pressing `enter` key on selected cells, the appointment like textbox will be displayed in which you can enter the Subject of the appointment. Pressing enter key or clicking out of the text box will create the appointment in the scheduler. +### Inline Creation + +Another convenient way to create appointments is by enabling the [`AllowInline`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowInline) property. This allows users to single-click on Scheduler cells or press the Enter key on selected cells to display an appointment-like textbox. Users can then type the event's `Subject` directly. Pressing Enter or clicking outside the textbox will save the new appointment. ```cshtml @using Syncfusion.Blazor.Schedule @@ -118,10 +122,11 @@ Another easier way to create the appointments is enabling the [`AllowInline`](ht } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/hthosXXnAbVuftBK?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -### Inserting events into database at server-side +### Inserting Events into a Database at Server-Side -While adding the normal or recurring events to the Scheduler, `insert` action takes place and the following code example describes how to add a new event into database at server side. +When adding normal or recurring events to the Scheduler, an `insert` action is triggered. The following code example illustrates how to handle a new event persisting to a database on the server side. ```sh if (param.action == "insert" || (param.action == "batch" && param.added != null)) // this block of code will execute while inserting the appointments @@ -150,11 +155,11 @@ if (param.action == "insert" || (param.action == "batch" && param.added != null) ![Adding Events in Blazor Scheduler](images/blazor-scheduler-add-events.png) -### Restricting add action based on specific criteria +### Restricting Add Action Based on Specific Criteria In the following example, the specific fields of Scheduler editor window such as Subject and Location are made to undergo validation such that if it is left as blank, then the default `required` validation message will be displayed, while clicking on a save button. -Additionally, the regex condition has been added to the Location field, so that if any special characters are typed into it, then the custom validation message will be displayed. +Additionally, a regular expression (regex) condition can be applied to the `Location` field to prevent special characters, displaying a custom validation message if violated. ```cshtml @using Syncfusion.Blazor.Schedule @@ -204,8 +209,11 @@ Additionally, the regex condition has been added to the Location field, so that } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/BtLSMjNxqlqPOxhL?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Blazor Scheduler](images/validation.png) -You can also dynamically prevent the creation of appointments on Scheduler. For example, say if you want to decline the creation of appointments on weekend days, you can check for its appropriate condition within the [`OnActionBegin`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnActionBegin) event. +The creation of appointments can also be dynamically prevented based on runtime conditions. For example, to prevent appointment creation on weekend days, the [`OnActionBegin`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnActionBegin) event can be used to check the start date of the proposed appointment. ```cshtml @using Syncfusion.Blazor.Schedule @@ -257,25 +265,27 @@ You can also dynamically prevent the creation of appointments on Scheduler. For } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/LXhSsDXdqbzuctqm?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} ## Edit -The same way the appointments such as normal, all-day, spanned or recurring events are created, it can be easily edited using any of the following ways. +Appointments (normal, all-day, spanned, or recurring events) can be easily edited using any of the following methods: -* [Update using editor window](#update-using-editor-window) -* [Update using SaveEventAsync method](#update-using-saveeventasync-method) +* [Update using Editor Window](#update-using-editor-window) +* [Update using `SaveEventAsync` Method](#update-using-saveeventasync-method) +* [Inline Editing](#inline-editing) -### Update using editor window +### Update using Editor Window -The default editor window filled with appointment details can be opened by double clicking on the required events. It gets pre-filled with event options such as Subject, Location, Start and End time, All-day, timezone, description and other recurrence options, from which you can edit the desired field values and, then enter the `Save` button to update it. +The default editor window, pre-filled with appointment details, can be opened by double-clicking on the desired event. This editor provides event options such as Subject, Location, Start and End time, All-day status, Timezone, Description, and recurrence options. Users can edit the desired field values and then click the `Save` button to update the event. -N> You can also single click on appointments, which opens the quick info popup with edit and delete options. Clicking on the `Edit` option will open the default editor filled with event details and `Delete` option will prompt for delete confirmation. +N> A single click on an appointment opens a quick info popup with "Edit" and "Delete" options. Clicking "Edit" opens the default editor pre-filled with event details. "Delete" prompts for delete confirmation. -### Update using SaveEventAsync method +### Update using SaveEventAsync Method -The appointments can be edited and updated manually using the [`SaveEventAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_SaveEventAsync__0_Syncfusion_Blazor_Schedule_CurrentAction__0_) method. +Appointments can be programmatically edited and updated using the [`SaveEventAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_SaveEventAsync__0_Syncfusion_Blazor_Schedule_CurrentAction__0_) method. -Here, an event with ID `1` is edited and its subject is changed with a new text. When the modified data object is passed onto the [`SaveEventAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_SaveEventAsync__0_Syncfusion_Blazor_Schedule_CurrentAction__0_) method, the changes gets reflected onto the original event. The `Id` field is mandatory in this edit process, where the modified event object should hold the valid `Id` value that exists in the Scheduler data source. +In the following example, an event with a specific `Id` (e.g., `1`) is edited, and its subject is changed with new text. When the modified data object is passed to the `SaveEventAsync` method, the changes are reflected in the original event. The `Id` field is mandatory in this process, as the modified event object must hold a valid `Id` value that exists in the Scheduler's data source. ```cshtml @using Syncfusion.Blazor.Schedule @@ -327,10 +337,13 @@ Here, an event with ID `1` is edited and its subject is changed with a new text. } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/BtVeMZZdgPeRVAmz?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +![Blazor Scheduler](images/edit-event.png) -### Inline editing +### Inline Editing -Another easier way to edit the appointments is enabling the [`AllowInline`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowInline) property. By single clicking on the appointments, you can edit the Subject of the appointment. Pressing enter key or clicking out of the appointment will edit the existing appointment. +Another convenient way to edit appointments is by enabling the [`AllowInline`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_AllowInline) property. This allows users to single-click on an appointment to directly edit its `Subject`. Pressing Enter or clicking outside the appointment will update the existing appointment. ```cshtml @using Syncfusion.Blazor.Schedule @@ -367,8 +380,9 @@ Another easier way to edit the appointments is enabling the [`AllowInline`](http } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/htLSiZZRgbHIWEOC?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -### Updating events in database at server-side +### Updating Events in a Database at Server-Side While editing the normal events in the Scheduler, `update` action takes place and the following code example describes how to update event into database at server side. @@ -398,22 +412,23 @@ if (param.action == "update" || (param.action == "batch" && param.changed != nul ![Updating Blazor Scheduler Events](images/blazor-scheduler-updating-events.png) -### How to edit a single occurrence or entire series and update it in database at server-side +### How to Edit a Single Occurrence or Entire Series and Update it in a Database at Server-Side -The recurring appointments can be edited in either of the following two ways. +Recurring appointments can be edited in two distinct ways: * Single occurrence * Entire series -**Editing single occurrence** - When a recurring event is double clicked, a popup prompts to choose either to edit the single event or entire series. From this, if you choose to select **EDIT EVENT** option, a single occurrence of the recurring appointment alone will be edited. The following process takes place while editing a single occurrence, - -* A new event will be created from the parent event data and added to the Scheduler dataSource, with all its default field values overwritten with the newly modified data and additionally, the [`RecurrenceID`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.FieldRecurrenceId.html) field will be added to it, that holds the `id` value of the parent recurring event. Also, a new `Id` will be generated for this event in the dataSource. - -* The parent recurring event needs to be updated with appropriate [`RecurrenceException`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.FieldRecurrenceException.html) field to hold the edited occurrence appointment's date collection. +* **Editing a Single Occurrence:** When a recurring event is double-clicked, a popup prompts the user to choose between editing the single event or the entire series. Selecting the "EDIT EVENT" option will edit only that specific occurrence of the recurring appointment. + + This process involves: + * A new event being created from the parent event's data and added to the Scheduler's data source. Its fields are overwritten with the newly modified data. + * A [`RecurrenceID`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.FieldRecurrenceId.html) field is added to the new event, holding the `Id` value of the parent recurring event. A new `Id` is also generated for this specific occurrence. + * The parent recurring event is updated with an appropriate [`RecurrenceException`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.FieldRecurrenceException.html) field to store the date of the edited occurrence. -Therefore, when a single occurrence is edited from a recurring event, the batch action takes place by allowing both the `Add` and `Edit` action requests to take place together. + Therefore, editing a single occurrence from a recurring event typically involves a batch action, encompassing both `Add` (for the new occurrence) and `Edit` (for the parent's `RecurrenceException`) actions. -N> In case, if you edit an existing edited occurrence of a recurring event, only those edited occurrence which present in the database as an individual event object will get updated. In this case, `update` action alone takes place on the edited occurrence object on the database. + N> If an existing edited occurrence of a recurring event is modified, only that individual event object in the database is updated. In this case, only an `update` action occurs on the edited occurrence. ```sh if (param.action == "insert" || (param.action == "batch" && param.added != null)) // this block of code will execute while inserting the appointments @@ -461,9 +476,9 @@ if (param.action == "update" || (param.action == "batch" && param.changed != nul } ``` -**Editing entire series** - When an option **EDIT SERIES** is selected from the popup that opens on double clicking the recurring event, the whole recurring series will be updated with the newly provided value. When this option is chosen explicitly, if a parent event holds any edited occurrences - then all its child occurrences will be removed from the dataSource and simply the single parent data will be updated. - -This action of editing entire series also leads to the batch process, as both the `Delete` and `Edit` action takes place together. +* **Editing Entire Series:** When the "EDIT SERIES" option is selected from the popup (after double-clicking a recurring event), the entire recurring series is updated with the new values. If the parent event has any previously edited occurrences, those child occurrences will be removed from the data source, and only the single parent data will be updated. + + Editing an entire series also typically involves a batch process, combining both `Delete` (for existing edited occurrences) and `Edit` (for the master series event) actions. ```sh if (param.action == "update" || (param.action == "batch" && param.changed != null)) // this block of code will execute while updating the appointment @@ -507,11 +522,11 @@ if (param.action == "remove" || (param.action == "batch" && param.deleted != nul } ``` -N> To know more about handling recurrence exceptions, refer the [Adding exceptions](https://blazor.syncfusion.com/documentation/scheduler/recurring-events#adding-exceptions) topic. +N> For more details on handling recurrence exceptions, refer to the [Adding exceptions](https://blazor.syncfusion.com/documentation/scheduler/recurring-events#adding-exceptions) topic. -### Restricting edit action based on specific criteria +### Restricting Edit Action Based on Specific Criteria -You can also dynamically prevent the editing of appointments on Scheduler. For example, say if you want to decline the updating of appointments on non-working hours, you can check for its appropriate condition within the [`OnActionBegin`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnActionBegin) event. +The editing of appointments can be dynamically prevented based on runtime conditions. For example, to prevent appointments from being updated outside of defined working hours, the [`OnActionBegin`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnActionBegin) event can be used to check the proposed new time range. ```cshtml @using Syncfusion.Blazor.Schedule @@ -578,27 +593,30 @@ You can also dynamically prevent the editing of appointments on Scheduler. For e } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/hjLyiDtdKlchXNgv?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} ## Delete The appointments can be deleted in either of the following ways, -* Selecting an appointment and clicking the delete icon from the quick popup that opens. -* Selecting an appointment and pressing `Delete` key. -* Selecting multiple appointments by tap holding an event and then continuously single clicking on other consecutive events and then clicking the `Delete` key. -* Double clicking on an event which opens the default event editor pre-filled with event details, and then choosing `Delete` button in it. +* Selecting an appointment and clicking the delete icon from the quick popup. +* Selecting an appointment and pressing the Delete key. +* Selecting multiple appointments (e.g., by holding Ctrl and clicking) and then pressing the Delete key. +* Double-clicking an event to open the default event editor, then choosing the `Delete` button within the editor. + +For most of these actions, a pop-up with a delete confirmation message will be displayed, prompting the user to confirm the deletion. -While performing all these above mentioned actions, a pop-up with a delete confirmation message will be displayed prompting either to proceed with deleting an appointment. +### Deletion Using Editor Window -### Deletion using editor window +When an event is double-clicked, the default editor window opens. This window includes a `Delete` button, typically at the bottom-left, which allows for the deletion of that specific appointment. When an appointment is deleted through this editor, the delete confirmation alert is usually bypassed, and the event is deleted immediately. -When you double click an event, the default editor window will be opened which includes a `Delete` button at the bottom left position which allows to delete that particular appointment. When deleting an appointment through this editor window, the delete alert confirmation will not be asked and the event will be deleted immediately. +### Deletion Using DeleteEventAsync Method -### Deletion using DeleteEventAsync method +Appointments can be programmatically removed using the [`DeleteEventAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_DeleteEventAsync__0_System_Nullable_Syncfusion_Blazor_Schedule_CurrentAction__) method. This method supports deleting both normal and recurring events. -The appointments can be removed manually using the [`DeleteEventAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_DeleteEventAsync__0_System_Nullable_Syncfusion_Blazor_Schedule_CurrentAction__) method. The following code examples shows how to edit the normal and recurring events. +#### Deleting a Normal Event -**Normal event** - You can delete the normal appointments of Scheduler by simply passing its `Id` value or the entire event object collection to the [`DeleteEventAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_DeleteEventAsync__0_System_Nullable_Syncfusion_Blazor_Schedule_CurrentAction__) method. +A normal appointment can be deleted from the Scheduler by simply passing its `Id` value or the entire event object collection to the [`DeleteEventAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_DeleteEventAsync__0_System_Nullable_Syncfusion_Blazor_Schedule_CurrentAction__) method. ```cshtml @using Syncfusion.Blazor.Schedule @@ -643,8 +661,11 @@ The appointments can be removed manually using the [`DeleteEventAsync`](https:// } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/LXLIWjZdKvmmBHUr?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +#### Deleting a Recurring Event -**Recurring Event** - The recurring events can be removed as an entire series or simply removing single occurrence by using the [`DeleteEventAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_DeleteEventAsync__0_System_Nullable_Syncfusion_Blazor_Schedule_CurrentAction__) method which takes in either the `DeleteSeries` or `DeleteOccurrence` parameters. +Recurring events can be removed either as an entire series or by deleting a single occurrence. The [`DeleteEventAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_DeleteEventAsync__0_System_Nullable_Syncfusion_Blazor_Schedule_CurrentAction__) method supports this by accepting `CurrentAction.DeleteSeries` or `CurrentAction.DeleteOccurrence` parameters. ```cshtml @using Syncfusion.Blazor.Schedule @@ -700,8 +721,9 @@ The appointments can be removed manually using the [`DeleteEventAsync`](https:// } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/rNhyWXZHqlvhAoqQ?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -### Removing events from database at server-side +### Removing Events from a Database at Server-Side While deleting the event from the Scheduler, `remove` action takes place and the following code example describes how to delete event from database at server side. @@ -728,21 +750,22 @@ if (param.action == "remove" || (param.action == "batch" && param.deleted != nul ![Removing Blazor Scheduler Event](images/blazor-scheduler-remove-events.png) -### How to delete a single occurrence or entire series from Scheduler and update it in database at server-side +### How to Delete a Single Occurrence or Entire Series from Scheduler and Update it in a Database at Server-Side The recurring events can be deleted in either of the following two ways. * Single occurrence * Entire series -**Single occurrence** - When you attempt to delete the recurring events, a popup prompts you to choose either to delete the single event or entire series. From this, if you choose to select **DELETE EVENT** option, a single occurrence of the recurring appointment alone will be removed. The following process takes place while removing a single occurrence, - -* The selected occurrence will be deleted from the Scheduler user interface. -* In code, the parent recurring event object will be updated with appropriate [`RecurrenceException`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.FieldRecurrenceException.html) field, to hold the deleted occurrence appointment's date collection. - -Therefore, when a single occurrence is deleted from a recurring event, the `update` action takes place on the parent recurring event as shown in the following code example. +**Single occurrence** - When attempting to delete a recurring event, a popup prompts users to choose between deleting the single event or the entire series. Selecting the "DELETE EVENT" option removes only that specific occurrence from the Scheduler UI. + + This process involves: + * The selected occurrence being removed from the Scheduler user interface. + * The parent recurring event object being updated with an appropriate [`RecurrenceException`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.FieldRecurrenceException.html) field, which stores the date of the deleted occurrence. -N> In case, if you delete an existing edited occurrence of a recurring event, only those edited occurrence which present in the database as an individual event object will get removed. In this case, `delete` action takes place instead of `update` action and the parent recurring event object remains same with no changes. + Therefore, deleting a single occurrence from a recurring event results in an `update` action on the parent recurring event in the database. + +N> If an existing edited occurrence of a recurring event is deleted, only that individual edited occurrence (present in the database as a separate event object) is removed. In this case, a `delete` action occurs instead of an `update` action on the parent, and the parent recurring event object remains unchanged. ```sh if (param.action == "update" || (param.action == "batch" && param.changed != null)) // this block of code will execute while updating the appointment @@ -768,7 +791,7 @@ if (param.action == "update" || (param.action == "batch" && param.changed != nul } ``` -**Entire series** - When you select an option **DELETE SERIES** from the popup, the whole recurring series will be deleted. When this option is chosen explicitly, if a parent event holds any edited occurrences - then all its child occurrences which are maintained as separate event objects will also be removed from the dataSource. This action of deleting entire series leads to `remove` action and removes one or more event objects at the same time. +**Entire series** When the "DELETE SERIES" option is selected from the popup, the entire recurring series is deleted. If the parent event has any previously edited occurrences (maintained as separate event objects), those child occurrences will also be removed from the data source. This action leads to a `remove` operation, deleting one or more event objects simultaneously. ```sh if (param.action == "remove" || (param.action == "batch" && param.deleted != null)) // this block of code will execute while removing the appointment @@ -791,11 +814,11 @@ if (param.action == "remove" || (param.action == "batch" && param.deleted != nul } ``` -## Drag and drop +## Drag and Drop -When you drag and drop a normal event on the Scheduler, the event editing action takes place. When a recurring event is drag and dropped on a desired time range, the batch action explained in `Editing a single occurrence` process will take place - thus allowing both the `Add` and `Edit` action to take place together. +When a normal event is dragged and dropped in the Scheduler, an event editing action is performed. If a recurring event instance is dragged and dropped to a new time range, a batch action occurs, similar to the "Editing a single occurrence" process. This will involve both an `Add` (for the new occurrence) and an `Edit` (for the parent's `RecurrenceException`) action. -N> By default, when you drag a recurring instance, only the occurrence of the event gets edited and not a whole series. +N> By default, dragging a recurring instance only edits that specific occurrence and does not affect the entire series. ```cshtml @using Syncfusion.Blazor.Schedule @@ -834,9 +857,9 @@ N> By default, when you drag a recurring instance, only the occurrence of the ev ## Resize -When you resize a normal event on the Scheduler, the event editing action takes place. When a recurring event is resized to a new desired time, the batch action explained in `Editing a single occurrence` process will takes place - thus allowing both the `Add` and `Edit` action to take place together. +When a normal event is resized in the Scheduler, an event editing action is performed. If a recurring event instance is resized to a new duration, a batch action occurs, similar to the "Editing a single occurrence" process. This will involve both an `Add` (for the new occurrence) and an `Edit` (for the parent's `RecurrenceException`) action. -N> By default, when you resize a recurring instance, only the occurrence of the event gets edited and not a whole series. +N> By default, resizing a recurring instance only edits that specific occurrence and does not affect the entire series. ```cshtml @using Syncfusion.Blazor.Schedule diff --git a/blazor/scheduler/data-binding.md b/blazor/scheduler/data-binding.md index 342a0243e7..18ace80386 100644 --- a/blazor/scheduler/data-binding.md +++ b/blazor/scheduler/data-binding.md @@ -9,20 +9,20 @@ documentation: ug # Data Binding in Blazor Scheduler Component -The Scheduler uses [DataManager](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DataManager.html), which supports both RESTful data service binding and datasource collections to bind data to the Scheduler. The [DataSource](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_DataSource) property of Scheduler can be assigned either with the instance of `DataManager` or list of datasource collection. +The Scheduler component utilizes [`DataManager`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DataManager.html) to handle data binding, supporting both RESTful data service binding and direct data source collections. The [`DataSource`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_DataSource) property within `ScheduleEventSettings` can be assigned either an instance of `DataManager` or a list of data source collections. -It supports the following kinds of data binding methods: -* List binding -* Remote data +The Scheduler supports the following primary methods for data binding: +* List Binding +* Remote Data Binding Please take a moment to watch this video to learn about data binding in the Blazor Scheduler. {% youtube "youtube:https://www.youtube.com/watch?v=EwfxPrqxma8"%} -## List binding +## List Binding -To bind list binding to the Scheduler, you can simply assign a list of datasource collections as IEnumerable object to the [DataSource](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_DataSource) option of the scheduler within the ScheduleEventSettings tag. The list data source can also be provided as an instance of the [SfDataManager](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.SfDataManager.html) or by using [SfDataManager](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.SfDataManager.html) component. +To bind data from a local list to the Scheduler, simply assign a collection of data objects (implementing `IEnumerable`) to the [`DataSource`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_DataSource) property within the `` tag. The list data source can also be provided as an instance of [`SfDataManager`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.SfDataManager.html) or by directly using the `` component. ```cshtml @using Syncfusion.Blazor.Schedule @@ -55,18 +55,20 @@ To bind list binding to the Scheduler, you can simply assign a list of datasourc } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/rNVyMXtdUlEzkzNP?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} +![List data in Blazor Scheduler](images/list-data.png) + N> By default, `DataManager` uses `BlazorAdaptor` for binding local data. -> You can also bind different field names to the default event fields as well as include additional `custom fields` to the event object collection which can be referred [here](./appointments#event-fields). +> Different field names can be bound to the default event fields, and additional `custom fields` to the event object collection which can be referred [here](./appointments#event-fields). -### ExpandoObject binding +### ExpandoObject Binding -The Scheduler is a generic component which is strongly bound to a model type, but there may be cases where the model type is unknown during compile or runtime. In these scenarios, you can use **ExpandoObject** binding to bind data to the Scheduler as a list of dynamic objects. +The Scheduler is a generic component that is strongly bound to a model type. However, for scenarios where the model type is unknown at compile-time or runtime, **ExpandoObject** binding can be used. This allows data to be bound as a list of dynamic objects. -**ExpandoObject** implements the IDictionary interface, which means you can add properties and values to the object like you would with a dictionary.**ExpandoObject** binding provides a flexible way to bind data to the Scheduler component without the need for a predefined class or data structure. This can be particularly useful in scenarios where you have data sources with varying structures, or when you need to bind to data sources that are not known at compile-time. +**ExpandoObject** implements the `IDictionary` interface, enabling the addition of properties and values dynamically at runtime, similar to a dictionary. This provides a flexible way to bind data without requiring a predefined class or strict data structure, particularly useful for data sources with varying structures. -**ExpandoObject** can be bound to the `DataSource` option of the scheduler within the `ScheduleEventSettings` component. Scheduler can also perform all kinds of supported data operations and editing in ExpandoObject. -To bind data to the Scheduler using ExpandoObject, you can create a list of ExpandoObjects and set it as the DataSource property of the Scheduler's `ScheduleEventSettings` component. +To bind data using `ExpandoObject`, create a list of `ExpandoObject` instances and set it as the `DataSource` property of the Scheduler's `ScheduleEventSettings` component. The Scheduler supports all data operations and editing functionalities with `ExpandoObject` binding. ```csharp @using System.Dynamic @@ -104,14 +106,15 @@ To bind data to the Scheduler using ExpandoObject, you can create a list of Expa } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/BXVIMjjxguCLKwbx?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} ### DynamicObject Binding -**DynamicObject** binding is another approach for binding data to the Scheduler when the model type is unknown at compile time. In this approach, you use the dynamic keyword to define variables that can hold objects of any type, including those with dynamically added properties. +**DynamicObject** binding offers another method for data binding when the model type is unknown at compile time. This approach leverages the `dynamic` keyword, allowing variables to hold objects that can dynamically add or manage properties at runtime. -To bind data to the Scheduler using **DynamicObject** binding, you can create a list of dynamic objects and set it as the [`DataSource`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_DataSource) property of the Scheduler's `ScheduleEventSettings` component. You can then use the Scheduler's built-in data operations and editing features to work with the data. +To bind data using `DynamicObject`, create a list of custom `DynamicObject` instances and set it as the [`DataSource`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_DataSource) property of the Scheduler's `ScheduleEventSettings` component. This enables the use of the Scheduler's built-in data operations and editing features with dynamically behaving objects. -**DynamicObject** implements the `IDynamicMetaObjectProvider` interface, which means you can override member access operations like `GetMember` and `SetMember` to provide your own custom logic.**DynamicObject** binding is that it allows you to create objects with dynamic behavior, which can be useful in scenarios where you need to work with objects whose behavior is not known at compile-time. +**DynamicObject** implements the `IDynamicMetaObjectProvider` interface, which allows overriding member access operations like `GetMember` and `SetMember` for custom logic. This is particularly useful for scenarios where object behavior is determined at runtime. N> The [`GetDynamicMemberNames`](https://learn.microsoft.com/en-us/dotnet/api/system.dynamic.dynamicobject.getdynamicmembernames?view=net-7.0) method of DynamicObject class must be overridden and return the property names to perform data operation and editing while using DynamicObject. @@ -170,10 +173,11 @@ N> The [`GetDynamicMemberNames`](https://learn.microsoft.com/en-us/dotnet/api/sy } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/LXLIstjRqEMwIAdI?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} ## ObservableCollection -This [ObservableCollection](https://learn.microsoft.com/en-us/dotnet/api/system.collections.objectmodel.observablecollection-1?view=net-7.0) (dynamic data collection) provides notifications when items are added, removed and moved. The implement [INotifyCollectionChanged](https://learn.microsoft.com/en-us/dotnet/api/system.collections.specialized.inotifycollectionchanged?view=net-7.0) notifies when dynamic changes of add,remove, move and clear the collection. The implement [INotifyPropertyChanged](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.inotifypropertychanged?view=net-7.0) notifies when property value has changed in client side. +Utilizing [`ObservableCollection`](https://learn.microsoft.com/en-us/dotnet/api/system.collections.objectmodel.observablecollection-1?view=net-7.0) (a dynamic data collection) provides notifications when items are added, removed, or moved. This collection implements [`INotifyCollectionChanged`](https://learn.microsoft.com/en-us/dotnet/api/system.collections.specialized.inotifycollectionchanged?view=net-7.0), informing the Scheduler of dynamic changes such as additions, removals, moves, or clearing of items. Furthermore, the `AppointmentData` class implements [`INotifyPropertyChanged`](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.inotifypropertychanged?view=net-7.0), which notifies the UI when a property value (e.g., `Subject`) has changed on the client side. Here, AppointmentData class implements the interface of **INotifyPropertyChanged** and it raises the event when Subject property value was changed. @@ -270,11 +274,14 @@ Here, AppointmentData class implements the interface of **INotifyPropertyChanged } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/LXLIMjXdAOVvBGfh?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} +![Blazor Scheduler](images/observablecollectiondata.png) +## Custom Binding -## Custom binding +It is possible to create a custom `DataAdaptor` by extending the built-in `DataAdaptor` class. This allows for binding data from a custom service and performing CRUD operations using the methods of the [DataAdaptor](https://blazor.syncfusion.com/documentation/data/custom-binding) abstract class. -It is possible to create your own `CustomAdaptor` by extending the built-in available adaptors. The following example demonstrates the custom adaptor usage and how to bind the data with custom service and the CRUD operations for custom bounded data is performed using the methods of [DataAdaptor](https://blazor.syncfusion.com/documentation/data/custom-binding) abstract class. +The following example demonstrates the usage of a custom adaptor to bind data with a custom service. The `CustomAdaptor` overrides methods like `ReadAsync`, `InsertAsync`, `UpdateAsync`, and `RemoveAsync` to interact with a local `List`. ```cshtml @using Syncfusion.Blazor @@ -419,15 +426,16 @@ It is possible to create your own `CustomAdaptor` by extending the built-in avai N> You can find the complete procedures to perform CRUD actions with the Syncfusion® Blazor Scheduler using CustomAdaptor [here](https://github.com/SyncfusionExamples/Blazor-Scheduler-CRUD-using-custom-adaptor). -## Remote data +## Remote Data Binding -Any kind of remote data services can be bound to the Scheduler. To do so, provide the service URL to the `Url` option of `SfDataManager` within `ScheduleEventSettings` tag. +Any type of remote data services can be bound to the Scheduler. To achieve this, provide the service URL to the `Url` option of `SfDataManager` within the `` tag. -### Binding with OData services +### Binding with OData Services [OData](https://www.odata.org/documentation/odata-version-3-0/) ((Open Data Protocol)) is a widely used protocol for creating and consuming RESTful APIs over various transport protocols such as HTTP, HTTPS, and others. It offers a standardized way for creating, retrieving, updating, and deleting data across various platforms and devices. OData provides a uniform way for interacting with data, which simplifies the task of developing and consuming RESTful APIs. -You can retrieve data from OData service using the `SfDataManager`. Refer to the following code example for remote Data binding using OData service. +Data can be retrieved from an OData service using `SfDataManager`. Refer to the following code example for remote data binding using an OData service. + ```cshtml @using Syncfusion.Blazor @@ -445,7 +453,7 @@ You can retrieve data from OData service using the `SfDataManager`. Refer to the } ``` -### Binding with OData v4 services +### Binding with OData v4 Services [ODataV4](https://www.odata.org/documentation/) is the latest version of the OData protocol, which offers more features and better performance than its predecessors. It provides support for advanced query options, data validation, and data shaping. The ODataV4 protocol is based on the JSON format, which makes it more lightweight and easier to use. @@ -467,13 +475,13 @@ Refer to the following code example to retrieve the data from ODataV4 service us } ``` -N> You can find the working sample [here](https://github.com/SyncfusionExamples/Blazor-Scheduler-CRUD-using-ODATA-adaptor). +N> A working sample demonstrating integration with OData can be found [here](https://github.com/SyncfusionExamples/Blazor-Scheduler-CRUD-using-ODATA-adaptor). -### Filter events using the in-built query +### Filtering Events Using the In-built Query -To enable server-side filtering operations based on predetermined conditions, the [`IncludeFiltersInQuery`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_IncludeFiltersInQuery) API can be set to true, this allows the filter query to be constructed using the start date, end date, and recurrence rule which in turn enables the request to be filtered accordingly. +To enable server-side filtering operations based on predetermined conditions, the [`IncludeFiltersInQuery`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_IncludeFiltersInQuery) API can be set to `true`. This constructs a filter query using the start date, end date, and recurrence rule, allowing the request to be filtered accordingly. -This method greatly improves the component's performance by reducing the data that needs to be transferred to the client side. As a result, the component's efficiency and responsiveness are significantly enhanced, resulting in a better user experience. However, it is important to consider the possibility of longer query strings, which may cause issues with the maximum URL length or server limitations on query string length. +This method significantly improves the component's performance by reducing the amount of data transferred to the client side, thereby enhancing efficiency and responsiveness. However, it is important to consider the potential for longer query strings, which might exceed maximum URL lengths or server limitations. ```cshtml @using Syncfusion.Blazor @@ -515,13 +523,14 @@ This method greatly improves the component's performance by reducing the data th } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/BZLyCNjHqazFgUHF?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} The following image represents how the parameters are passed using ODataV4 filter. ![ODataV4 filter](images/blazor-odatav4-filter.jpg) -### Web API adaptor +### Web API Adaptor -You can bind Web API data to the scheduler using [WebApiAdaptor](https://blazor.syncfusion.com/documentation/data/adaptors#web-api-adaptor). The following sample code demonstrates the way of binding remote services to the Scheduler component. +Web API data can be bound to the Scheduler using [`WebApiAdaptor`](https://blazor.syncfusion.com/documentation/data/adaptors#web-api-adaptor). The following sample code demonstrates binding remote services to the Scheduler component. ```cshtml @using Syncfusion.Blazor @@ -560,16 +569,18 @@ You can bind Web API data to the scheduler using [WebApiAdaptor](https://blazor. } } ``` +{% previewsample "https://blazorplayground.syncfusion.com/embed/LDrosjXdUuSITIaj?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +### Url Adaptor -### Url adaptor -You can use the [UrlAdaptor](https://blazor.syncfusion.com/documentation/data/adaptors#url-adaptor) of **SfDataManager** when binding data source for remote data. During the initial load of Scheduler, data are fetched from remote data and bound to the Scheduler using the [Url](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DataManager.html#Syncfusion_Blazor_DataManager_Url) property of **SfDataManager**. +The [`UrlAdaptor`](https://blazor.syncfusion.com/documentation/data/adaptors#url-adaptor) of `SfDataManager` is used to bind remote data sources. During the initial load of the Scheduler, data is fetched from the remote service via the [Url](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DataManager.html#Syncfusion_Blazor_DataManager_Url) property of `SfDataManager` and bound to the Scheduler. CRUD operations in the Scheduler can be mapped to server-side controller actions by using the properties [InsertUrl](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DataManager.html#Syncfusion_Blazor_DataManager_InsertUrl), [RemoveUrl](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DataManager.html#Syncfusion_Blazor_DataManager_RemoveUrl), [UpdateUrl](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DataManager.html#Syncfusion_Blazor_DataManager_UpdateUrl), and [CrudUrl](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DataManager.html#Syncfusion_Blazor_DataManager_CrudUrl). -* `InsertUrl` – You can perform a single insertion operation on the server-side. -* `UpdateUrl` – You can update single data on the server-side. -* `RemoveUrl` – You can remove single data on the server-side. -* `CrudUrl` – You can perform bulk data operation on the server-side. +* `InsertUrl` – Specifies the URL for a single insertion operation on the server-side. +* `UpdateUrl` – Specifies the URL for updating a single data record on the server-side. +* `RemoveUrl` – Specifies the URL for removing a single data record on the server-side. +* `CrudUrl` – Specifies the URL for performing bulk data operations (batch CRUD) on the server-side. The following sample code demonstrates binding data to the Scheduler component through the SfDataManager using UrlAdaptor. @@ -704,7 +715,7 @@ namespace Url_Adaptor.Controller } ``` -### Sending additional parameters to the server +### Sending Additional Parameters to the Server To send an additional custom parameter to the server-side post, make use of the `AddParams` method of [`Query`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_Query). Now, assign this [`Query`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_Query) object with additional parameters to the [`Query`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_Query) property of Scheduler. @@ -732,10 +743,10 @@ N> The parameters added using the [`Query`](https://help.syncfusion.com/cr/blazo ### Authorization and Authentication -It is common to have authorization in the server of origin to prevent anonymous access to the data services. **SfDataManager** can consume data from such protected remote data services with the proper bearer token. The access token or bearer token can be used by **SfDataManager** in one of the following ways. +It is common to have authorization configured on the server to prevent anonymous access to data services. `SfDataManager` can consume data from such protected remote services by including the proper bearer token in the request. The access token or bearer token can be utilized by `SfDataManager` in one of the following ways: -* By using the pre-configured HttpClient with the access token or authentication message handler, SfDataManager can access protected remote services. When registering your HttpClient, the registration should be done before calling `AddSyncfusionBlazor()` method in **Program.cs**, so that SfDataManager will not create its own HttpClient and uses the already configured HttpClient. -* Setting access token in the default header of the HttpClient by injecting it in the page. See here for adding default headers to HttpClient. +* **Using a pre-configured `HttpClient`:** Register a pre-configured `HttpClient` with the access token or an authentication message handler before calling `AddSyncfusionBlazor()` in `Program.cs`. This ensures that `SfDataManager` uses the already configured `HttpClient` instead of creating its own. +* **Setting access token in `HttpClient.DefaultRequestHeaders`:** Inject `HttpClient` into the Blazor component and set the access token in `DefaultRequestHeaders`. ```csharp @@ -762,9 +773,9 @@ It is common to have authorization in the server of origin to prevent anonymous Getting the bearer token may vary with access token providers. More information on configuring HttpClient with authentication can be found on the official page [here](https://learn.microsoft.com/en-us/aspnet/core/blazor/security/webassembly/additional-scenarios?view=aspnetcore-7.0). -### Setting custom headers +### Setting Custom Headers -To add a custom headers to the data request, use the [Headers](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DataManager.html#Syncfusion_Blazor_DataManager_Headers) property of the [SfDataManager](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.SfDataManager.html). +To add custom headers to the data request, use the [Headers](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DataManager.html#Syncfusion_Blazor_DataManager_Headers) property of the [SfDataManager](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.SfDataManager.html). The following sample code demonstrates adding custom headers to the `SfDataManager` request, @@ -807,7 +818,9 @@ The following sample code demonstrates adding custom headers to the `SfDataManag } ``` -### Handling HTTP error +{% previewsample "https://blazorplayground.syncfusion.com/embed/VthysjZnqYRnFOwi?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} + +### Handling HTTP Errors During server interaction from the Scheduler, sometimes server-side exceptions might occur. These error messages or exception details can be acquired in client-side using the [OnActionFailure](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnActionFailure) event. @@ -868,9 +881,9 @@ The following sample code demonstrates notifying user when server-side exception } } ``` -## Load on demand +## Load on Demand -In the Scheduler, there is an option to implement data loading on demand, which helps minimize the amount of data transmitted over the network, especially when working with large volumes of data. This can be achieved by filtering appointments on the server side based on start date and end date. +The Scheduler supports implementing data loading on demand, which helps minimize data transfer over the network, particularly with large volumes of data. This is achieved by filtering appointments on the server side based on the currently requested `StartDate` and `EndDate`. ```cshtml public async Task> Get(DateTime StartDate, DateTime EndDate) @@ -1066,15 +1079,15 @@ namespace syncfusion_blazor_app.Data {% endtabs %} -You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/blazor-scheduler-load-appointments-on-demand) +The complete working sample for load on demand can be downloaded from [GitHub](https://github.com/SyncfusionExamples/blazor-scheduler-load-appointments-on-demand). -## SQL Server data binding(SQL Client) +## SQL Server Data Binding (SQL Client) -The following examples demonstrate how to consume data from SQL Server using Microsoft SqlClient and bound it to Blazor Scheduler. You can achieve this requirement by using [Custom Adaptor](./custom-binding#custom-adaptor-as-component). +The following examples demonstrate how to consume data from SQL Server using Microsoft SqlClient and bind it to the Blazor Scheduler. This requirement can be achieved by using a [Custom Adaptor](./custom-binding#custom-adaptor-as-component). -Before the implementation, add required NuGet like **Microsoft.Data.SqlClient** and **Syncfusion.Blazor** in your application. In the following sample, Custom Adaptor can be created as a Component. In custom adaptor **Read** method, you can get filter appointments using **DataManagerRequest**. +Before implementation, add the required NuGet packages like **Microsoft.Data.SqlClient** and **Syncfusion.Blazor** to the application. In the following sample, the `CustomAdaptor` is created as a Blazor component. In its `Read` method, filter appointments are retrieved using `DataManagerRequest`. -Based on the DataManagerRequest, you can form SQL query string and execute the SQL query and retrieve the data from database using **SqlDataAdapter**. The Fill method of the **DataAdapter** is used to populate a **DataSet** with the results of the **SelectCommand** of the DataAdapter, then convert the DataSet into List and return **Result** and **Count** pair object in **Read** method to bind the data to Scheduler. +Based on the `DataManagerRequest`, an SQL query string is formed and executed. The `SqlDataAdapter` then retrieves data from the database. The Fill method of the **DataAdapter** is used to populate a **DataSet** with the results of the **SelectCommand** of the DataAdapter, then convert the DataSet into List and return **Result** and **Count** pair object in **Read** method to bind the data to Scheduler. ```cshtml @using Syncfusion.Blazor.Schedule @@ -1177,14 +1190,12 @@ You can download a complete working sample from [GitHub](https://github.com/Sync ## Performing CRUD using Entity Framework -You need to follow the below steps to consume data from the **Entity Framework** in our Scheduler component. - -To get start quickly about CRUD action using entity framework in our Scheduler, you can check on this video: +To consume data from **Entity Framework Core** in the Scheduler component, follow these steps. For a quick visual guide on CRUD actions with Entity Framework, watch this video: {% youtube "youtube:https://www.youtube.com/watch?v=QlzdcZTmOrU-0"%} -### Create DBContext class +### Create DBContext Class The first step is to create a DBContext class called **ScheduleDataContext** to connect to a Microsoft SQL Server database. @@ -1348,7 +1359,7 @@ namespace Restful_Services.Controllers } ``` -### Configure Scheduler component using ODataV4Adaptor +### Configure Scheduler Component Using ODataV4Adaptor Now, the Scheduler can be configured using the `SfDataManager` to interact with the created OData service and consume the data appropriately. To interact with OData, use `ODataV4Adaptor`. @@ -1369,15 +1380,15 @@ Now, the Scheduler can be configured using the `SfDataManager` to interact with N> You can find the working sample on Entity framework [here](https://github.com/SyncfusionExamples/blazor-scheduler-crud-using-restful-service). -## Configuring Scheduler with Google API service +## Configuring Scheduler with Google API Service -We have assigned the dataSource that is retrieved from the Google services within the [`OnInitializedAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_OnInitializedAsync) method. And, the CRUD actions are performed within the [`ActionCompleted`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_ActionCompleted) event. +The Scheduler can be configured to retrieve events from a Google Calendar API service. The data obtained from Google services would typically be assigned to the Scheduler's `DataSource` within the [`OnInitializedAsync`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.SfSchedule-1.html#Syncfusion_Blazor_Schedule_SfSchedule_1_OnInitializedAsync) method. And, the CRUD actions are performed within the [`ActionCompleted`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_ActionCompleted) event. -We have to write our own service to connect retrieve the events from the Google calendar. +A custom service would need to be implemented to connect and retrieve events from the Google Calendar API. -N> The runnable sample for the above code will be available [here](https://github.com/SyncfusionExamples/google-calendar-synchronization-with-blazor-scheduler). +N> A runnable sample demonstrating Google Calendar synchronization with Blazor Scheduler is available [here](https://github.com/SyncfusionExamples/google-calendar-synchronization-with-blazor-scheduler). -## See also +## See Also * [How to Access Microsoft Graph Calendar Events with Syncfusion® Blazor Scheduler](https://www.syncfusion.com/blogs/post/how-to-access-microsoft-graph-calendar-events-with-syncfusion-blazor-scheduler.aspx ) * [Easy Steps to Synchronize JIRA Calendar Tasks with the Blazor Scheduler](https://www.syncfusion.com/blogs/post/easy-steps-to-synchronize-jira-calendar-tasks-with-the-blazor-scheduler.aspx) \ No newline at end of file diff --git a/blazor/scheduler/images/add-appointment.png b/blazor/scheduler/images/add-appointment.png new file mode 100644 index 0000000000000000000000000000000000000000..3f48730b16e889201b0c2e8bba7a78d271ddb96c GIT binary patch literal 32788 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 XwmKbuO8ibsx>NZ(O1E>Q4ZZ#k;^@jo literal 0 HcmV?d00001 diff --git a/blazor/scheduler/images/backgroundcolor.png b/blazor/scheduler/images/backgroundcolor.png new file mode 100644 index 0000000000000000000000000000000000000000..683df97670a7137123da245cb0465debb4688b3d GIT binary patch literal 25114 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 literal 0 HcmV?d00001 diff --git a/blazor/scheduler/images/different-color.png b/blazor/scheduler/images/different-color.png new file mode 100644 index 0000000000000000000000000000000000000000..46e289bcfd78e95badfba0fb42d400e9ce124281 GIT binary patch literal 26069 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 z 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 z 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�dcT97ynG(2 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 bX^U99*E@7}ZJlxC4Gend$iaM*lRy3wAGZwP literal 0 HcmV?d00001 diff --git a/blazor/scheduler/images/edit-event.png b/blazor/scheduler/images/edit-event.png new file mode 100644 index 0000000000000000000000000000000000000000..2926e1ca87d69f70c0b38e20e825677c86390452 GIT binary patch literal 26051 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 QyZDviA=B^4dJY%=7qL`5lK=n! literal 0 HcmV?d00001 diff --git a/blazor/scheduler/images/eventrendered.png b/blazor/scheduler/images/eventrendered.png new file mode 100644 index 0000000000000000000000000000000000000000..8737e0d470fd489f634787762738d0c89caf2213 GIT binary patch literal 25185 zcmdSBcU)83wl*9qTM+?~E})SjvhlCCg6vmVus7q*VVZ2Tfxi(?e+2=3K7L@=QQ+X@-s`|;ulNjifk3}q{FhHS+Ug^_ zT)7Ju<`-LpfLok9cvZ*eO0^qC;vvXe*X2>Q2+)Rh(pZ)3Wsv$l;r~X15&Vh3)!@B+ zCn9!(KrdoIz$_Ua*?k7+_2pmQ0>4kHgzTOtg^POQ?@FbImJ6!qxq_K(XrI_syt6!T z-lV37-w;M?8)go`;$Xq=<+C~l2QplV3!GYmyByzGKH!FNa+^|yu~U?EgD~^y0Is&yZKEMl>8waijwGCNeh}&;o zuXb^pK^Kmq11xQCZ)<*}pH6ePTnG*fS7%T2alCg$ZFH+UlPnW`l;>DU);?&@s4txt zHj8MtRptuFDsyb#ku6gaOq}7d2(+yI$XR{zN6;A?4sj%RMVT zVV2`s5D|!max)Xmjn0{-mP&cHR%^SVVCGxsO&w&+33hQhAxT;PrQ)$9l7pXz?U7TQ zN$?z&=#Y_oATpg$V5t;~gnAg2O+?jdqeMt@p?j1oqrqHkm%w(IBYLih@}${`9rX(B zjl~Co!fCd;tl=(#aOrf_X2Tp|K{kXK>2=}UIHiInv?dy zpqwrmgyX22rFhIY(olEM;B5gKq-~{7*)Y^(x#wnhHe4;=U z(Z@rFgni;EglHSuXTw@us*?j8VJ_ijxj>V6F((+3gGr(d5RN??o}T^bY|^X(q621z(iRUr88PL#Q3sqmd;wB|L*Nr#IW z$c0bSSP%$YYhgObGH;?`QU?OpOy91cJb_?|vQ5g9mSVlxa+4I42c&4nGE8j4mhuVH zUIXVEm)c*g-Py>i$vR5L5XpUT_~(kM6k7_+0gCbgKx1nQQv$!+}e1&T#buqsaL z+@^q`sXKkyvg?FDXHzJ3;q9pbY0!`SBrJPX{QMi* z7F#_TySI!zqI416B$2pXFkfHO2 zDdD+I+UDA_5#cWkd}H4!oHvZxlt9ON;`#YG7fQT}T~B1p5*wpll@rpsQQ+K;XHk85 zSAF9>R*Ka1WM{22Z``&i@Ly+iMr*njN}p}ir;%t+%%7e2HZvLH9{LPC1l$HT!rt6B zKr%?{HwT41Zqp>Db2gW>X5$cXqp@FPCe<|Agt!*+#i2lgLyc~7amfu}W_#7sSe}e> z*)CZEE;t`oPoq|i@mV7)Pbht)=jqpeh0lFHb8ibi9+4?A@@lU(S`2oxT5`Ro7Fg}I z574pE5UfLH`H5K?XCelMV2!SjrfaNzdkxVJ=J0nuFNroA?1>CTw z%kP80x%q1S-lZ zTwzmF-RrAZfh;@d4{!c5o&AGPgz|^kTN}`;nOTUMr1%#?Loi8+8@12QdRc9_Hc)!P z`^?Ccbo&@2Cm6E`Q{qYa=Ki{eQIJBx`jUw?GsHQ~rdz6>=J?HMRx;NmV~mk_0d3}? zLo+|W1yp6yGQ`_@yym@f5o(DW%Rx&M8c}*GS4tsKwH&vbn!7f>kIdni#Bk-u-rFWn zNrFEGH4{skmP4Odi^S_}S&Cm71ZiNKl?s`8 z`Y9KWx0F0-ROpPonzF+5U=Gwca;|F}8ML!v3Cxe7MG(ow&zHeVDXCPlF^0+GaOQxo zIk_xUzEbD71qMcST{ZU|a26*tg3Vyf@-&v`tl;3-VNE_O`n|XJEN#_Ev1B?EOdI=< z3U)oSQFEN9KDXZJkgK9p(nMK9Vd!s=Hj<%l4^7) z+~iCPX9J8l0UA2%EJ)q+VdLEi=T7ED7nv^vwF#7{t~xuAm9r2T@OCLSohM-R%+<0m zPa|VB<3>H{@P5mTDDa_t?tEd32oAY`zMKVL;t&F{hGP7%wVO;dB-VztVl8-a<>Ba? zvph(tLjP>NXL;dj`WFlwS;e_er6PwsW>Cl2OSM1V*Vb>0me3hz5%pHD)S zg<^yW&XSA@dZBK(aXssX@I{9pLb@+;NHP|WS{ScgȢZuY6}%LVs#F&uU6g`%XT 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 literal 0 HcmV?d00001 diff --git a/blazor/scheduler/images/list-data.png b/blazor/scheduler/images/list-data.png new file mode 100644 index 0000000000000000000000000000000000000000..c409fb9a6be6e7d37688faef7dd32ce6567134c4 GIT binary patch literal 29614 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

Sn|^Q$i=yNdGGM|;|?5#Cc`ru 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 literal 0 HcmV?d00001 diff --git a/blazor/scheduler/images/min-maxdate.png b/blazor/scheduler/images/min-maxdate.png new file mode 100644 index 0000000000000000000000000000000000000000..3042e75f51e7b73430c55e936012febb91bfd843 GIT binary patch literal 54555 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 literal 0 HcmV?d00001 diff --git a/blazor/scheduler/images/observablecollectiondata.png b/blazor/scheduler/images/observablecollectiondata.png new file mode 100644 index 0000000000000000000000000000000000000000..5f9c02f66ccfdbc82fc0d12146c69476a3b145cf GIT binary patch literal 34131 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�!_GU&Oi zm_&*Smo$x_nH69=V#2~+=@f9dl-aIWuGS#6O*W72qHG>TrkPI9$nA3E`Cl>Nn}|_j zO|EfeGO)cYLA!_2A$M1T$@tF=_uc4tvc43elnDW`k(m!4T^Xd$QcdL!&@panGPadV z_)HWvam)PCQ6jkE%Pk3)`rD^6^>m!vRu8mCTg5e3on20b(ksI&$H;q?j@aB~(YD#W z`!hlcrjs0wmA|qmH$E}jJf5iBV@)@+r(O<@=N?~s3Pda3mDe*`h*m$2TRjQUdNMd+ zcYt3t#-At^-L!Yr-Q1z2E-v%1uKpP2yrxGsNKt38_g9gu4(5rn z5znM^diQ68he$_fN~J`X!qlrutTz^(G51z+q?9Yx5bfCh5RAlBx&>xRwv(s;nsB1zWRvX+1GjZmwCRv(LBLT*8ZC8 z+Sj-BYTdr_UlV(Md-cbE8QLw%(OS-{Nbu z-hU7-)6Rb{|9kfm^?$~E$Cd#Hx{GdID>Zk`{_ZXQJpSM3`r_>Ow?#gFTlgbk(QiPW8VUtA#{m*Y4Ke}U0>ErUpTivH0KdA2ZY_G(|*Dq(a^KZQ)d){`pW>vh*&HqO( z?s$6BJ66tyRX4Zr^rdMxitax>_W{_9h&*Tuy@et&M~HsRiz=ia?_N#3@(+WO**wQJvg z$xm+jt_I{rt3}RxURhY61!|@_Uj73tX;BL=q>}jBniO!^^$A!6U%7n!y=}_LGrO~X zopbya<`@5Q{_U5)^MK)=z%^)^Z3ESkJoU-ue0Ov3#mm>_xo15SZ=ab8uRs_W4#;fU zQ+jbny}Wgq&bc|3#(6nP*JFx(*F|pMBM54xmnMCF zb~b+ZlI`Cu6>?@bR&XtSl*WGf<;~!9g~1YgQ=G z+9R*7u3o%&v2xhjsL(k^kHKfYGJ=$@0vzw>ALqRke2f%Vk&ntgxOxqfGhKC}CCqOan|N#($mGmHKlP>ElD?8BV! z#}(jeLiQvgF14rWYVrY>O9mtvU#z+;1@h_{+oj;{$&9W~_dq?D19PZdfB%#33>Tfr U@k|AHd^a#6UHx3vIVCg!0CfyvivR!s literal 0 HcmV?d00001 diff --git a/blazor/scheduler/images/readonly.png b/blazor/scheduler/images/readonly.png new file mode 100644 index 0000000000000000000000000000000000000000..79699038d391b55d6945db189ae083d9f3664059 GIT binary patch literal 54565 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 literal 0 HcmV?d00001 diff --git a/blazor/scheduler/images/specific-readonly.png b/blazor/scheduler/images/specific-readonly.png new file mode 100644 index 0000000000000000000000000000000000000000..422bb746b5d33a1dac4e9547905a5008bcca247b GIT binary patch literal 56291 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 TBb2XJ$cAw8n443DBPQ!F(>lRT literal 0 HcmV?d00001 diff --git a/blazor/scheduler/images/template.png b/blazor/scheduler/images/template.png new file mode 100644 index 0000000000000000000000000000000000000000..fcd0286505d317d6a251aad551fce6205768febe GIT binary patch literal 29024 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 HHfR3_jxcpk literal 0 HcmV?d00001 diff --git a/blazor/scheduler/images/validation.png b/blazor/scheduler/images/validation.png new file mode 100644 index 0000000000000000000000000000000000000000..488dab4fd2fb0c9958010fe93336693b9d8f282b GIT binary patch literal 52804 zcmb@u1ymj1^C$RlcXubaYj6n=Ai*I7cL?t8?jb;McYV0KySux)JNx*4fB)Ipv$JPs zX1CAb^n2a6@2jd?@~OJjgvx)HM1seM2LJ#_U!}wq0RV^=004Xs78-O#k1P=#bON(i zloSP&j}ab%zCfCYd=mixDx(oz^q@fB;cTST?EwJf?vFpPe(OR*0AO_StGI}=i}uN? ztB3OJD)fa(mGIvr21?%m%7EX$h2V<^RZHfIXR*svi~jyhpe~!Ms|ovo z^V7Cyxx~?c-p>LI0UHh+98R4SPF=l9mKshS*7ZG+%6@!h(d3VM`uRS4fcsdZGqt__ zc-!I?dT=Xx{vRC)Ub%DsWH$# zju@Qjnp*cS9m8a!|Dh@t_X7RjTXOmxGXGu_3ma9i~t#$zs7gg|2D`QsztPdkL$A( z!)Av?-iQ1n-L6MFCuw#PRHIUyhSb-ku4wzzr@Gde2H*| zY7K=20nr9Mk$c5n)6whp(1X?JAp_ zC(mo@Iw3hKSp#v;?w8NizYNKTPPLReWqL1$EModMhH39c9X! z`cu6hY{o-2E3pX9HT!7^+}*fE52XS1mAV~PY~MXyHr}3X`W;`A~}1 z*N`@CoijH>OzTb=zGvwVjj&EI#9ix#u}X>J$%@EYc{630OKA4ukgnr-Lweo4lSrM_ zM2|hSYivb}#OYOL=C(`UId`z7_E~6azl1q!N12brbk2TbZ#u_k(L|VBxL+%2n_kX7 z>3v|y+$;sBR-wh@SuTIo@gLETL$U;H`6%cI0r7b8@c`1_2XDZNQYIk*IAiAC(j1#F zP^3&0vjQ1Hf5r33DX@8T6q&A_i#@f3G4Q{AcSFD@02oF|geC4yGwJI1jy!TIs#lQg z_lk2Dt~?eGnpAO{(K2^FF8t`xqUofKZD+osY9qOLlBy`_&zwgnjNbC@txT-UWVVS+ ztN^g$lDu2S9BiEZVd98zcBgLw!EL2Nw=R|J(1F5t}A#j zXdag;CA{p7(4w#jB@|)}M68{a@Y+7xAWG6D_cCO^aoVNd4d)^}U)JGpOGg?ZLQEiY zgy7u@XPvdLhjmA2U_I0kg(y6A!x+P}v4e4Nq|A6T?ou_41I#=T0fjVQ;Cv1Wy-=LN z#7P+`R0UDzTbVY%rH2C7rL>~{AP8$lm_MDge$gy_;H4=Rx2-HERG;uuqQdzd(+a?= zWb@Y9QS#v1xUJMxixvTzOnVt5`f`X(1h=6$Y@-zAU-LwpBF4noLpZW0-v|uWf0Im2 z1WwP`fDN>?0q@7qVrZq%yfX%9#34+7&3Px93PrF_1)T3lMo9!I{3rz2gtC{riUtd7RV}~=yZkBiKdCRPCE<)5HDH1Ue$ES|Ij02P0SyyBk z-3cc@$0{Na)TDu|EjR`X08`f!7As*{FHj*MjgC&Bel9*p{E_q|x7;9^UkB3w6r9`T z;s#@LH1nREJI(iX*)38eb*cf~5rGX(8QbR9kBOo4QhaELKs3z6eCH!4$pk4rK2_y( z44Q!vPeOai1O78pgv6ed<+H3;0N5k^dRq5!PG@=g{K#Q^(y+njb=kydeU9^b^NdUW zABX%zr?yA3`)A509Wv)6Y@hSJkbh6EaOt&4497%YEUn4l#yVghuRkC@!q88+=`p|A z|FF^yb|U`foAf9V=#G*}wVL1 z2*>B_Wf4-<()K}*_?yOTE_9k&7`1b`bYGGU$VhJz_tE#r`@P%ke84efQ__bN&YlXWb zIywKPn**7nE0{DBb;{T@Thg()aa$5kaI*)hL=Q)%cw&ZOQ5(p_=++o3?(rQne3QG) zEw$%2CS+)YoG>keT+{v@i_5v|P{qM>q(Q^GVk$7Hq-TWsYaW%T|sVt_C7K&whZpRI3MG>1Nc&wQpzr!U86rH|PEP=<^oax<;({kUDzFYYGXW8{96;U5?1!IaHOmnwag8=XBG=)%xEvo?WpR zA|=|#7mQ)BIxmT#R5|&AhDtQ1@~)h#Wiiu)T; zU@hIH(6(#R{d#b35>CarfbDD}!iSrs`Hr#Y_n8f+Y|A{(aK)ITesl%39o?f1>EZ14 ze$)5a+lSX+*BwqH$|DjzqOS&SuU+LYkv{LZ@`wY1czvpQ4fRTSvqM2 z{VT>6&2cBlpq>yj#U<OXsE4?h$m$!JpQ^iI%Ufzx}M&q$r^`nrJ$qV zvSZxQNL3pSleoHq&b|a3=nciu14h4pk9?x3_nP`+n^+-dk|lp%joVx8y-}qSg1NN{ z>f3bWn}k&g@`<;caa;b4eYN%H@E8z^Fq5I(%3n9ui-b?gS~#+c)12^f63;b;RWfk6 zc1F7OMnHboXmSc#aYK&h(}^#C%zSPg@wz*jOX10I6(DX{H$55w$RzO-+2Y)7dsm4~ zk80*TIr8h*P&6XWdtG8DxxT4_^n{ZL+oX$yP4?q*ZnSQz?cG!8?KzE8L3_4H9PosL~F+Cw{sA+hSe$*rC&CG7brSXeb) ze%DP7xHhOOJ{|`>gxaSv0q`WQtytMKjMpsJD_HskADA{;%8}4nH(?~=m38t=mNGB& zK}f;oLqyEKtziez#>2mZ+*-xgL;}l59*c1%F6dT7C&wH6c`EycTJQZS-dRSTm)g2Z z^Ok}5w$!-zr!L0%LXryAPi_y-pXs#uqU*)$dE%S2`3!j_;Dq52A#7CJZQ_}5$HL~v zUU{{kIRe1A^9YEn!GA;PIwvt@Y5T68cAS*B)rznIddwlVyOh`vjPYQaG5GbOVh%C! zPZI)dmzcqGwoy%P)G1#TtInU|ULwV{15(7Cz)f zTD_H%=@xx>dDsk;EjMHkhdQje=7I-vK|Jm6=F?>FeVu13zHcQspn1%w%~edt(;Cf{ z+ns`LoWFKD)(^srkJWbSvu<-8KJzn9uXGtgbQpe)JLJq^EFijT`EkXY>pmVaym(tr zMQClvWh~`q$tOrrHoI%MQ4Pk7DIL-BL}w_@!-X?G?WjZ3)n>47!|TRT-uR10w6!co ztFn8dq)1D4@Sqz9AnOKcB$#`u+*l3#bbI=WV~9O~>P}=tC%no%#!fx#nYuuZZM)Y* zEIHNB}R>Wn2!FvThc&?bpj6fW(bm0M?kN6%Zbu znb2uP^4NI%^G{Hz0x**1bKeL#z40-Evu4g)w@2E+=6Q+Ya(D^KFM^+uYPxfG00LFJ zxzY8}Fc<(7{5XWVnS^htRfe8~y|>)Fc{KNzhE@3pMXOE*C@y#9iV`ZVbKzxzUq5`+ z4@Q5PSsfAZ8f-pc&Z|$L3vows9JXK75TAhOXIw5hQr&c>)WIyEvT&yLyXN@hT`AN4 zPO`ju%uE|EeQlnbQ#RUn-MAvcoRZ&9WC8GO?&spsRE&EPfWB3MrV&*^S zfsLCH?o0LF>vKp0z8Ow#&_%=6{8lI1_Io1IY8s{pyIjORBWCZ|Zt8l~2d9nT#?7&! zL@*3R#}$j&(${byxG^wJv$NufUYsh5B!8;&RXK&7XE~{u!i0(1Qj@j zx9JSM$Gayn=ZLf%U(G%^TY3AqtbvGyX2%3gY;g|`u%+NNXm-WYdZ%r0X5FhBYXlNx zBYDaAJ(~l@3wA^Yi}E@=Zjnz|t6h#y&~c28*^=$RrezGQIr=BRA6h6(5pF&N5!lsX zzFZFi2&WS}D$9A%t4$jCB0`W){IWwYIW52l?M>FxqX}+T`3eNs&Z4gnKkox2#Mpn{ z2;4t0mwQ!(LdOBfRqqQNLA4!jQj@JbNSa2Oke&#;HRyj)@RD1+)?<~a^vG+&YqP91U}WZ$$MoU2%fBPofv ztkVU&HB=XEk(Lw_V*gshv|O}i&L8_}4F)dzbuVjj<48P@CSie0Yej#dj&Lk- zPCorspMZKp%&XO-tEPLFVuI17>2z&T%6!r$@fuC}qqg?@&BZ;ZK_VB8Kv^@3pGIw-E8I7l zC(6(X*4#=u$d(Sac0UtOO^V^or!)q)NV2-M--!L%b+gf1qBtC{5!*F7(Xwk#Wly9ftqBF2rIRz(TQRp|}<%__kJTE0MFd_k#aPX4pRvIMPJjw4CO zQX^qixCkyQo-yQ&K*69qHm&Cue);+!n`AHIc$R1-QKyGEo@m*7OUDz3!&Vn4edf6I zlP%RTHh8yjl~jWYdKQjMBYgNj*JyZwrm=c46^~7ECCn$S60g#|$fu^^7T5DJjrVJ@ z>uQ6ip%@*Qg&X&b(`heSn+0KH&MFKLtN{LiX$4wZ`xd%$nnOL*QDb&I0duzW*> zZeB9E^+oIMu)i$t1kc=sN~EsrGd;QSk3tU%_S$L4K6@R#zZvB_9pIgzlo_qB|HU!} ziafgg9Qw=lHYfzH?czPLys8`oY-L!0qPuK=?P~>Zveu)z?y6ar=M}&AZM9CBgfZ(y zwxHvp%XwCvZun!(TZQy|;yM(QQ%gdl!<|${Np;g55uu%M$D7xkL+1=nlHC+!wsK=} zJkCm5(^^kWkBraC9W5>Sv{?n$DBsC#YhF?<9u^sua_;{ckQA6~Zd5k1ELp zBNM0FA|k*ygiiFubRkO=o3E8TlB`hkhuHFQGq+I;!mv`I>X{t_r;HtYPd zEi#L)Wx8N*j1}vRYIBo#Uu0Or67|H?8SpCqqPv9xoF|?)@YmMzbQ3vyWyAIjMW~^t zlELXaNhx9ABOiv>XfwT_!O}6v=-tr%tfu*PF1@TBQ}Jv)j7}g#aauGy7<}GMFUbn4 z04IjJ@FV089oq*hWsa;6pJo-|ACO~Oqz z|Mg5`(X7Ebb)|JU8x=>>7Z}D&YH-BA=w9;`NusMk7BXYOZ?tLs+Ej%c8=;$Rc6YgA z@Sx2~2b3lCSqgQw#N-1zj7D1P!55z|iskgreZvP5U27LTXLq4!Xy?{r)B9L{GoM{zV-s3%G<0G=U6gj@)o*8l zEebjLy0SK8T-JxpC|P&b-mHDNucL@jB*CnmSPQi!z|<8-GbPU~Ph&oy!aeT7^Mz`T zc*A#TePBNXcldd*rDJwm>8BRp9;6v2jRlNiY#^~VfJ_Vigs*@oxnPAX81tc_0XWj8x)D^`=KdIVzd0&3y++{@Jt*J~BPE5~ zG#s5(ETFpAwl6F!0~MuOOJUU|E6dgfV>&})XoA=k%Bb;l2If`@|8;&nIM3i|DCunzu$}$U5d*x6?6gUBsBu9-_g#@fH|$_cCh() zUNBl_l~Kr{{a8vt*{;XfInVUwLhk43f~D4ymoHzZ@*K}MT=F(sSzA$nH|JeTuU*e# zyIGbrX1I}u*Q4!0g#gYrK{rgC?R-*3Y3H~5lP;!icWBvmZ+uc-oVpjwBr}b{RQhGX z50zc**Es7g85kXPT$V-{Wh|2q3=SQH0M=t+trLFvI!qdo%m#G`@tS4$)tvW^h<}^2 zvmE#fR9szS8m!=HncG(ZrTRMkkN57v#KRcn3g0xEO}zGaJ2BSO$jQeQLz%S~!EvM0 zFO`z(oW#G}Sd+#ln6v_&j%JEr5fR0Oed-LRuba77MYvmBWj!dL?)l&(5haurq5W6E zsE|kR!tC3%sgW|6|+x}wG;|a&_7ker87^I(39=XlI z>!z`f_2L{C{HOT0@noavcWvlsNQkEsM%!3PU{W~XH}-36xk(>|^B9B&>5o#nA%ZoW z%d4{#`+sWb9RH8C^d0cjcF+SmuK&Ll<3WY{omkAq#>Q6t>=KUp8hslZQa3lZiRBVc z{8zdEY&Rgo2X&@nU1$+EFJ9w|dYLz9yVFV}9#e|21gv>nE{{-=|^B_*s4Y)h`cPGJBz*Ejz#+>it#+;Wo#()>U+*LN|gn_vOZU1V57Zi?Y+*zPwM<%y|U^-1mzK!u|*k)d?tlU;q!IfH~1wV zXYS;=*uA0U>|G6yCtLP>o+@C*9|3FX43oZ^TcerE+lP%Anz?WY;k#5Yi43zTWf{ku zy6?3&cv9uMZ>eTU9(8%+eXZ=0xK#4q)lOq4n?nYR|M!I?0Bu+pcrwE{IyjLTUXXq; z)qAa6ivzSQ?|n$I>b#w%)}88sOT=_X4ost!ihqyD@-lo|aojo?j4f@aQnt>HEAoi9vC+OdSXv=lCZXQePxy(2Hk2r$HYbMTLAi4K$X5;@JNm!;0 z9rvz|WUzC#X}y!(1&sBz4jUhisnhw)|t!LTL`Q%A$LMgf1{#AHnWi5Sp-)Fd~(3nOXilkH;tTYpg?p6v6A_CYxzh)e+0qZ4mRWZ z)-?Cr_A>T%5BmaRzRKw-pL5IH3IlqPSFO7V<~|tf6V6`^i$IHKE8Q_UoAXtnPDUkig}T+o z?U*tN-K#jMxOfB|Y2|bYu_vi%*KaEBmrMNxFjauqfMdLE=4`1r`>lIq3f zBQMGvge#*#>7Q6e&}P$8QmC`d_y{)7a;5PC6Z?!gjxlCNO>xl!3wL6qBq@?_&OKG2 zhFBmc(O5<#8Duo5TgPr91y=c|4<4V6ZMbX(R$7$o!uz@(GCguPU*)X%BTg-B+-rjT z*AJHPG!12*%lM`22mhm3RX`Ydu2PUk$o5`}f7A6|`yl#gK*Vpu-*Et6|i-QtgK_4Hf!J)elW;$I{o1K_WpWkXC5}JP5 z>NC=qi(6bH9~LTaI2iMy2w#t(UK2h{loUO~mBkNRT{4JPEXw+YW zaFm-OyB3)BY2M+XMAjhfNk<$rySL`AF$W&kjw)il7burZ?3mHM{!=GCsN4@ z!w1J5e~u3kzd`kku0(TW-@kB!FPSGt8)R#9DyEa?0+F_fQ#FHvd-3OsihJ+ou!+1) zg|%rq-7i>OexaIQ%)z-Xxl$1sabZ>d!M?O=NldCxxI-Zb@+zmRk!)j;SAZpE$|ni6 z!pl>p?ZAkg@r=C%?dAf~-)SFoi$_+mUDk;;ZH^f|xwd{DRMR{9ZD$dWc*^I$+H|@z zqioh1#=g+nx>Cr1#9$60D+?5%e%awfTR*kEOnWMr{vheme4gw|6AiKG^+{j|3xh`X zu;Bk>!_D&kNdf_TbOzaWE`gS$NJ}M}U+zjOmjX+Pq0Au>B;YX;a^8In))X;)0Y9rv z@>NEBZFd81785Q?ijF@fTYqV%%+xc87{Paz;X2^cQh7tX-IfO=B=BUAY(_bmaW|(a?t~lf}(fY+zMR3Yc z%6>gfbOd-KYl!g0%E}6uct8h&vmeN3a7WK2y#;4H?S7N@T9DslEp&hMzaY!@kp15O zFrp3<|9|P*_}{=K|1X^&|Dzcdb-#cAo(^J^C`}6%k6%ib8m0Ss2fwwoRsYZOC8%`- zgvq+?_tIR}TB4cL*aJn$s2?eHKAXIC#qW>A_gATW{~ncSxK%r^Eha4Nv-#N&h50dW zZB08t=mW8JI6=oq>UGF?`IF#(AkMOdC^EYUa&GQi) z>pbJWww0FU`mhCUH!5ZQ&yDeq_WAP=-(11k_%(xmI-;QRz=}ym_1BoGgHkJs)`5`P z>p90e+`BU&-{L){8yax5_}@{3>q%iToBCgmnCHflD$9=`78-I8l+IhQt44p!>X>Xb0*uyCMFa#G_YV`OKn z<@|rkc!CpFa!N3?Ld5MP=p^!`NmyTRzVYl=@@$cZIq&80kP^+WS7BBIamxg(57qSV z{v5va&1?sdOEk3IL|5eFbD&7~-joD|@J$LI3;1_KMG6mbK6JK(O38iu@`T0PU?%bz zT8lxl^J{Gb3{p*9?1Fa%n*WsDh5z~YFRH)jB%+eSsJJ!#V-k*SHzx3ILY{xanD)d( zo^Ot#v~~FQNl~VhAv0&Yyz6lUVd`*TpZ7*@D2cSS&8^TE_4L`K|8yJ|3K}OE1FA67~7IQBm*6 z_FufcUPWpam7%`VA9Y;}#>Nm*8c+F57f!Aq^dJ(!4;uab9bgDRibQk~80|f>o4J$F zUs0jR-M5%9m2F|e)GDA?7>*`FnSqa#2(2+M?9Fg+ZCugKHL;|0VS15aA-0L_63P(Pc0Y z6mL|Lu{nLnLh9JoyRcSt9-pF%r`Q~j@FGWku!0Jm{zCo}txv zpuMRuO;CUGToS9;Hdw0UDHLn)%Jf@U&%^m@$oaQ#fkO|&FzOU6*LOy$Ai^St zDsLmbH*2}y0_WFWxw%dReC^Zp@%kIv{@gl8^0;H;axftKm!KF77o6*@rdS)SYMgIw zYxQfooee}Th1otR;{<)jjn1+FxKQ`P%BJ!|YJIw{%&EZ=XyP@6;zO`u;=qdS9}rjB z0mGjpoqqJH+$INbCgWbXmEGN`0>n_UsP+IM5uy=RSww8nmTXs?Ac+-c29&UP-^s2T zuu)SZii)X&ad|Z1sA%b%EjR8ji%IWV2dcgHw}B;CIwJDm=HMW~?Wfg{t0B--mO)SF`67RfF204_OmIiT*w7@Xx! zI(va8FA|9%IWByKHfK+~PRwVWDym)BsDPx43a!y}=LTb3{I_0@FVX`FLc5BNW6lLE z%{GzW8P6&sBWxmkcR@v-8M{6t-bBbuAqP+RdXYHd{S7Gys-&u_J)C5O*jEH+xbpo+ zP6LkXADP{UJ3}00bpw{v)@I^T1eIsO-o7qkL=tYi4^CRlKaqcPC4MAm6RwnHCP%6u z+h!54L}f}J>W3k?wk<6M;iG$l;ZHi5PV%{2KdLxpe-EHkzDle`fHCtL%3mSM%78U} zSKCTWq}8S31^D^1;sO-=x25&OcQfNI2Nc1RpX|Mw74x_oT#hK|+$dt=`{Mcd)#V-& z7F4JFOQEtLzB7gA^or$g)QVTvDp}Aj`6M`_OB}M zzNbb8%M2*aI1?5w$H69s&x8@cPA2sCe~b)bUnr-r?)FI_#0=@|T++ZE{03uW#M2?F zB2Nn#xI={g<<8vH)TuCQ_M?PL8gwMhTwG zUZ~FuguxHUGO)XNT|Vm&a9;Iww`vBvE)VhF(-dH#LGF&zcfG>)7Zn97oMhleY0kq# z!VM?{btc$i)!h#efU*l1tpEuKVZ0y~EqHnXIW|bKU@%ifF$&`>m^3XwHhC6$^#HqO zsdz81uIW#@1%_)wt%E~Io1*?MPYvemRxw$M=$Yk^tE+I_xW9f``oykCvlT9dnSFuK z(5B_`8Sfw>%27miO4BP(6um#3NPrv#7uBu`q(FsJg! z2(RHALxE0pxWnsq^h-WmDi_(L;doILjQ|MwbNHgH!A}Q>-ybzwVSCEiWK+H&LueM+ zJww0UD|pY%^`xQB~QB=2-48qSC8I}hsxh|iCQu!R4V`_`{ zJxIEtVFd;4FzfsB{^sRjTUKLoY}t($Q8_FgJGT5jhs~KWq=hR-vX5a8xBCyK_jr)` zySm23vngAXfTFT;Fz8+b++cS1mPGo3?V$mt)TK)_!8J$Rz}+UO--1g%etjZR>8weS z=FvG4o8{w|yO)Zm`%8n}3zv(M3ob9@Q+s1ysQ1s^8p#rQ7_qXFMJ+UeT5+Y>CoFYk z16>EHRZBqE8xPe2W)Bo}85eNsK8?OluY|E>0yg`+H>i0HtgaC(g8l z4cmb*tM?jH&i0BKAw9#SSNW`_54jtMu_iYP#+FMj66N*&NZiwiLL8?AnPnGj$T|`o zxdbUYE8v@nv~5cRctHshDd`*CNV^q0x&>d$C?@>773`w@*ynMqZE?omah%ZI(BX}W zjPa5RbGRSaU}JSeYdGEBIP(82qnHC*gM54d-M2*_6=MzamVb(9FBSI=b?Kj+p{>$~ zroBxx#)({!|2yc}p3ZKKoJ=HOvi8E~&L=sZMED;(_57>4x*81=Gr$LMs%wmFMxEl~ zwy_Vp{YbS({L!3zMp-AYL)_Mfy&kR9$5n0qrkKl z1dtaTSf-=Uc|`rVRTaox@7Z#C`^Op7`drnLHHAsAg~Q5S7Om}NFe=DO_kdpw4|4F7uX?iA<-87Z#}^g zKsBfGmsgj_{|nIOPG#3=Pm5}8&)^$RY6S*b{3pd2ig~`M3Qo|(_u(B!NHJWCcVlf#K6?YkO8b7uAsbrVZ4L=V3-=E zL2j0fTLTEK(3}11a1!El`OuFhaCM40t*2(B>5OqIlgx~a77_^UBehorg>VwsGY=*Z z8`-|3b&e~GYlqSMq;@#aEnda#^bF3be_mA|KV6Cx%D32l4m%ZF+9)91Drp zgjA4lfESbx2Jer6^1;Qvw9a&jek&`pcuTR*b`0(f&kt=3q#cguX+Nju&gaW0z?g$M zp5dHfT+2VVH3u!>{*xxP#PBV1l=J78L>WXiN6WPZf&ocvobxtLF1565o3FclKGsjE zA!l^Ec$>Gmo%2jk@DaHlI7Ns%kmyFbsEDW8=7HxA0~J2VRk{1H$5RbVr;pl1e!Xq_ z+}!l+>Bw(4CR}PNHTIv}wI63JsQ|g!vGZ{6zi)rVQUlh;9=cs7L7N1czb60VM`f@pCC;a9<-Rh;&m zerE?ESQ5%|a<7Gkr-u)Ns6$;QFSm+q*h-8#J3jELv%9|>1lh)|$XVL~kw6>!Gj9`c zK#PR@W9->RR9!fG|IzuY#qQa5?EMy@Hp%utuhlrAwq(@0&hvontgUA6EYO5>@B43i z554r{_W$B2Wh{w)U%1JyL_3@duppj6AG!Go7A`u5e~0i}>xZTw#iggqnEtX5SJ>Mo0LoA5lk)18a*kS5b7M3taiyG-G$19EYJhoeqN5{vuTRm{8e9qq)w&Fo3m)BVp z^Nx6V?&?E&Y~+5OOdzqv1S`>YgXHHsnPkwzpk7x8a|9Cp%m8kE()# z@7bBv*JN(}j^o}HSF~k!3ytCXyStAi2#E~EuKtkL07P$}xPiqSmQ(HhiJrBqd&BiY zTW(e)!f%KF+Czzd=Rjh7m&|2hKBb zRvq8EJLou;%IjZO$Hj^Vn3$UjVmBEJ8Po>ZSAv~dp6!?=6zM3{~@}1 zajCC5FM`#5IMzNaJp5Y_TR3PpOhVXrZS|QguA@F!sA}BFT*7L^ zZE%k@SLtqwQZ#t=?rnd~&60zWQ-TPEabrwtd^qE-C9T-U`m7EAy-Q~_iU2JNp^}D1 zcvKWJtGcSBB+M^!^Ik*X1|OL9s@@4dUTBdFw%+2OFNu5-kr3G6!%bq3G!cmrM*mzT zG_1wcHThaH`e-~moAomBaYiz+EGFZ*k#X+XqF(^9)5YS1BQ41HK!%y~uL ztBDNWkx+LqilnqO{MPn%nV_PgB8$g^%_XXKrwRBPb|g9)-8Ki6GMdlNoYSvme1;sd zKXQB}^86@EWu=7CXC`Wvep{;w{Q89+lb9(knvFjDX%tb0INgVG^ebjKSS8cM7(NEA zVMDY4Ry3p0exbB9I{1Pyzu8FIfm9R2ejg; z!g=K!1qd{0sVxJFxvSC1xKwdReQpGla$_RKNmxAiX&L1ig`oZidt@I1mO&gj)E1MGX!v2Ypdq2 z^bGJoZh`ztv#w^pG`{k$^+(#w>J=5{9{raC`C9SFHRfg(Y4RRYGjWs^9BB zqv^hpqa&?WFOh;`rxq!3Xs863trk(S%2%n1{oT)<=|kN=)y*F(DiQy&4MB}1$GM>& z!`#Ml>f|xwkS&1UEMJ>NudArSD=eHoXPSM|DsGGfg5M}K2$oziPP+#9Zb?C5xKY?MiMmdAD^P6k0`a!@^bmT(+{k3t0B_!drp zrqxka3ln7rGw-?(?>G@~t*z%P7NqqovxD9uufIzj+xx&aG0xR~lhJbdra za9&`Eb9wCp*Bv4s8U1}4H4B|wZU1{#F_S(cy10i>mMhuYoL8r~ybhYBzR6A${EzNi zddt#_xM7lKS-H_MlvP=3_2Y+yQv!>duo?H%q~m9&vPD!J%Mw?ZOKYD~N9U_+31e76 zwdnHYH@lBG^nprZ(==Uehlxs>pV5^!_5N@)+VwH)Y7A?eTLbaV(;hD;BY99=Axcn6DSvE*{r z*GMn@?sFxVajhWJ8K1MOv)Qd|`6BFd>}67$kEDS1I&D^vkdW|+I%!~ROhR5B6&$?A zv$<`$TZYMiRyQ!-L-P7$a&0YY+1n0B!pM-!{AG5b(!Tx&B*5n70ZulR4GE(_w)=AX zQ_l%lrTx5B#LxiS^FpJ{n={!5yg$w}W?b8T@kv7E#&-;WLs zI#S-Jq)Y=Cc<2VM+s%M)_i9eO4u$`ML*=URKkUUY0&u zy^UJ)*x&6X#Xi+?er#7J5YX*X!KumHP8?=WIHUXWDf|-Xyyp0P-Jm!WV)$acPMpd_ z8^^ylmc)on#KMS=wC1(16_-XQcD_5T&jnJR#u&i^Bs_jxVEZ*$a`Nn-mwaPRZSQ@t z07T*yAn09~MyG^EhaZF0!6i{*Z@ys6ct1+`8Fo|t`L*>VRwC&<^z)W`!6+|x*%9gw zL;tC#m(_57Mnb{D0sy`qzaxrRD^=rvd;&?(=lSf-wjHL~ZEwkSZ%U5}g=+_6F&qpC zV?PUZUc9|fB9!j@#5sM@onqzlbJb79+npFc(vlvZi<6V=9L2jQ_v8>aJ|>X<)AvsH z@i)A(vZZF`l$7`7nVEoN9B+~wwyKN1ly|n=<9#fXsAl-*J8vT?=N|6hXx*3D#fGio zuQWV2k(B2ri`9t&-eeNdt>`Il)xE#HP9AJmocgr}@Vz-fs-d@c^0-j*D0Fam$Qt+9 zZw@q2mcX`pAJn4ZbHqm}bHP;K21@iT&|h9ZlL&jhs*5e^yzkk{rm!N!n-piN*6R); z33U`kFuXi*M-zNRl9*>anAQ&oA03Tv-Z~2sUg)X;g_hjyG;dqVKO=uEBjkcjrN&Tw z+^4F7QbtU8sI%wCaTX_8YGiD}u6Cg}aR&YD{5tIV6(^WAuX}-j;9!H!7gty~ya?_! zH-dYi2Nn)|q(8B-F`w-yXO6H_KWkYn+|L}^rSjTC11?5mD1v;d>dJ|Yj0#viT)?NM zCGdv$^kt2q`*e7bPjQ&Zy~nk`u2pUa7M7Qb{9K~ZWOt+k=pNTG+gz79Z)|jeM+}a1 zL>$gAgY-5&Q}Jb|R_I!;eFz7f^z7509%99=jdbpyW8W`INNzC{ayBM^Y>>>L)* zkNJT^pn+`XL9d&IoEJ}FQsIxmhtqmK^w$mqce#5^$duO=_S35TrWcx5_4i6wOfW_O zR4i2*QIXo4S|y`4hE?Uik%5GPF*p^PSJ%`n%E^K7cG**p`)O(J*|51GsEe#(zBgJCTP_+KA`v@knN1y%9-{ zzfRGP;Uj?Bp9v+$WvTeaxn;p5|9Zpkp`du(6qj>W zCMH7OJzqKFq^bTgyb*)6)@k>=bJ2d^X0^rjVJzY>=#^cfz(8~E2L}g7_JLvLWQ;F8 z5I2}))s7t;0wPPE#%8p}OiEf>{JA$=z9bJpA7m?&9p={UA!_R`Fs-c}+wE=u(5b|_ z#sBUuTwkG{eLkH%!78fu>R)65-9kL1#H1?&>{d)4NUw?l_1*PcWvu#79-1xGx}(%t zEi++*0a68=k$*WN(9w@?B%7Paxczv)n%@U>pswT>M0Q;PpVm(G!qtg;%-7XMxcjrXN>xL<|y~Sds`S&5NYDd*r$d!w_xr+&Kns8ZAo0ASonq_9^GcwnmhF23A_D+N<9DN@fmT11 zZ7R4X=B+>Vpv1;~1ex(n6eo8#rtJcuHaxgXvCCL{EBKIOE6`3~KWHPLpe>qY^+hbUzcgt{dud_e z$A^}K9D|4Z3#7F4(8SD41V{mT8*J4<@i*8yituCEC1>ztHlL(?Prp1->bwi)SKZd{iD=)E-i9;QVMm2%RZtXasw=zA}MBJiD=hkuotM zqoL6u;&Z^Fyy)}3JvgKfZm(sm1$O$wfPx8XwaF+XfKcFx@$U2;of}H}Q8)GXb zT@W4=_A1{?Ab6b5_{(3%oMpikObq4H19Ef4F|k2SSKFU1Zacv#KT(lM-X{Y{IUOkh zx;>!iNOn#eyS^JOw@)U?t(@|~fu#HMmzV9b`-#cL(2TbSW3h@793rfLK7z`mTO`)4 z+@vDFGKN|LqS5KB{uJ?veead2@-Unzmq!@=$I z(b3UmS2#1Cl^EozpQ?4sZJpjGH6SQ`#XlHX?_Eu26Vz@aE<1u65E!V}rJ|OVl?9f< z^$z0?gVdE<@(KUWJ}^rxSbwf|erx6N+U4Efdwb?^I+4c~Jm?c8?vQLsGE$yms8;j+ zMy%YtjFnjKJJBsYGhcCSEfUC7!v{e?Zio6ww;r^FAjIX=gBXe(4glx}i5om>)#tos zmwO1owA!8WH*#eA_V~<0+^T)iJ9Ir6jg=vwp{1p`I0y?i!iiQaQhpc(l86`@Le5z) z1e_eQvzm`NCUWk7)=U#1^7ekj(&U22zZGc2!iuM1x%tezkiq9Al0%ly}IRyf6KF%RloD3Np(BDui}sXB9S`9wSKt zGP2MB*>nfaw^#3Ty|oqIk1k#nN6s;w2A@kcZQuR(C!7c(zCL*_1_sb8fBSp@-6|TD zr9y=el6U#I1i`lI29q-@5ug*uom~F$2o&{&@wO$=b~yv$@=;^p zM?#wv7f&oMh7$Z`>?OJK+P`2quBc#nx#Om11x0-~uv9*G zfwJaaFsrM^Y%Ik=+;aaNbV=+E!CNiHyniqc%@zG$I4+%{@sp~g^N*#bg6)DGqG!_C znT&j(j6b>k^Kvqi)$uJTh`s5Q3;(iPuh0a|PJU&vtK#_3KWvUjv6^Xqe7yX-@6c}9 z?JmDtIvteWm)iES@@swIY{`FcwlwQv*}wl3WN~p379L&{)aY!TAkY#3s-2rIEoGTa zkKJ0BSwaB1>uNK&66WJSR)qX~rgYBKyY8mUUw>-P++5Py8fekfm~r=aU#{Q#iQw+S z4cA^E=dQ|$aNDCYcz){tVD7D>s(RNoP(TEvlx~nlX^<|JE&-L0l$HkRMv?9=DM{(> z?(XjH?&f|AfBWp;KKsNyx+R1*^xE%Ux+8wm?JcEX7zIQf*Xg zr`&IMi=z0MOSf_sCHbczl;d?_lEq%d*BG6e4clIXzok~rLjJrr6lTQOmG)`5gI@?p z$oAU0AkHKmqJ{CI>Tb}CmHzaNx%9f=C2s)W4F!VvFXsvnBkiBRb$WJbqZpz@9&)Bo zBaW`L#5%{fWj8M z^6-S4ahzvl*1UBK(;}Lf z(@t>jfMc?|D@G9ED@x+>Oi`w$tAG(Lgl%n$s4mvge zRe@>(sGYq1Is5xZ&4*@Hns|^lBNOxDf*^Yd($elI$3pW)-kamo@_~toAKPoaja?di zuxTta2ZVq;0KrxZg;)G$hLg|LjxWdez-&8;#DH|`(ju_ak)4k4jL+o zL9GeN)%Edy%{^&eOk{xm{Q(c1+6|wTt#wLqHWKwa%*8X3S^uE9dmIISd+^>2>L=+D~*XUF_w2+iQVm{CBW~j^GR?nC266f77E%nLwecG8!cW{mG z`V~sPyaL;`obg-{mhIhz!V3Q(?pl9*z_qK()1nNiw;&V$n&^bgL8s!6)+t`G3eWM} zWr7KW6(!Ym)fSWJymd#4(L9dWF4so8{c4wvaw>{uGz3_9K3*g>PmkC8+KwFeM3xR< zF|neOva=<>N&&{L(S{jMyJ4Gpr}kjAt2^y7bgGK`6+4^u=&=!#Zkw@G3^Rd1fjB5%qEzH46oOat*WZZyeJiu)LoG2m}gkpa}=_+ z+i9Y?+_%>+w5hoGlg!vq8*Xn==;jQL+YYC{Vq$Ei?NgGi1BlpR8D(rOvHR7SkVA`7TwQ>JGI# zm(vL%eOtY~XC#tkUnj@8>g;TP7gV}yKzx-wYPYfoUvQQ-DkkQQ;|E{{kBJ0~a^bNf zdJ8=bGQMG%_hj()j%k<#1bzq+h#tb!XskL2TH0F3K?MV{g`8+1f+FeuuZ>g)0!bKO zrT!kJ&*c5!K`QtQjfJyCcI|T`N2oLOLj84J6J+2QC(ik74yS9$nlo|paJOh-Z*EuL z6VWh@%t8ij=Mp+igoKbtW{aA)xAD^M?wcb%z_*&ErUwdv1C#;lgz2(d@)0Nx9ewr6N9@D0mq~TrWf-$ajci4AjSNju{j!)Gu+qs>b51uV8 zEe%YKd75bKyuO>eU&`;V_tvxaTd~g_wM`io(cJs_$@9u|eUA@Jzr^-EK8+>N)6Yp0 z_}ajhKmg*Fc_mI)1}b$n;`=)tKAW8`oML9XgU>g6hx4B&m-ZL^h^o!+1%nnC`)i@n zSO^zc%1r=oymo9deK-+j@7YeBXzB*C(|LhYm7c^f_j7?8T$wdK_o*rF9EY>>XufS_ zD5mgF;1FYGS5JxWXGsdyyPai)GtHZaT9uew8TclvM@0lbaa z<-q0UVl1xEQjwq7k>x4;Q=&FAVta)0*(1R)`)0`22TIjWq4IFAGU0xU z`@yT4r;PTL%oSGfhg>-(4@jsh`n1Pb*=({vf_u#)K*Tg6euwPV=kkh*+T(d@0NubY zz9O1VTw(ajuk5DhaJl_(P?ThGV=(1nBP9r6ffj`bAu?e9f7pOUAv;1MquKz2fB?zv z?r!KSGK~he@u1W3fsi`~V#p>~v{&5EFKBC9PLT@&)eG|JHz?Y@#Elq5Ffx_ zRsY)9Uw?=`rgx^xpRV`CV}wCNf&ZH8oUdDS;!bR@^Xn6XYH%LSL9e0UWOLMrJp3?V z=8!m@E()UQEG`Z-RV&QjNZD|iebI1eHlo-D!(jGj~ks%d&-B9vCb6m%>WDtj+PQp zJv50b)sF5S&#--K7NH5KWeS z&PxXivU~5qk3N$Ot=zueJF8pVSs5Aa2lwEpPM51up-z%{wP(sw3A~d9&go}_>h_2B zG?<8j%92I|;hN4SV#~bC_i>WNWx4uhRRA7WsaV2Ipa2AQeUS37XC^{g^bSy|+G~aS z?CcoBK7LFJDe>xdvvsTdg{A`;O{*~Kl|@>ytkZdjc1Bx_Nu{+!hZfAB;;-^#iIQyI z`tmE|E0f(!fq5uhC0z7n?N%~|M$k~g#VzhG&IJ#K4HE-{kkn2PLIuNCn?GN$)|pOt zr6e|99BGE6NZ1@!adhkr&G<+?&bu+0Jcp=RwXPhlM%oaikL{J_Nrz69dWq1A0E5P! zuz@g^XPZ!UDo!izHVxU=$m}f|<^^lGN9ywnUHz1xxQ@$fyxXTSEyJRHyLup1#7Wg( zl2M85h!GkZv8BBg^sI8vSNw;s@@&&6eidZxPn#J;rQ8Sdu9|l$j$S%_%xEFx0Ac@P zwErwDz73oO2z9M7L+XK`Sv{k?Jc^H6Xr;sr%0s2@R-Z^%C~qN;+qYw$X(7#}SppIc zc2pPgiOzX~kQS5n4P>Op!Ruj56DxE%s>Pbmqln0nKjUg509Nw1_)H^S|NTs4a(Vf^l@Odvq$e}DnMOGBY zvxQ+x80LKwR(vWhBNG(8Qovfeevl!+j{+r2bEWW$<0{{VK;+5W^h1}g(`Tt5mS$Gz zQd-)%OQ3p>#X!X+^*@D^JPlIcMR_KR>ML2UPC)MC=_t|_fi+BLG97xp;46xEfF2@h zF6z7#sEr=t`n8PT!n)zQ%dh{D$eSePVZE>O76welTn$*|yW;L1R@!CZg)Nh}d;zp( zaqILDjYOER78Gq!MF17hp>O`jaxnX-*RV@T4Jod_Qp6csp z9#$DLKk!IbA=%R*fUvxz`g=cLy|}*=F{Vcf+QXwtp=_pzDFN z;U%Za+JS=h><}H`C7PP6KToVLs#QJCW3dWKGfPHTyC}@1ld}k1#S+AG##*$LF&#}AA9m;duEL3m8xO>O0;dWKKC)-n*rEu`x>O`QvAiNeBdG zDqC+J;D70a`8je|kaXQB+({rcGPqG9=}VLiv$Vm82|D;v#6Xe}Z(htt>PIr$QOkR$ z4WXq+4?I0MAW&RI44{{WtmE#)Dgw$8u-oUAtiF-_vl z7|FkLqjno}vva>m=w4lin7m`1crdd(Qc)*7XwyCl6?TTsO_CorM5m!bmVs4PPKK7X z{lYr7KZb%a_9aQ~_wyI=!EO|p$p)pQ^EnP9BNSxJZ+sw(vrH^rBrh+qc&t{qH?)Nj zp06PWGdt`14v4Y`JdD6Ol%`_EVm}{x+n+f^BlAFdXHrmJ0oqq|y8EXaEL7H_xU4~z z95uo7c5?C$K3mEL`^D*HaIuSrOc=utmliGLF+cu+a?)TDmfK5m_-?%nl_y#%gJjc` z+4?W)v8>s0#qje8;Bx&%i?XofON-DLKjOuRWzn<8YO4l?YJE0Ncfn=b1YwD4T~8~z zcL!G#7rjGAf<`YfQAt@6}tGOG{ccw`bFwE;pQ0Q&Uh-CMG73=W{OCCYU%l ze$~(H*+@|AB4mZ347)LmQ9fpgHP5JXjUBCi0djyhD5$uz*aqvJ3Jp62de2E&F=!YB ziInButGcI38SxF=yuBlTTEwSZ>_W20lQBXG^|g|a@%ZhCSPi~xB@MCz_)X{6a(j-Q`g zB`H$cKU&fX3-au6iOaiBg*tpRLTCONW~(bKnw5l%BnWoWkyv*2mp&bOke&vMK6oWu zQ`0-})uoX6!xkA{y`5=RcPSzjs%ykWW|s5-Vo+QB1H_0L4qwsE&_j;IGbKo^7R}!) z6Ar^Tna036YzcbSrW^P6<-pj{V{5O%yXQ>u=c;SR z%5pV4B(XjFnxS={XVHvlGQYjF#9q_c__bL@J|Uaa@{@3wSi^|pjy=lk=iIFG6Cj-m zv(hi`y}fV53L;~hT!}AK2~&1Qk~S)M_0{b*4kHXcffD@D8rv;A$AgG@$c2Fdm6GewvGQRaU^9Vqd`5x zW&QDnF@y;BK)JuX4YIXDM0z|AFkelaMFA2NA4-7d9AsgKl&OOMg2>^j9grP-ygP^= zqV|rIXe66c+!J)PklcshHl)1(duQvxGxr}~`D_F+00oh84v2}sD)^{x4q|u-d=5T= zy#lQ1aN)q|kr=Xnuy{f2571C>_1)F@;DC;nLKH+g)3m@L_aDQEWoUYPX4=fe)$+1! zb9Oc=3GpebxUJ3f%st7UpcomTb$2-#!tM#4A}2Q1kMy>T$vz=I#&rLVhRX{34ecd! z)PqcHcQjj3vW)&yp_YfvwbU+G&C$}arwJ(B2FPkxfh-7!#jBY0%TITtA#rCw@wH>D z8`StMzo9e%q#~_IWp#DcN1UqYAIf5rc?L&_@iJUTTJgHY?>j;Vo@(5k&|3$`!Rbj4 z$=0)L4UwR#$9(ko%wFCd`wumE_>j&=w&}EH z(6H%L{X#~j0fJ88iwp%$%1>PA-QqkZumF9CUmkt4wCNnZ;1Cwl`To#>pbsI&%Rhip z?EwZhf`_VhE%OzaJ{4f>x}$(Bj{nwby5o^`eBSHbBT+f$ zc19^;>v{)7KIz^slLc7oiT1>`L_|w_ZiCFq?8aEd#zRG#*^8IlfrRDTN@MCOW}@(Y z0>``z*o0`sP&hSb-v%zW;yf*vB?9v6Hs$vpp@mRC45XEBZ~^!}i$?dJspT4N12r1t zoc5gPV>f8xX7&C*))PfOTZLEnJ-KBji)6qo&Z$x|hc$6LBh~CB2|2hKMu;)@Xm0=d zgEikd3Au8gA+8?<4ej*lLw{1xei3^G^H#70Ec0affa3#Udbb)Kry=g1F|U6`#&0}u zK3z=4N&@~$c{zoVC@O;oOGX=XTpqEBeBav?=U;JQTh%tS3Fh{q$awZxmgn57(vgw! zC%UNAyDn#&`Bp=TtSXnUr|c=ph+O~SUrNHZvH;fg! z&VAiNf@09tTtVbaq*Yfr53YqVB>Q-8X2yt0a*2IDbN)QN_ovqjRz2;pn|;mhF~*i( zLPEEB0ME0;VQ37;E2a!8pTB-hw^h;?`eB1pA(LpUW-X{cGQozG#*&mY{-$?+cEhCHDzj;4e;>C_nmRzk!P*vLuk$oOJTBF#5;ZaXjwT z2)QR|+f{?y{mo*rUee(z$H4U9;>mV#OTsv`TEX=2z>gMJ{tQ0R4^+Qyvtbr9ffEWX zh({yp7&w2xyOyG(padwn?5o*vpFip8jPU_@DKwO|^{L$ohs?sHe7{fil=SeFum0VM zV$Q{>8A>}fSy8JkPEUJcVkawaUc5zsQj5X2LcwSD-RGtEL4j{Ca_}~I6=A1xK4x77Gdo%uy8bkg3nhwCUC7p?wp%@s&{17< zd=t?s@~6m3E(dO(ksP4wm_Qs$Cm}=NQCX~yNBo=oLkrovV*Lb@ zjc}hYmpWlPOv;X`bratt1Ejy$9kO)>ubt&1n*T0)M;Evk>rkzpA%=$jy-`swd9ii8 z2elb{(_I^C!@yX?R-S%~*x{EM&7q)7QgxO>-1^GHwHh3rK&C0tP<@6LVg$B_{L#t5 zC#53fRLkAY*B0%w0-}B*?!Ad-&0q)~uGZZG2~T5tqDcb^$9&-L@xE5uHM*8#BX#zZ zDVIt!f%Kl}0M{HxjPjccQ>S~c^2O{&@D|4=w#ilL*bww8$9}w8SBwnpGU{8F=v!(T zCghY{$Bic$>t1a)N9xT3s<(os7pzdQZ9+UFaXC1JR-};e{Ec}q^Kz2hWIl}PE-b%aVNBht8pe!_%oS9f*9-v;{23;uw+8PC%~~C411FU%q3aZgBYF1`i|e(w0(o0(ctvG*44q}r@^!FyhM#0m-`RR`(`&T6GvBIjehnF-*?QU8pzA; zKb%YzmbsUXqk-(@4fCMqI=E{?nNt*9g0Rp^K1f!_@#Fas&Fbs08EX#|g+xRaI&1U~ zHa(@anB74!Iw2!n)BgPh&Wv4m(4qVEo{&lWrfTs>2zd+GFTHRXl~1dwUEEuK)ICnQ ziUX4zY-f<6m07opQ&F%**}{AA0U19H`BQ->t4&-8{yyvu*xPiqsKR0hS|qh3d??bMFHi!uWyBjkET8)&ZJkq$b{5?aDL6_?>T=!C7T zUb!3#F;GcYAXduodorHyw&yGGe_L0)MH}ynHsw6~ix~`gCV=dE-A#gqjc<6;BP5jW z>nnNCAQ-enEl`JLJ7eP)9RT(wC=QueAX$YUoX-M=(t(;TU`gcFD~T3z$;rqNEvj`m zHS8>-q*cfXHco`lasLv51E!NyoMUaLETQ&4h)xU$(JA^rAXC7A;K!TBMu=!Hua7|$ z{iSW~{oXYqMCH-%;y|4)6Xy%w-YC&blYszP!iwn zegNDSZn~a~r^IieonTULfB%N^cA16ce)go)5@ZVti!UZd&1H->&t3Oj569Ovgo>+# zc}skNzJQ|TY4h*l)rpErOF~Yi=h&oVq4G9cuWa__wC%uHME8S;6$wBnn2#x7OcUtj zh}?g-%EfyfwJxjSiXFs%^L(#z8x@49Ep2TJV=69g>FIhk2j_}|6C?fvkqm9$FD(xn zMH96ElLa&tyvQ;e)dIh`z?`nQ9g9Q5#ry$yNW{LMzp=rAI&0+>k30(fL&tT#+`Lr7?66I8&~mT&TYdP#-G6<}%CiM#%f1OjCp zax)OQ`-4IeOnaz1X*9H$2k7h-6o|iDDabMo%zV8&02l-*PXXx%>;OtR*;nP)ZfD?i zZ;A_XkRZH*f+7Ei;P3x=K(Y@B;q_-7Sn#(NDq6_=GK41|gnELH?Ui(qEQ?Isav7x~ z-~r>?=>7~-0P{`rQVUQ~EWPY~B%``Ip+0uT5!Ejr3t{4&2ow#<5+0&>d{8U~0b@Y= z1Pa0b7>bCUA=A!UZX07!-*XMur8B5k&w_=AgF6H zGouvPLM{ z>eYU%2YPQF)qN^P2r}8n44ch6K7p<&)}u7lup-jy9plfdHlj>$yoc(VY8?_<;eoXF z7-C6hs&bbLib5M3-)OPmS=gNN8C}P9bG+N%tJA6Q@Kl}VJH^psaJZZlWI|^X2S{Hky@6-D89^<~;&_bVQ-cI9(LIuA%6`||# zg&Oc_D&KD!spfCAFASFaa?l&A!h9-fWNz5@a);|HltxV@V$l3CAKk^C6Zm&--fyP3 zIGYPETjGrM_2u|NdQACJB{}}#YoQerNcZ~{dfB@9@THy=mDN`|ogJWG6076|WO10a zQRM7)*MS!Z0?7Cws+q|sWPuveDA(Z z3lRH_C&v0Tw(-1nHygVlEYIC-A-}(bJ@*gQQP$ZvD)!(B6kkCyu4Gpd6`#DG653fT z{c9pa4qeq%USPMWl8HY2Sbp2ICDT8mW4;s}h|hZj6!x%eN3)!e{8)<)4j6XR&+Nv| zF}gR;IU?)dU*TitX9MLO)v9Srl|Dp-U zGb|lOc5%yVu037UP2aT!{gPg*4yVv=_EeKdcel2vJTR-RDy_*;-;`ubZVy7zsR9>+ z%YZCv4y}X%r9+J#Oj|gpk0$d!Ftiny zLb#^Z<4X;g&v5svT`I-3GYn?~qDx<*m~C|Ds{IJ)PDAOsiTG4OV05kCJ|)aqxWyd? zr+e2$H=|ZFbnw$r0j9sNJozwH`?7Y*&x-le| zly4ntu_blpXeE!zP1`_V`|UI?gi%idb8#|?o`mCG*K+?`luEtoRDtbAAt6EQGIw?c zLjJ7*t0(`BVztBTlcD`9T4JAB|M{Fk3lD;)+Lu+VZQNZ)j;pVU4|ipq*cZ`40?fwBPyUZX#}j`%_RD2UFt*SC;aQ~K z#Y;zoWIXe7Ua54K&49p65*x98`KPebcQWG%1_8RE=(6N$T%`AUT9Yit`S4H$cFd8V zSrb@UXWq|$QI9pK)7&i$&Dg?LuvlZ3=TRN-sGF)K0(iqBK7oQfo6!^*9m;%Q|2?&y z9mDo`Jmxly)IjOJ|CH<72SAFs092*8MGaV9 zvVi>-l`njWyypV#<@JVH=eg7O;kH^F>==Uq+)h{f2r2DcnY*#xh9Y6-+UM*Y^Hq4b zaUQRj$?1`nWq&MRMgEeXY9nS5jk&3#LQ%p~n9uGanvjJ}4M2}W6Bp};m32~{_Dk9J z7(}%$Ib?(MAFdy*)Z7ob3N1SGUn?ciq`~Y~me|VM)-hhXTK!?)$~cT>mh8oFiaVr% zrvqs)tI79h($SQ*%VQjWVtldvDlX_@eHgE&jxx_apH_u^Cel5u{hArbviy=z$|D!B6(L+R5X_hCW9&h;968n7bZp2J_?S|ngDKK|V}b{Z0w;0zEl#he<>RgPT7F@! zxH28RC1zG%)w&+VqX6r0dcy1!ikI_EORI5df)&tXaxQ=$2`L8#2|AzkXnvwCd#JB; zJRJ?oQnn@E!(Pk(WVu!1mLB}_h)DZN>{p`lxYkyEe5HVyV z?i)C@ir!`m-X_ZAHBs6~W89^u>r)C0&{ouv@o`G|Xu~l1`z_9F-P=0&wU0ilmttkL zRF#*GqcpVG!?4xt+T?B+*?D1eky@8}+vR7`$C8~}1q%159nvD2s@TEz0{Uj-7O>an zFc{QR%ub_{O1INGL}|-PM3ih8jNv&EpI-S|hu>@c)jVi+de{^-qLCZf*TqPUV)(8{ zd_+qx)8R4@flGM1_PE4uEp=2bTd}!c0h3=y)^J8ok3g}zXix7oiplZetbvwixi*n5hSwI2<&V}(B~g1w5UPU;@&*;`?}hA`15Iz4 zrm#LJO6*&{5KE}XUDny_q*3D(5ipai=ud0Vxghv#cUu&oRvjHV|C2aEx9dxx?h znsWfBRUTD zUbgp?dP^Y@+7`b$y5_%;APvsj4#ix{C}VJ9pWoS__0=92aSkQWIUbMO?KP3z+^K62 zyzJoaA`TppyQDS4G=2Ipz*@4jb}k>+)2%r0NGB)7yMqvb;0ie3L-5L|HEWrxEGh?o z(l57n)xo_3w0=#YG3y?C&n~w|d%557yzjw|Q_QlCj%H!9Mbr;RcBgOcg^0yg_QeWm zizuvuSi6y5so705p5U(iQuEShr9a=8xQSiMY1%CH^PkIKSqJF#UwTo;5l|2z-vy8IofL+8xhYBEc${^(7Z~3{YcC)-(rgt{{HMCg!7<+P zIv0|van@E}hc1eYXxZzR{evmwYAi6xZ>E-DwwU?CJgIp}TWroj$Kgpg1%k`SX6pbp zGWf}_CLeRF(TY*$1Aax-do_Zfck15#nyTiTI2Clz3lQ;!!_DVha+x|-B6ODLHPO

5D~6F|BXdzZij&$YD$i5#*W3dU^oTTWlzRtNJgkmeJ4I`C(YtioJ6= zqp4?D$snV8`C!K#5+5Isl=K`H_RF;m-T^8T^XHO>T$goW^!GnPJl5<`WqB|ja?gpM zox;cE1^i-*E7PrAa`8$|S=MxSlB|B>F*NV6B@+Mk=yKq52 zgGBF6jOe^^ETtx|s(LngouTgMPM(yR2x!^$x{JPR_O)hatg{&CrG%eT1X#Xd-#@2Ej#b2 zb>rjw0O*ezcU34h{e$0MOB*lTjE*My6=42sQ^Zp!j&GjECr9EZaNi zy=H;V=CN#0XJgR|AFcF{MtF!oEnppbr)MIe<1hYWP3Jee7?2jcQ8PgaZIcoy%7SCl zL!?HL`H^0xUIt$dirrsE%H-qY+vu0BU^j92!U${}q&AM73LHw(lg9 zVt3?Gq-4=!Y??v7{9L#esOrcY8 z*5**Jc5?9#{^-olP3Z;YOvu{wii%jViGF`)p+io?l9x4_n#iOei-SNhfcJ&G;^{%k z{hsn)@Dq^-xt+`su&D>-Q9hjv89;vYt{0b%^`rrD3sw789BZxbombt|0FXH7OQVB7 z;C0UPMH}0~yraY1e<*if>S-BnZX41!_oFj>imi_1A*Bfot7Xp{B7Q8DarV6hv$H!@Ea4=6iB4I6*+cj2e0nHZQ`WR8_p zfuQs%#Q1++J|x!g{f-0UXUB>;)WA4=n1V1cs^`~Wb@BFP!a%4L|2M$l%A~wTNi#k?k3rgLe{{?a9)uvb_muNZtWuY@&bg zwh*;{!dgIZpw63GDL{ipDiV#3eWbE2mnJUsi!^WeUsX6p*4nAtTXMM)LT`b=AVeGn zC~jo98Ym#5NlF`)dTz+45tv?vk3X{DcE>JqHJZvcn#sz#&+)H1nqgvyGY)tZ0VoSf z_IJ|Im*+l$+gq}^5<_PN%H14;52hN@pHiy>-pZ2 z{6C=A%VhA~@W@EtPV}_2H1*lx?gvc>VBDXMj*j|>7a7y9`~366pgx*eJTiBc7u2Kt zxsn2@iN!_%e}Cmap^tykWK`)mn^QJNhzi0wyP~vABm7nz0s_y8=Ng3F{7BuUo@d9L z4!q$i5V!?n<1Mgb0)pi?Sj2EpHuoQW1)5I;1a(~@aB+yO??(^Gf0s@?jLHB0hS%!Z z;<;}OgxLZyBNqW0SsX;}p-YpSDFVP+;_s?0W0sA_4>$S-b>)Em1=um?_`r{3=0V`Q zih|J|z{z3d;-e#-1%a=kxi1BRzgwi@Ho zs6(mb3w4?@@ucYvrA$^AhEI-rAj!Ci!~a+@qYTYvw|h_{{MAhABI z8rDK#v0SCa*2(tKjUp3(Zu_C){)YA->ii@W^wD1Hf_Ip z^?Yc^Nqf1nm1VW%Sl@1U$tXB6#dv-jBEmTWfryWB5zhAbBT4MO5!3XZ=Apudwp^CR zv_}w0^H|oan&d=3<)g=urpkf(eyOWjW4X}&>p7+xJ{H?i+X~;t&Um$N^}=4${1LQL z633A1TttxZ^4yay2+ul}+n^P=Z~?v(tyqGXr6$9Sj<%`zSlWH4+D}m{=+0TA8i626 z1(C|*vh8a9QGrgbX{Pn6iqcODqJ&;mqmQQakvSR+#Wc!j3Gs;@r%2a#{KO>Hc(#&V zTu0o0Xcb6Cw(}Q&J-zNTVM+Rok7y(`wM0p6 zW9K>V56TJub&B#gLvY*6*!{=XkK@~NRoxxmTM<~g__VjfQ2P!Yw7s0g!GrqhQi#3` z5Vg}cOL;hl#)C?{cfSU|D_JTm2Iw}lv1xra>{I8habj)Dy=gMPJJL}1z~~-ZDjBqV z#Cq6t7EzP}?|=R{)VyEN4{Et}SoN>A120FiY%ubr=gswMS1$e1zJ<7#&2*0Zc3EJ~oXgw{T`{OcE@i@G8+Jzb_VnP+>%yWe9 ztA7U>+Veos(-HdsGJU@Nx~bZInQac!cb*Xc60MD1B`H49o`{|9uIURxUWpXI==u{6 zXS9nH*}8mn`T}LYve&1S+ZVwRO0tYc3p!SvQ9CAm0lfGgn$6D-Bi~SR9#>q zUYn+TD0Rko_c>(nW~#0|AwoN?S%N4yl5{%2$Z%X@rq+dycwXIGI?};t{RTaVz%))L znR@W?Pc9tu1E&*4HO2#$W&5(Wr?ln#02w~de;JCJ2Im$ohwT`#3uGY=qgoC!Pk(rM z0C19lYFcP`ED)$>nI~a(Yi)Z^gALbvxNT+TR^$wh-W1pAPm-CurX97NPQ9@>JH%tI{yULE0wh%E=(gW2oMU*{hkpru10OhiK9|Y$5b01|a3G zj!|sR>D23H{J=Ay<-{!RnLZ^;D8+T^=!q$f$`c*a(Ou9m^pYajSTn|lAHSrH(oV6! zBic0yV_&S47B*GO=^C_z7VU3`8eoK_QbYSRy=-c5sy&(90|&rg;a$Y(q3LJ4tMPv*d>{3nI%M<3yyE`Tux=kys%@aT_O$*WCME+(K2>xxp!jR`3mQ)B3Sk_tIWq?7y~98q1bmWLsdSZ&~F08y=w0KqV z^xED1pK2kns#V5hKbrej1;|U-`p8F0j{ixjyScyo6jCJgSC}pHFJZ5J+OH+_9<>VC z4|+Z9ypb~}#v396b~7|T zl<2A|2i~JN>VuuE^_B-$AhNHlfIlAveomTuJD-%QHXLqtWn@4hFB74FIt?}fQ!hO| zL@ZKOUDf)xFR*g+@C-WtCXmpb|GK@36;ZKX2hV&uRT<58@2GUUMEeC4y+a)U`CK%M zHhY=zElmA&b8$4gCGi@alK(mXg%}In)DUxQY}_Ge3Df>n8su|%8fTA;=PL;SRe$ky z-etz(ynpc5;OFD@X-HACQ>9t`V#UL0uBd~xIy>S|9qnfzYq{tRvj>&x{%L;o@K7`i zFItb_i9IFKnjm%RzVQ3t6DoygiDqJ^VJAV>W||WN$sLYI%>Gh%-*7b4{Xo&R33pqi z<$Cg9$`VL0P1?0())r#~Zm~XTvmD+{=aci9U^+ND7Fryydj|%#eF(b6*JfocusS?v z(!P3y>2!=TLQn6h?PS}?J9B@WsI_Q)e9*I>D0EYxIZ?YV2`+2r7BdU0$g+&g`ckaH zWCw11Ajzx~27X*Ds1f(7s8E8KEdi?qh+N51zyGbOYR<~(!@vo-hA11)fC{kP)z+jH z;=j&lv(t2sN(c+3y0h`xUik65c!u`xtsI}b{3ko^`UsusOn89DN-**#;wZK@^ACra znKTrrL0-zap2{hO4*q?8?~HG?sEO?^#+96!doOlB)N>F*Wbi;b4w30OxWhkfqZg<^ z+cZciI4k8aKbzqaoReS9Z^$62^XunuF}AC@3yNZ<;8y;M>^`RsCN7;g@aWyhq^YT~ zAxgMB)_~ZS+}-r-AC8zQN}N69s=vO05X0#$FpM$1TnvCzaQCwti*zhBdItrG%F9E_ z*Pjt!XxkzC1ipR!dOp#`*;&I)RnZk2ILJUgVx^PXstu~(+d#%}8NjVCaao2a?`+`}(&4iPVKwJA+e|3&xz& zI$vj@wihzQ_oj}|1%|}644M*HdO1C;zF$ee{9^@m-ZOV8af3Mu%lG^@xM5W98nX0V zgMc9l@9oY@h#t5Q6j0+vaKA5_=d-*e-_;`0uiZ}0FSoMuDW)S;EqmEQP5xNLh{sm{ zy<$Npx~b#8y7kbdSi>|x_dr!LHC2@6dRwnjzAIrC4kE&jqp?8!P{w3uY0q_F*SXEH zmXcbUFEpFnJ5gW|L?Qjrc0*vIU=x9kAB$^c3UAoLeBKmQ{{gBvl2a#nz(8HJ`4QQ) z-qA{+8U~l@phePu`k^cN6}Vx##p|VXJ7Df``*gghIxL zBsJ?zh`6E!pM>wX!Wf^o+<$&!vZ?x!I?w3n7!=wS@dsc}d-YS{i?W*-Y0|DX{k+1| zve+YiN){GS(ud`c@CW3AskVIxM!X4^IH2>>DM;WA0l@mchLm1&h>VVPDl%>G^^Rji zL8O_`hxcx8rOAp|el&2A5^2l%qc>NqDTHH=KYzg*-yHMTul)UHln}{O5dkQ)vgKE9 zquYwpHcH(a&@(A8vbiXZx!wK?&I}ZdZ*{6{_~1lXIm+5=&P8Puc{BUyqMbSrv17wgt0c@RYU?h5b2}jf16pTwk3xu3Uc>h5#h#0e8 z3pQ*I3&w7P%F&n1?S`PLN+RNYRdl#%U;ayG;+F(R@i;+?%_?$gDxOoyl%byI`y@de z|AOUkRGRyE_dEfrz4urUcxMoxJXEE%-KYSL3gI}Mbt^AL_F!W<)(sdT+EPjT#K!w1 zD;5TGV|@_uTBY08<42EFQU&g4GwWhg^VQEkLO`YgN-{5qY>)&8QVz%L2bLTs?|p!% zy5SQ}fcfp=Mf!y;U8;QsQv8}pTb_;IY3aXqqug!#SeG~SqlABN$sGA^|G()4A>vB@ z7SXi>2Sy9joZ1`+!xp!GK+G@a>$5BZaX_=tc77{V=WqEB5=MlOw37>zvpqc2L7DNN zX#=TX`t#aK*gpWkkbe#1{+AE(=b`V?uPB^7n>Hbsa`z_&kQuqi;8Bk`Ye`bEPS zAC=|z^WCW@{s~@O;!Ln@PZO_Rux|tv8#0vTy;6H_v>jI2z&gdUKNm~ZOK}9Kcy+Y` zl~5a`2fuk15WZbTrA`-a;k=-6;TpdgSlhBa+*0_wm_^Mjn5Z|gPqg!h$!U#OM~k{l z0%n}C(3-a3U~Zb35bCVfoh|K!-3Hz)J5-MyIwKuyS)JZYx9StsbH|wk9kJ(Rk7AO> zX(pVHB9Y;$!JyCqk<#1Guc3gA#6U^uBez)rmDa@Ft3(`KSJaZl@;giROI~HJB7Rr{-*QxP*^AKQrqVr++z1t9C zI6+2Qfnrn#?{d=l{>AbykM@;$YYiC+PHm|K{h*U>K2pkFaYy3!R>y+?Jw0dU#S0GYKGh^EcpG^^9;eIF z_=cuWRqBfp;fXNdJ44!_9wv>^ule_f;7+@!4n(zqxW~`^KzaV)YoGrTe!ir>9ngw# zJWfwfgGvclo0T9oJ3XD~i}vuyY#FPKczqf*p&a|&Yp+TnD(3shD=4J<=a&AnoE80F zDqf*Y(!ege96V3BfPT1?5O(B9g*D;I{cNsAW-mDPsf;+sR%Pjm^31s(CZ_8l<=O7+ zH?3wZdF9^*M@T9U^YH(v?z_X9+O~aBwz9WUwhAI$1wlYSq}LzuHFVf) zK~O+IK)Q4(AtDeus7UXjM7s3eduVTlea^Y}o_B6}-+TYOKls90D|4Kx-YX6Dp9 z153UAR76TEORqOJwF>wZ*828#%C0-?R->Njk9i(+c(y$7WumG#9xB(5m0llALy#_k z&3SIGdMmi!7dr2wk{AIy2>87TQFtB7S#g3ML%o<(leCpQ+nc-cfZBoXoh#4Hh|AAQ z^`U9V&7HdPjo<$~{DKJ=H29t9z+SyFR{!sQ{Xib`qj9UtHtFarh?`j+;rz#o5t9)0 zccxRKG52F%wb&P`ziNpG8)GYC^)MzpLs;|1Fq-I9;-(m2X9@-^&6P{whtT&MK;8X5 z+hSAlKUL1M>bv#ezW0W(Gl|HeDBA*J6;0zAZj|SLE5Z*ooMQ`rZ7Ff>#NT_Lc|zBB z?&y@enLX5QsPg^yh#S#@cPQUom%UDU>DhJbb`9AE`-DLEHpjWrY=JLyJ^>~lp2xo% zw^q9Pj8(|X%R$^iU=j)bI6uHh>9AlbM_Z$kVG;OpJENc_hqG?WQ=fge8zdyR=_vTN)C?9yUsic{JS0I~Us}@yR|4dq@t?u8 zp1BCq>|rX#nfrVJrJzy2-_H;E?7E4Zpifp}pEtOJxcGPmMkMw>3iPW^U;R>cdiqNI z$(Wb-JacS(9KzJ1=K&a^^mS`nTSlz?q@tewy?c$8w|=`D)p2^PHodwP3U&`tzpt+= z&X&4ZHMTAyG@3sofS6id6d$G2YMxYc+uxz|WF&ch@AqFn7P=;bx8qhWZq(M*)n)C1 zp8|8Bb8$UAZ%gZ{ccr9U&wMv`Wp01y(kO3JZsr)H`dT9*o3qSsGR?2%$&nDzEhI1B z+C2{rv{W`!pRL*MQZ`&CcSFj`durKM2nh)#q~8I@K|nzonUS$j45J^{jI+s{6CCGV z4>@P#o;50ETkR238uCi<czi5nf9z5AEs?#tX@S9$m!?|^YxwnUFq8UIbnmp+!3>g1++<(k7-Rk2JU-u@?^?>&|*%gBK7?<#{Dvhwf+@4p&%vDuQ?13hvNufi-?#(Z5wNA zMZ<|PLTa6FcRn~<^LNDqsndds&-A0B1e+=iA~)$Ho!TT?U44r3$m0^yOWlI2gwiuc z$*Br*a@Yj~<$Qf>!Py>A9cn48a)U%$u;5!}vGDSCj;2T!NcwYw#kZ)OW%v4ten)O1 z2fsXQcW*fAIoWT-lLiI=edpq1auBS~W6;O^M{OJOmOjL7I6o60^5K6|fd4bjZQ@I0|t7A|p> zb7hqLIL#5keLeI&r;(lAYSk>a$AZzs(PPO$@0Irvu5Nkt^^m-qpu+%f;0cf}^FA`P zeASA0|I;(vll_TY|D(-FHl=-^{UdSLgI5O9EB42^d`lkP$A)g(YC_sr(8XeB`DtWC zy}u;0ghi99)X9PW0(bd%A-`D@+W;x(*%6pso%39X^v7@!zoqI53|MhS>qSxjOz0>L?0+EiFxTj zPVs3=)A4XRmg-qFByalXW7uJN+5iu{@`=aT2~WyVl=2Ra8?)4#hVE^QH%YIzcZkb6 zAP~;{4B%D8kLQh1#k@wIv8Twft6_3?y%uBj+*Tnbm?8~Dr2mlwkC=agiP!AF!STew zoX1qRU2_+VfD5NMAI4~;aYpx9pX%`VvAg6McnJc?Z)ce!t#{R94DAAO4kh+%;(HQ~ zq5y{&>HSu+lj0z3b6Vp$M-2$W*11l1ilY|Z);YI#654n~3NoiZ(Ays+ zj*k@!J$QDXT0vhsrmjfie%6x^N+j`i^1aukj$ae1<{3N? zTUknk>A3RJJ(2Fks%~F}a1S3SOD!tl^pMb9;MbaQfbA0BenL2C=GE1VI#JHUVBqlM zdQ6`crtX=Z-3+fjUWpu+J?OhKvn<`5W-rs}Q^tY+nIijOlCcc93Yk&8dojV2Pl z*rsk$#0~MRq_01P?lMZ{&-*UX)3_ z;`Wlr;GAURYz@)EG4H*F0sKVIrFOmnVAP8lk$$rNqg!ziyL5|-Qx1ik!d}}`;qqs zz&J@>1^}bG9x7M*qR%p%MZ`qFD)o9K{IgG<-_g#rQhT|sP<~CJO8H6sStN7SnRI8O zXBhKwtNLzslKr6fI@4RWOBXL((qgPted-UdCmfAUG}3`yWxPIDbEFA;L-@Tw3yZ<9 zKd|!Z(zWi-4KQ;HzG0VN8kO>tHO38r&w(L3D&YxQhsvH-fncKIcpW=2E-7-Hp)*(@$guXX}-{zD#e}G)pg)B ztpkIhJ;uk$Upp;pU;)zJ9v@D zz!iJCdgd)R0Y3>Ctlh|9_Bxm-dogXf{UWO$kH>iX9|WYL5NP6G-BAz=(U1(?dtXLp zm7;d>vtz{p0|C220n_ z_ZT~+@!d~#_*hf(z{F*iCVm-NF7$D_=gye>5sa|48jkR^3PB)qZGd+X_uBbLU*}UT zy-k&duaL^yA?rG^@$ric9)7Cvemka8haDwVCq>n}V5YsVKe<}3;c1W{?a?{0 z2w^!ZtJ^*q;NsyK@K`?#wp78yvO%G$gH}a#&qAnJdZ}0rLTC5M{5N(E32WtRx}R!{ zCk{^$CqJK3E%jHr>}0O{KNT9#?sO)yDEeY}czA<5|729rr)ST?IyZj(wczmO?oy)v z;qwN1``)TRR_tr!gDujhA^4Yb$k_};nVm@i`fGNT==e3NkiUSS>h(7p6cpX4 z$HvlI)=wi`R4MeQ>@!a~2V?zChH_3F3IC1K#rKKYZdF(t@8g=ePl@I0eLLc>S(}Ni z14^ki8kV(QHVBn|{m^mh)+1dT<%pk`DpM|Vjv8QcZHH7-idt)fFl8#8XqVeD!Kl6;WotF#-sO1c8R=FB2MD|A#bM={*3;Q?Kvc& z&JIDTY&TM_?B)W4m7Hg5j=9en#?vY6^zDwmB}(&n$zg%Vf7`o(EnCz6gcaYt_8gxN zHDVYXAG}$HjYARykLGR>hx`+EL8xYRcxT7Zj=sVkYiWp<9TBGR!`P3E4Cf!_Gl+K3 zCkw;A`X){7UMaU;t}{$Yo%)E@6LQ#Bun|YTSIMhxGbnoI79un?E0X%b)7?AtL_oC(M>( zL9i}4LCipZI`~jwT*j4hrd?F;_)+mutlt-4P{1TNjm)0(Y%s5p=S@52R(X4cNP+`A z0(@@#`iqXPxEk~Zw@~q;?dqnU4e|LDb8%^W&xR!(1*SxWK`3|A{m{n&wO{6Of3z=i zDTaevUpH}pmKcFsFRVx2?;p$DBPD~H80HTzag}_(L2oi&6Qj~RpJ=-#Ft6NTRDs{P z>%g=|&Iwv;TXkw!e0os8XAEB6tEEE?u2gcn64M>kBPl(G{X*DDK!O(KAx`O$Pnc;H ztRe>NVPO~Zr9D4`dm!g!?%lY%?z+Fzr2ZAm=o^{O4e|groexPOiS6!2{rc470!aV{ z>;)Y>%6%!oL$HP@um490)XOGn8csm3hDRiu=P8}A|K4{$=Cb4805Qk?bW3W4yewbH zvhNd@iKw*9qmrJU4Ox&p0mJ6f*X2@5^^Z$}D4T(e%TIp+ld)eudEC7d9b8@7Ze4oi zdP{fjiGlS$WvBmV$qA9r|I7U5|Kl!XC@W40%WfyT_@oykbRW+1eg(R4-iMOsObyVa zM!KJ!uAiAuL5@EqTz-4uJY9eOj!n3l)&!Lf?%et74t3AU#fHf94E)v$-A-N+^u^D7 zV3+$_{6Ry`S=@!u(WU}#eu+}F^!Fp$#&;Ak#v&Yrd><=p??5_A@yCj;Aw5R(0EBWm zhPk$~Ox~(1Ei)q{AOQeEEuQY3_8kpWkU{{`oR+RKrMMABQKJR_%A@-pr9uIg^4t;f zU{ddr`AXV7_HZZrL9?1Bv*fLF2!t!h!t%b|xktY*($E0n%2sj;O*k9_wo{~`k&j%( zZA5&&Ly`6LU!y#Unhi&LUA2jiJWX}spMdOH??6kEZY`6$E!PHxxGfbf{+3zW`aj9C zha{iB>+>*{ml)@N@gbnd%Uw4{zwE9j?yPzO87E`P;1IH zLSs6qfe+#ThsTn&MTuq8Z4}>NB6G`_{y-3?T$F2mEI`Z#59lfQerkh;{dlMQHYqto zOz$N?=Qh%RM8R&T62YY_zk#m^%>Co?61Ze_f9kF(SPP!s|3$DSKwXq+NT_!Q=)sqD zpp`6+-sX6@KB6~=WKLe%O2)HRvnK-l@X8Ydg9N(IGg!(NGQk=dX65~sqEO;H&yu9P zv449I*wobYimoG$74{-*-Bas-hmL^UiM>6#n@#enmQT8`kl}f z^Hyvpa<{2&X7zpUFXeWAx(tR$X#LcKAv>-pv2pYG?tSgViHTzGpDny^nF5Q=+;A(} z0LCTpY?sUyyOE4rp-RRjlMJQWG2bGmwSwkvY7m~d++~=fz z5Xo{)fot$-QQ*$z88DoHiGz=mZoh*lITw%6PGWmWvlPu06dLmLJYdtfKb#W$5v`&%-U*1P6nL2WnvA=%T?_M39LDH@O^Kj&@7a;dlIAT4Nl$ zsd65I`rinJK1mLC)K7U-ZssymiH3OxmE{-vsu0_d@cE3KCxYR=W#SxuefbEUy1R|4 zxu(exKZ9i-MRpoqE%2Nceu48PPW>|ppF@c`Rfm#I-D)+5gL&yU0d$<)9a^W^u-Y0(UbqM1y6Lqo( zyl>x5+eIHSQU}XVN}Ad{uN2g5K^sP}Vgs53a=QNrNyV{}qA1dW_t-(-D}%bZ(ic|@ z%Mi$h;gR8t!9i!$G|LIbhU%^mhn{gHI(~4XRM|`W2vhs`sQf)EnfyFTF2(X&?80&J zs%KLBVX;j+>#+B{%M$-IX^kBp*^0j!dh<-!p!7_vY_4yD7?2vwrUi?PW}uG{ZdI$A z1MYTV6WL;3&9gmN)u4%jkv%LHQMYuNvgC5Es-ELS4ytzhczmG0Gal=JAGdLPg4vc= z;KH00=RoLTf6Ob(>rK$X)7%sKAg|=)=PP(8Ev@X!3Z}c#@*SQh_3;*TJuljMv$OX| zcvnkxdt-tK(Kt3hC@|*6Pb4b7Ck@I8UHvPahiH^*idz|cQ_XCfUz(cT9;kG>eRgcp zsh_$exG4Ddz_>VO{izw^VEqc1b((WjlXi}`yCry&gzX-MT=eArFJ^E6(s58f;AXns z?K-x$pG0pzutJw`()YF4&LQcJQ3}<>hc!A6`lnPA{ijHOE}_vp{(6(_aagalQbVMW z+l!t3)QLh|IzG-Cm#+-X5A1uT=kTWct-i#4@%7CEud=2w@7!l13@&*vCJ#z`Jpnzo z8PiCf7pGZve43vgUpc7~f1&bdyLkWDGL{k@n!?NIs{+*yfBf6@AMjk?M$$y@u6CquK0f znqPm3o(g>g`*)ZA9vu7;gVA$xDh>$%Kk{Pw3BYry%cG(5TBf!-Yq~(3lPv}Jo<&H4(>Qv40x`!yj z{^@+b*N8$2^~5Q_XFBu0BHsx3`ncCfM+91Ws5Cq`sb{v00BWs)vPNn4gcY62f>l7Z zwlANRYSv;!UMHqU>u-ziYC$Q)s+Mta^Zf-hiEkavKReG}p{d=(gpJ3fMxR(yYKUW3dH>ecmA1ud9XTdbu~N7q zE7$v*YrR0ueyhEkCzfv21b0tVvhK~)?C8MN?3!&C6;qc&ccuyMU5r7jYwq$BQZadbjkFl6XOIoP3NuPW{?4?7wQ+w-n$o+R;2sv*|Sox97uqChKJtdODqD4rk4zN zUoR`@=g$(`eLiDt+> zj3+peYfn>v-gTf*o5^qexgU9qD~R0wu6@2Q}&Z(LOAP%~)(8=JdDJdd;z-NG-hr^Q!*(=A!YjY3^dtEw52`HSVs+ zO!KO#T#@E7tP8Q$^II3>%ttlhQ6sr>G$^ZOYeIgBn>-wg83jeRS$hC)J?%0J9d^F@qN8wrEp#(l8rGuB9*W#zeAWxV^5=G zI`gjZ_Q@6!$kI!t^IdH;(sDs|>#e3S<~d)xE@XqWq42PXBO> zV~4Fy^0yp1Sx>qpjz46btgOp(+IQ~bA|X)$xT|56tBscJA}*VYr;PCV$?f`0shZ4= zV`iiCjQ{GQH;VrX(Uv&tI7IcpGZ1Jh9W$G7^YHKt*Ls($iOo`XrbysbI3~SOCxPqd zNt4F!b6qI~v+eN`!qqa;ATA|Nlf(jQz={zHhQnVXP86Ae|5l=G(H^S)$^2^S43wlv z>eDCXO|HC=Y9+rwH+g>NjCh9_WYSj*h`ucbW!*Dv@Wl-p@ypgKno+W2Qdive6{F|V zUTj;bugq(T)nwo)L3#3DhP;>8gQ5<+h5vmL78dq--v`tm6E!sLgF~SI z9#!L_7k#JzN|_zOz1$#I^sGOJBX0Rg?3MOz5M=HM*CbPc*$Ob@KVLR5T8em=AmY14 zOnm%G9Sngu0*=3_7Hq-qjF*Oi%qD>%Q;(S6WsYq)$6FGgeuX8Tr2o!fqGm&!QvdVf z_kZ!$f5uI;J`@-8n_e!N{hzNM0I`+S$i8wlrGo2iHn)1dA)l4`mohS35=!D?_dAmr zHO6#GE@s*^rwaemq5)7)VQai$QN=th#611ZBYN?`SX<{^?R+2I(%_$A&H|E!iHV6F zJ--7naq)s8lIG42-lr)3yT^N$7XTKQ>NsedfX&E+QZhAi4QW zSLB=x$|xB)t-ma$so&-XZroys_3_I1D8r2gA-!gnxCafaqO05CSi}2{PoX15AW6I zo}T&%z%;_b!gK`O!gvk50&nt3_NjQsq5ATF2-S?1a-BI6y#UEfG8hNGG%?jj*=wuw z)v)+>^-yd^WIbAd;FIdp-l34@pPyM13E3_5+x%|0ibV1qSn5R+j*iMOXjnbU6wU0v zWFSC6O@2-+*hu_mkG*?4vrYTjE3a`8fkX8C$-?&V=jIOmGbTYtbB~6(a@W#wyb4WC zW^L{8r$ZjQ;Vlk``^ct9pGYNI`uNTiL3AH~H5u6TiL;3#M&oa-cmVC3$FAxb`?< z9ls)8?Bxe~qcFyV^#?CId_QG&W+KiG{~Glgzu34-ERDC2t(4!r@o)OPTWNdtS|2+P z@(!67Eqi|E*!ds`Ko#%hid@f?1P!jl^!a6IGq+qO5=3%a-Dk?Iy^JstPUy&m*yNDt zpF>OcfA=uHsnP5!zeMQ$i6hkBh1F&`MwWIa9bG_IP3uZ+)KrPYYj_ABD3aMDZliqa(wd59{KGRNC96WZ4b6O2D3Tl?h(bCNXt~d zx^~y@V7ORf4``T)x@KjN90~7YZ5Z}#`03P$y>qZ+JZHWlcB58b1l#nvb(et zzReede{=YQgyc;GZ4#^3%I>TDwrnf=Uw;Uv>G4D-?o*jeA2psaX*P;3j;mkVF?Esa zJYr3h=JyJ7%^(Vjw%*!4NS|CQRu!X672qa3(&v95^kA+OYa$ZmdqVirR^m=TTP z2O&r{PU#6Vq+fPw=F{vziHC5PfoH43C46;g)~8jj1F`Y*Dt+yzj9U~$g_XHbF)wn> zcL~mlSbbL{CGy;}f4AxE)j}8xl}UHCrI}okySxs+^l(dEF{>A1=aLIqvvDokhs7J& zkYk|?Kz$V=N(ag-wddt3CA^MxpJ(l;Y*_-mK6(oe|5A2hjVK+m!tU(uF>6~mIvSCTW=?jx z42h!6{|X*#_+Gdy(ivApGD9mkJV9)d$vt>b5x`;$7@DU>$r4om-MNP znefV+RC?d9qYIi7%4%1w*TI2#KVQ#X(&0Brgrl>TJV2S&x>^U)x4I_*4oEFzhO_a?N);*T&5na zwpVV_C`!1m>4I&OkLRH7bDbvvT`*^?IDjy*66>L9MadDQ0M(rO{+j?JZF@cTg$vH( zVso6g-$sC#`FH5$_UM~Rtw%mh#4)!#A}9lNL3eeyOd0%0DWbgyR=tH?%$}5wc8$1| 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 literal 0 HcmV?d00001 diff --git a/blazor/scheduler/images/weekend-color.png b/blazor/scheduler/images/weekend-color.png new file mode 100644 index 0000000000000000000000000000000000000000..ab37aefdfd3a77c731698b15d799a733e92498c6 GIT binary patch literal 23807 zcmc$`cU)6>+CHq~+D4I?aTKKvgMdm?kWProDk4n;DbkeQ5ds7V5G#zLpmYdDq)C@v zlZZ$OC7}qBP$D&wkOT-MgtYhIKKnd7yR+}^KJWYc{Qls>IZ4hr-*(^kbzS%UJx_0# z847(b`u(n5yM&Cc{rTpuU3-dl?fP!$z&_v;ua@!qz`xy)n}(NnRbj=Kfs;RZUNXJ3 zYgbL;A@1G1!1=*@*X$s>b{*;5`P%sIq>%UPj8CJ+Gm0;v%7cgy8n~O>El2%-!p$r`EJ*)8>0C?10RkY06MuV`_6C3d!f4a6{*y|0+evJ=o?*h^4V@pZL3=m$QjcEaG&rBDMAgtWvyP5_yHMB* zp;<#leAvAwF<-u#FMzGp_!F-M2u$jTMR$0&B8bP)*e(J7p1=L)>Sdf*7i5~5DP2AL zn*iLHBS*D}^2!VTnV7s!$~2)oY+O^iPM=ph&{|Vqn_MX4EFh}%OT}!vx3t)%E-Wd; zRf}2r^msE|YnZ6X4N!z@6?b%&+*m_Uf6u9!vaLADMaF8wXZV@3l7+adyU9RzY;QV)8LP=12H~m1!7r33B9c8L&yrv^NT!NN;&`mh#R(Vo zQuyrJl%US}m~l^>3~FeV6@{5P#fecRmMd`Pe(VZ#;be~9YoCG>kuC6HN^nQ^`H&9v znk4X~40}0IS9K$+T?QP}zFnQi6sqJbyBhJ|CKbfravl5;5^R!mjOZUc<48=+lgI2~ zk!D>SC9!Dm%M})_pw_d-#~u-EwM0Wq33BYSxH;DF>V;Wu)U|@Z0i4uzRVY?Nr>U`Q zyrrs@r?%e>jq}@vdb^7Su+3;hC~<}L9=eW{hCA0ktT}eQ=h`n+d_YGCI+|sgRz3C6 zaX_~=D#9O~1~pXXuJ6(IuyAbFn>*Cv7EtSAaZ)6j2Yo5xaiylriHc=UqPZ7qJn9A< zKb_E-*?w|GTTa-Gt@H@mr0LLdT7k)P*DYjpigp5#`ra>b$Kf{3c7nEdk} z=@E0p#pls+EuTeSI8UYe^66l=VIlPA+B@3=D#6ouW$dDW<;*tr>4dfse@~fmt zg+fhHCC9C-JtEeYX8aZEe#KBqHqp>P^JE4SN}tqI#K%_bMmf5& zPiQt)mG{-3CvvdBAj}foX(&@Z%Il!3d`d#iMM8Du!{s(&j%%%|v%ij_=edsq(;Vm_ zlgX}~`$JTlhQv0;p;#j_y|$9xhpP+Zdm-}V%b_pJLACM0CN-@d2KdfBpxZ>wLRxO& zk$(HQjfY5Oczs~7z?`EZQx>>tK&!{o9ty`|hV^XJk{R2`cz49CP|w2A9+ZZ8)pqyN z{!!1ER}}uNSPP>Rq{b?AU5|AE)mL-|Z_69D{^l=b=@Wl6rtMrhV=2^#d2NaQid!G( zb(-g$1V-pfUiMyZ)uc^^n_b^Glc&~1NZw{tbwk!;tKyR7NKI6CoOiXaXj-6v*5^jl z)-Il4&(3lnaOU7tLEnK9Sy5yBE%#P`3+3=TW=oP5$TK7DCAqaPUfj^Ry2l&MJXmb# zPMeyIU9^HpvS2KWi0B%h-t5kNgFo+!eQ|gov^>v7b%PU!wK=n*cG>*$=0dY`tlJ=- zn$BCl$d9&+@Ih!PI*WI`#DL7X9y9@SZ8GMXHMMGUNSE4hZejt;TPi&=w(UrJCg>Ot z7W&iZAr!A}c<*TJ#YmSUft$zL`Ze5W-a)@XO$83Q{GL1~_4@R}-_eHss=NhypZGn$#fy$DwI5+cO&T{K<3ZpCL3V#>BRvV_f9DLUiQ=%J>I%b+fZ70pga-6sMi=wRHV8ML!fD+CuXbWa7n{ z`R7HhadsjOTPlwF%Cilf4o6WmyU1y4f z7@0dy?!vva_+DMC%HhHatiRa`mMHpFqRrnT4c!Kxf%+F-nf`$|9^>fTm&dnA>QU9I zuGi3G;fifk-6LfK{k|Gi4$4P|s><>@YGlCL>qXoi5$6GT)LIvJR7zHWl)h#yV!BOF zyj9!Sh=X(OYB!`be>CC9xs9jmu8)Gt7Qm=2mllW(hvYTRQXGG=agu;)U>EW&S$GbkYUw^k{iF+Xh1%RW<$>6n?!VU<^&zXwFFJ^0(9)wnb# zSAWehY3v@nIIx^Heb=F(#5ZoUL*AAJ{K?y>a~vUYwK4Q42d(GXk9{T6o}RcDSXH#J zuWhQ(YGQu@)B!<}CSqy5CBE|HSCKyZFCbJ>{N`Fj>APY!Um#jvPv{kVU;N$jk{$dO zsx^w3T~oXEAq006ZI=Oc1Tk5hg}zuOjaWT=m+g{2NZhUgmNx&2d4g?*8dFJmd$b-IpMEPv!GF1Msqg$!| z%iPc3cc%G3E>I$mi(TFR*^o8WsH(6pw&RFoo)BEdG64rx$pUQt(`T{mi>fTT#u~~& zYs&V_OmF))r%cSY5VZY_kFwqAx!w!PWfN_ExBwFk5u}R< zQTJ8~7YgA|D&09$RUUwDo)9d)iwbgQ+@IW%1Zm4FE6xmjPN{^yXt*VmnV`OrQA)Fs zn1dO0M!aQajnSLz;Py{Qx-NI`BA*Xx876Ev>F;~~^hVafqmZpU_-Tl|Kn|+h5=ZuTw*GWp7%NpDUVhA6g9p8c+xlEQ^Ht0MgXu>c-mP?`L@D=etmTRI zQvZimp_6 z?i7{k9P^sStL}2fKOLJHlEPnJHs_FS#w(eHM=FNw5$4+^fo4eu*-W%NgJ>tBk$ft( zy);0XJV+_SLCNp$5z92q{2F^l9%ql-d{AGeV^|08BJl6NYhd%AIOUUD_cXXdkM?+m z{^lQKdr#?t24fWf)2H`%t6oq9b4Rxkzl`O6dT@iW%4R}SU!cftLS$APD<8Rr$Y{KE zLV9Oj3<5-dF4pp&J0VUJ*XF_^IKFG)btk*M&iOZ8%sPx@I3Zm%H~utI9eIDy`$XEg zg(DVOhf6AzqK5nqEL&R~?!tUgBeyU`3g9btI*EF>9aYgOKr~etzu*hXFQpjqyr-i^H06w(*ORT{X2)^I zc%9}pu&d=hozVhh!8=@k@KEI*u*>@qctzDV$6V>>Ysr`IiwD25Z(ClyVWY9Zy3fip z)+B8WoYNFbCa>b2IAeK2$_>z3tl;pce)osJTN(dvL+KoiPI*$e)mCvw~eQb3z4TZ6oMkX;tH}>6jM=XB*$# zrLX%_ewq5Uj3F!8dp){rLi$2{K?rgR;Cg6P9#bs`S@eWATuvu?A&^X(Ir zV$aZ}Ee^cS&nQ^W`yWQ76)q-1gdPO*Zn66bHBA`F*J&}1zEVOAxKsGuPq$q-a%nAdM>Ngn%nfWN3 zSg~tI#+>jQ%pG;Ip}MzKo@@2`)I++)96YJu%b2_h3N51Pw_TEQ$4rzDJ4O-urtL%LensYs1YICZ1Eu<_IG5wxPD+$+%FO za7cmV8$B-wzwzn?g6q9{`l5f8zYF&5i&u9Ds0Z~vxT7N0>E{LIOP%5xm61P*4ySlW z@LtYdu{W$Cy>_lUwkysnqi!^I-;%Lk8LRPJdzo|4wavG=HRm z?c`quym}BnB`42_b#?pfT0icp_OJtYTYLwQmpb-ZlLQwW7hKz0scK_l7Y}Kwi{`U^ ziG9_S_lBK^?d+iM=`NlRs1yuf=-6DrhQK+VvHOt5 zrlk6(h3qZrxNva+x~eQ@g)sCaDl5C7r`{Czq8gRUg9}WH&u@rrai_`#Ig_Ft?|SYq zSj$%nCQ6Wg+taO%4H4&}nX`!6w=ed1-wOSX$rFBluLr3Sn9sl8&Qmk6(eb6di>hf% zvg@4c+_YI7MN=F;@^c?OdC~tSuf07e=m}uY#X-`)ZH`5#4=%OUKYQTb7k7Rt>ggN) zvE72;FAb6_RI>2vg2*c1>gX(?m+!SK0FQ2w4WV5oSk!^-!q6u_G~WAC-g;T8p1h-&e}DV8(0qG2h)Ls`&HJ%pnQ@yV_;}FP)h8pTSil?Oovwg+`X%)K<_rUVmiM%IdRx2sFz_!`Vf!M-+^x zYJ5BT#n;(B2DJs3T5c&8Pi+xCwgmg6@8f1{mR-;=>BLzQY7;R&S=khGcU9)j_GD%2 zpZP<_BG4>Mbe+rWml${^T1-`BsnYo?z4R@W1;9@c8<2^p^1xNDu4EnAsf17f&$XC8 zZ+YloD5EqB$>ebwX_VU>uZ&Z0RquPU(=j|y>7zrxjJ317xIOX;n98G~OYt#bbHBt{8Libnm(N{noIX2&Ll?TU0o)FZDctU%pvFR7(Jr2CYg`EQ4KL6&48Q^rll<1|tO0Sh>7orZP{+B>u%$(|r*@E6&|lQ394HA^ zV0*#WemP=eZCsDUJ92wAbg!2ZbYYaEV$yg=bi{U)@pV445#M;|rYo5FDbj?!=js|KObuPGcdqT4gCu1QxM!@mx!}Tl3!5?pnl)cUH-O&i?!R7=a#gGf8&o%w zc5+YR(csP4IkWmS!{E(>f&I_zNQ+pPvHJvld54@_mt&LDIiztZ*B6QNRS|{Fx|LtB zj4UZvXfB=`9o)<_bnP6|4lqWiUoyaYZYGi`laRrKGa~k80&V{d`in7^RgcL;Z1yA; zSd4p&XKX_x?caN?;7QoL&J^4mXe#=j&ZGZjluchK`^ZVlAurF4FFqq0BGm znPU?eeRz%A7fQK^i4x6BAtN;0gOoO9)l8;FEO;78VoaMfC1IdMu3~0%xQBX5ts^zU zp^64hk7g9EBp0lY@vG^2#*_8U6C$4+~T-yrQcgA}d2S-Yt+!V^o z^)>s!rAIqIWjAyt(pZ&KDBk4hI9pK{Tm@w}o`W$hB37MgUXkB5Gsf*}aWkEHLl0h= zVDw?~j)|Y*aE8GYv|ds)GdF8L92Mimrj&e2-TmA`jMi%^Y&y6sFKKO~rQVYh?Vv-s ze#i3h&3z^?-lqjpCvmKmF_mv{UX<=P{i@CrspLtV(Arq?oA+)^lo7_Q#3|#ty6~{h zv6ijkg7q3O+#vrAX0ZNo(bYaD1B8Q}YI5oJ! z-`Enepj)glvo&$gFd*`6nBVlqqt^UK6vh_=OEpdwA8kG!jHCClJox^55V2&bX2E$)sNfA!%pRK69cutfFzby&9A>wSliv>pl+* zSk57{zMYn~6N8+(O+BMDw5xTZTqm4O22DM=0k|G7iL^vs*Qcov-`VaCswSz!qw@gb zFrH7QsNmW^Jmqy%=e$HDtVm&_tt7bwPsisC4|Q?<&(&15#Mcn=MU=xLeUmpy_K8@1 zVcxHfyuFFsUxjHrf(c@0DR?fE;Z!>JQb3=Wsz2_NaWGwuj*cP3$9*9Y1*R|ymWdm!fPdiLy_<|5EmL%%Qnq_LkdUe_!q-+yaVRV-KK~t9>s*VVzKi%-}R?bh+iCdh~MdwvxQL<7h zGfFduIovMNKC_>IQSoWFbw!XJ?%nhthD11?YmpIwD?O1`FLgRC=u{H&Pd!zK>(=?M5 zJriWB1F`kMBbh=BBRco0@_*g=_=3w`Fjx|i&%>=b+ zNjzLLJMI1(`QdKBRDemIdwS>RVpFA=*`Hh*^Sa~br`V6C>RH3u!Mzw*v}Dv%%ZtT5$rnB@&$rgFVFnBiA+Q3)7&P?wNo1hu&2@fRX2{#SB|FmK`P*|Tj zM@}iHb7QQ9H@4m>4d|@DB~NjHXZhawEx_N4ZVK+r0mL$)p79xZce|P#vT|+QjQDq6 zu65Y5s&LS`;PTd`YdmthbB-fdu3I-h#Wah#-4S234QEldTO{k!>PUApku0T_Pa4*GLIl95mkTc4?DlvFhR;kK-N;9v=Dd(Fr2@5 z&XD$|kP%Ps(>_Zz>Lw3V9V*FwqFq$!^3nB2uQLAU7RLS-Z+dd=fT^X%rPJ>3b4bVI z$TP3v(HdHZD-a5C<_nic%@*7b*NULK)*@S$x-RWxEf`30BgbiTx|Ug z5o&Giyc!#;AqdwG-10Pjs}yEwFA49iz{!!K^@R#@JaSUq;ltqrSPpwO;ItoPEHT!I z47Ao~{FR}sLF~NQV32W{g6R=dlT&W=wuqEiusHvhI<$9w!T9-Su0M9Sfl54XcfzJ7 zRq4(N*jm|!WdoRG`XMsTrb$xYZHx9r{^DWuLlsy1zkv+JRP|C@llWmXs_|rll>c~4 zy&Y^MfNF^NcGBp9@E;`kTs8k^spY>$-v1yQ{U2T;>ffx>GZ<;_aUmi*+B3-WHWq?p z^NA`0`)BNYo0?E+b>PTQNky6=hSob_notwlbI_)wWXr$)K4}C(d7>TKp<7PfXl!Ax zwh;TwV=Sioxa`0lf1KR&~{9{5ZMX zBeK++=$ID`4zZpQba$6wd5L}c)d7mGoRc-w7+`&IhMYYos*63CdGKEh&7!WXI|K$G z8#U`x1R);BSe^(m)L=~J{y;~(UI>3Fu4M~OOd`g79Z}SEr@JUkeqQyr9t#~bWIU(_ zrA!MbLF_GEXT%2Y7aK*Cj3XLuh1wphQ}r#GgT4d#l})#z*u&y1mau!%9%6FxOdFiJ zwHeLsPQ{bt%_TDGQ0&D4h?7EBF`x18#s z+D(=ESW)}wZdU#p*X$3$7{=48PVzh!Yn;ED&uVOYfKmIII$_O8i(dP()!pc>^t3w0V*T3NK`1FzQ za+@hj6){0R`uDhZU-&mtva{>I2(N!)#k?F-8Mhe{-5#mCd(#6>rUz4+(Ag|B%GSB= zu6q?yo}GNuyzhBBK9wG6n*gIrodTmkg0ras^5*WY(BSv`aecLPWz5MyZ>_oSuTG$z zD_lM!6sb{Vz8-5L=J9rKU!6aE?uXz~UT%SoZoxWRqA-ULt z(4Ul>>#UIm9!I<|Vn*;%x`VH?CW%}*j99ICvUE0Qh1G+J2lqcJ$Y69c!)&qJw4`j# z%<=@)y{q*SZdwo+aSs0SBu6M3H$^fpmS;CrM7*}`Y&@^t;}~U%;-?!H)$#XTvMlg* z?iR^Ukqf}|a764QNL=!-l4xa`0VVu27^OKuy${9)Kppj)clFy7GljDw8XA2?0PE`y z+&1Med=y?Z&n~nd?LX2VXFj28?#RMx&+8&1sx;)ub2x|Wypw?Oq- zdE9x;^<+oVf@{wad$LZLkFt5a=mO{Nksm8`TsQ7@h@>Y#DPRa(~{M6GaTTb3Ud z)N+nCEv$4=p0$mBuc4Pzb;^;YpFWQY8hrn&AzjdarG+`wSvv{*<{>=l?UrMGl4l@B zvx;M?Lloo=3>gzX#3btqSa4h%nm0MH^`)mwlaAFtQzt*2UT4mAOH*HdQQ!uHpYt4; zQ8x!LbS8AfnM6heU`+8*=SyN%t7{|irAA?c0f?;aeec7hQ&itfd*r-Il*-lHL{2i2 zU1S$0z47g;MhV=Zmqm1_F4rJJP*_Nsf!BR^_YiCjhF|2Um<@6~?H|5N1wkpqg?UZA zbQXLwZ+#QZegEZqys`4&GCbTIt2-Z@cW^2=Y_OtEaKdjiQsCct?B?qki3kD};WL|R?w^&L% z6+!(Ja=hG2$b2f7F3@5pL&bBZ<3sCT0xdO{jbOHzMpZ2yjhOo2LY?i33#PE(nbRI< zb@=lVG*O7auhK0!&c}jT@;f2pZAmd|k1uDBR1v zG_yHlkQ|4~j6YOv0or^NxIma$@DBtP=4X$uO@W}Ep~XwRCuvJfjo@C?ev|8wHcRBW zvOpF6q;kQUvdDY?c}+HE4vjg6glCTm{32_T!fNTmnMludUcWN#(WXH-9Aa37qNPtz zKMODTBX0lcpx4REXF?@04N?LxZ1ajen_tID>}Atjia z+KM1P>+`-U*pr@l>1tTMOI0&zQG4AIo^G!KQXb91+7-&S`}riaZDcvDmL#ulLCdJD zF+^_vb91g^6^QZ9b}9cBC}}@DYvDz#P1BQ{V$y~ze&L}oEr zrl~3O!EACHBHH%XMS@Zee9M8qDTu0xbmH_it;bK379IvF54O~WDbY;CBH8(#iv(ly zz6udK_6aE$Xqvz}lBo-r&wPcKih+?Vic>#1P9rlL)5pHMofGEcOsLvXdkO{# z$zgw$e(KaG{e1Op)FS_}0P#PBd^uXHV?kl(#k6{s|~=H2MZ!>#wx7 z!kP#Wb)cGYSy`8ErC8jh#~Y~2WPTXzav@yAA2AFZ)!fsF^5^Ztj+YGnmp}yy4P~{) z`l+dy+1*eixKLn{lf^xivu%H*&i#EsS7vxr>*^=J0jP6 ztzcp_YmwkvJ&0t@AbhKl8mwukb5J_<`cB>E3HjWJrOc_YNq-^trs**IowL|ls?lG* zt7@aQ>It|EA$J^D5Vdpm-{0-0wKK4K%+Ib}bEhz_iJ&xHdV8I1yW_W-P}iyXL~w2> zW&BvYScQF)aw3=?UK5Tux-&Q3&5Ql%!Y3Q;H@FO(CwqOdYYxa88F=HKL4rRRnw5g8 zdI@t!gtlwBbv#aP(otol8R-+HF9>fxD@1KX8$pBf0&b+g};}vI)2U=23UZ=PG>gfcQEpcqrGFGb znK={De-EsS$yf6%_S|eO2Ic$WE3T6ko_4tax@6_jmq)_byKxd}dyZ(``Pj2_^hj90 zdF$s%E3w#-8NVs5^U1oDez{^ua4o8YAk)GeX_c-4A(u1t&Loqe;Cqor2DdjhUc8C1 zrPM}_4Gd`Ab2*ZA{ybDk%;Ny9V-)hW+r1_K#BJZZ;r#Y9Pk{2=`<0ZPXTCC&)Sh#N z?H{T4Je`w*N#@kn7=5?0ylk3eLKa_%URk!wGs(?}J#6n;xIMd3VVl?U|FuCHoy1PHn4m>lsAFp9SY*GeKX{o6lSy6er zZ*g`hL2gvd)x*&X>FG$zin?}0H3y)ICrAX<6gkW#smiMMwuRa*yY&{REGRnjrlwz$ zvnMIV&6RlWZqUNEN96caPVT2CbBWnWYSnb(Scwk^@sO4Fh3!EFJLWV?v*b|YJuWBws4A-&+&%&V_lq5D$Cn!5Dh24(RI$S2eq`k4X^HohzRO?=rVlVp2+yD0ScI` zE7_st=P&(>^6-D=&Hi61%Kv&vNcKcfkHknr=kPLN_Uow{|2qF9fCv*Bha2rO{e1%w zsS}M%;IOiiI!=@`s5bSphfON$0F1fFwpkYN+jad|-DC0I=gq+kzhdM)NKJ;u5O6mj zk5lM!Ua8`5ySYrJ4F)<#MmU|HZE-m!yG1ot!BKRaQ`70q1~p}uY@pS?y&8WYtI80w0YpYGUCPUr_Pv_$`Z_1y>+=7)4F30#;`8H9!Q^ATu-V5U zDl4b0ciTSz@;euOwcf}~is`b~|vCr4}F+9HK`Bu3XycYJ>U zytNmodZl-bu6SH7!qaeOyU%5IoWU1pNDK3*k1L$c*)ksqI5(Z5w~Z$_N!NK*@2z+C z2MpcLHI2zxFojs85quXyITMSj8a= z#;{MR^x;=cX4h+LlBC9tu@I3r4AbCY_q^z?B=g=yK|@epqNJwuv~wAik$RAg`H;{q zV>I$=5w0r@uY-o7qmPu*>LM>C?Hz*)W6w}~$%o_@FlcHoQGD`Mp2H0o>X6*Rq@fVM z;#7oyLy4J5ms?nJ-H&F~cRSvl0&--#ytG9?R>+&tr0kBFkxo*`!u^AoGMHFcB>^o% z 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 tag. The list data source can also be provided as an instance of [`SfDataManager`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.SfDataManager.html) or by directly using the `` component. + +```cshtml +@using Syncfusion.Blazor.Schedule + + + + + +@code{ + List DataSource { get; set; } = new List + { + new AppointmentData { Id = 1, Subject = "Testing", StartTime = new DateTime(2020, 2, 13, 9, 30, 0) , EndTime = new DateTime(2020, 2, 13, 10, 30, 0)}, + new AppointmentData { Id = 2, Subject = "Conference", StartTime = new DateTime(2020, 2, 11, 10, 30, 0) , EndTime = new DateTime(2020, 2, 11, 12, 0, 0)}, + new AppointmentData { Id = 3, Subject = "Meeting", StartTime = new DateTime(2020, 2, 9, 9, 30, 0) , EndTime = new DateTime(2020, 2, 9, 11, 30, 0)}, + new AppointmentData { Id = 4, Subject = "Vacation", StartTime = new DateTime(2020, 2, 14, 11, 30, 0) , EndTime = new DateTime(2020, 2, 14, 13, 0, 0)} + }; + public class AppointmentData + { + public int Id { get; set; } + public string? Subject { get; set; } + public string? Location { get; set; } + public DateTime StartTime { get; set; } + public DateTime EndTime { get; set; } + public string? Description { get; set; } + public bool IsAllDay { get; set; } + public string? RecurrenceRule { get; set; } + public string? RecurrenceException { get; set; } + public int? RecurrenceID { get; set; } + } +} +``` + +N> By default, `DataManager` utilizes `BlazorAdaptor` for binding local data. +> You can also bind different field names to the default event fields and include additional `custom fields` in the event object collection. Refer to the [Appointment Customization documentation](./appointment-customization.md) for more details. + +## ExpandoObject Binding + +The Scheduler is a generic component that is strongly bound to a model type. However, for scenarios where the model type is unknown at compile-time or runtime, **ExpandoObject** binding can be used. This allows data to be bound as a list of dynamic objects. + +**ExpandoObject** implements the `IDictionary` interface, enabling the addition of properties and values dynamically at runtime, similar to a dictionary. This provides a flexible way to bind data without requiring a predefined class or strict data structure, particularly useful for data sources with varying structures. + +To bind data using `ExpandoObject`, create a list of `ExpandoObject` instances and set it as the `DataSource` property of the Scheduler's `ScheduleEventSettings` component. The Scheduler supports all data operations and editing functionalities with `ExpandoObject` binding. + +```csharp +@using System.Dynamic // Required for ExpandoObject +@using Syncfusion.Blazor.Schedule + + + + + + + + + + +@code { + DateTime CurrentDate { get; set; } = new DateTime(2021, 8, 10); + public List EventsCollection { get; set; } = new List(); + + protected override void OnInitialized() + { + DateTime scheduleStart = new DateTime(2021, 8, 8, 10, 0, 0); + var random = new Random(); // Single instance for better randomness + EventsCollection = Enumerable.Range(1, 5).Select((x) => + { + scheduleStart = scheduleStart.AddDays(1); + dynamic d = new ExpandoObject(); + d.Id = 1000 + x; + d.Subject = (new string[] { "Project Discussion", "Work Flow Analysis", "Report", "Meeting", "Project Demo" })[random.Next(5)]; + d.StartTime = scheduleStart; + d.EndTime = scheduleStart.AddHours(1); + d.IsAllDay = false; + // Recurrence properties are set to null as they are not used in this basic example + d.RecurrenceRule = null; + d.RecurrenceException = null; + d.RecurrenceID = null; + return d; + }).Cast().ToList(); + } +} +``` + +## DynamicObject Binding + +**DynamicObject** binding offers another method for data binding when the model type is unknown at compile time. This approach leverages the `dynamic` keyword, allowing variables to hold objects that can dynamically add or manage properties at runtime. + +To bind data using `DynamicObject`, create a list of custom `DynamicObject` instances and set it as the `DataSource` property of the Scheduler's `ScheduleEventSettings` component. This enables the use of the Scheduler's built-in data operations and editing features with dynamically behaving objects. + +**DynamicObject** implements the `IDynamicMetaObjectProvider` interface, which allows overriding member access operations like `GetMember` and `SetMember` for custom logic. This is particularly useful for scenarios where object behavior is determined at runtime. + +N> For data operations and editing to function correctly, the [`GetDynamicMemberNames`](https://learn.microsoft.com/en-us/dotnet/api/system.dynamic.dynamicobject.getdynamicmembernames?view=net-7.0) method of the `DynamicObject` class must be overridden to return the names of the available properties. + +```csharp +@using System.Dynamic +@using Syncfusion.Blazor.Schedule + + + + + + + + + + + +@code { + DateTime CurrentDate { get; set; } = new DateTime(2021, 8, 10); + public List EventsCollection { get; set; } = new List(); + + protected override void OnInitialized() + { + DateTime scheduleStart = new DateTime(2021, 8, 8, 10, 0, 0); + var random = new Random(); // Single instance for better randomness + EventsCollection = Enumerable.Range(1, 5).Select((x) => + { + scheduleStart = scheduleStart.AddDays(1); + dynamic d = new DynamicDictionary(); + d.Id = 1000 + x; + d.Subject = (new string[] { "Project Discussion", "Work Flow Analysis", "Report", "Meeting", "Project Demo" })[random.Next(5)]; + d.StartTime = scheduleStart; + d.EndTime = scheduleStart.AddHours(1); + d.IsAllDay = false; // Example added for clarity + // Recurrence properties are set to null as they are not used in this basic example + d.RecurrenceRule = null; + d.RecurrenceException = null; + d.RecurrenceID = null; + return d; + }).Cast().ToList(); + } + + // Custom DynamicObject implementation + public class DynamicDictionary : System.Dynamic.DynamicObject + { + private Dictionary dictionary = new Dictionary(); + + // Provides the mechanism for operations that get a member by name. + public override bool TryGetMember(GetMemberBinder binder, out object result) + { + string name = binder.Name; + return dictionary.TryGetValue(name, out result); + } + + // Provides the mechanism for operations that set a member by name. + public override bool TrySetMember(SetMemberBinder binder, object value) + { + dictionary[binder.Name] = value; + return true; + } + + // Provides the enumeration of all dynamic member names. + public override System.Collections.Generic.IEnumerable GetDynamicMemberNames() + { + return this.dictionary.Keys; + } + } +} +``` + +## ObservableCollection + +Utilizing [`ObservableCollection`](https://learn.microsoft.com/en-us/dotnet/api/system.collections.objectmodel.observablecollection-1?view=net-7.0) (a dynamic data collection) provides notifications when items are added, removed, or moved. This collection implements [`INotifyCollectionChanged`](https://learn.microsoft.com/en-us/dotnet/api/system.collections.specialized.inotifycollectionchanged?view=net-7.0), informing the Scheduler of dynamic changes such as additions, removals, moves, or clearing of items. Furthermore, the `AppointmentData` class implements [`INotifyPropertyChanged`](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.inotifypropertychanged?view=net-7.0), which notifies the UI when a property value (e.g., `Subject`) has changed on the client side. + +In this example, the `AppointmentData` class implements `INotifyPropertyChanged`, raising an event when the `Subject` property value is modified. + +```csharp +@using Syncfusion.Blazor.Schedule +@using Syncfusion.Blazor.Buttons +@using System.Collections.ObjectModel +@using System.ComponentModel + +Add Data +Update Data @* Disabled if no data exists *@ +Delete Data @* Disabled if no data exists *@ + + + + + + + + + + + + +@code{ + DateTime CurrentDate { get; set; } = new DateTime(2020, 3, 10); + // Initialize ObservableData directly in the property + public ObservableCollection ObservableData { get; set; } = new ObservableCollection(); + private int uniqueid = 0; // Start unique IDs from 0 or higher + + protected override void OnInitialized() + { + var random = new Random(); // Use a single Random instance + uniqueid = 0; // Reset unique ID counter if re-initialized + + // Populate initial data for ObservableCollection + for (int x = 1; x <= 4; x++) + { + uniqueid++; + ObservableData.Add(new AppointmentData() + { + Id = uniqueid, + Subject = (new string[] { "Project Discussion", "Work Flow Analysis", "Report", "Meeting", "Project Demo" })[random.Next(5)], + StartTime = new DateTime(2020, 3, 8 + x, 9, 0, 0), + EndTime = new DateTime(2020, 3, 8 + x, 11, 0, 0) + }); + } + } + + public void AddRecord() + { + uniqueid++; + ObservableData.Add(new AppointmentData() { Id = uniqueid, Subject = "New Meeting", StartTime = new DateTime(2020, 3, 13, 9, 0, 0), EndTime = new DateTime(2020, 3, 13, 11, 0, 0) }); + } + + public void DeleteRecord() + { + if (ObservableData.Any()) // Check if collection is not empty + { + ObservableData.Remove(ObservableData.First()); + } + } + + public void UpdateRecord() + { + if (ObservableData.Any()) // Check if collection is not empty + { + var data = ObservableData.First(); + data.Subject = "Event Updated via INotifyPropertyChanged"; // This will trigger UI update + } + } + + public class AppointmentData : INotifyPropertyChanged + { + public int Id { get; set; } + private string? _subject; // Backing field for Subject property + public string? Subject + { + get { return _subject; } + set + { + if (_subject != value) // Only notify if value has truly changed + { + _subject = value; + NotifyPropertyChanged(nameof(Subject)); + } + } + } + public string? Location { get; set; } + public DateTime StartTime { get; set; } + public DateTime EndTime { get; set; } + public string? Description { get; set; } + public bool IsAllDay { get; set; } + public string? RecurrenceRule { get; set; } + public string? RecurrenceException { get; set; } + public int? RecurrenceID { get; set; } + public string? StartTimezone { get; set; } + public string? EndTimezone { get; set; } + + public event PropertyChangedEventHandler? PropertyChanged; // Nullable event handler + private void NotifyPropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + } +} +``` + +## Custom Binding (Custom Adaptor) + +It is possible to create a custom `DataAdaptor` by extending the built-in `DataAdaptor` class. This allows for binding data from a custom service and performing CRUD operations using the methods of the `DataAdaptor` abstract class. + +The following example demonstrates the usage of a custom adaptor to bind data with a custom service. The `CustomAdaptor` overrides methods like `ReadAsync`, `InsertAsync`, `UpdateAsync`, and `RemoveAsync` to interact with a local `List`. + +```cshtml +@using Syncfusion.Blazor +@using Syncfusion.Blazor.Schedule +@using Syncfusion.Blazor.Data + + + + + + + + + + + +@code { + public class CustomAdaptor : DataAdaptor + { + // This is a static list to simulate a data store for the custom adaptor + // In a real application, this would interact with a database or external service. + private static List EventDataStore = DataList(); + + public async override Task ReadAsync(DataManagerRequest dataManagerRequest, string key = null) + { + // To mimic asynchronous operation, we delay this operation + await Task.Delay(100); + return dataManagerRequest.RequiresCounts ? new DataResult() { Result = EventDataStore, Count = EventDataStore.Count() } : (object)EventDataStore; + } + + public async override Task InsertAsync(DataManager dataManager, object data, string key) + { + await Task.Delay(100); + if (data is AppointmentData newAppointment) + { + // Assign a new ID; ensure it's unique in a real scenario + newAppointment.Id = EventDataStore.Any() ? EventDataStore.Max(e => e.Id) + 1 : 1; + EventDataStore.Add(newAppointment); + return newAppointment; + } + return data; + } + + public async override Task UpdateAsync(DataManager dataManager, object data, string keyField, string key) + { + await Task.Delay(100); + if (data is AppointmentData updatedAppointment) + { + var appointment = EventDataStore.FirstOrDefault(a => a.Id == updatedAppointment.Id); + if (appointment != null) + { + // Update properties of the existing appointment + appointment.Subject = updatedAppointment.Subject; + appointment.StartTime = updatedAppointment.StartTime; + appointment.EndTime = updatedAppointment.EndTime; + appointment.Location = updatedAppointment.Location; + appointment.Description = updatedAppointment.Description; + appointment.IsAllDay = updatedAppointment.IsAllDay; + appointment.ProjectId = updatedAppointment.ProjectId; + appointment.RecurrenceException = updatedAppointment.RecurrenceException; + appointment.RecurrenceID = updatedAppointment.RecurrenceID; + appointment.RecurrenceRule = updatedAppointment.RecurrenceRule; + // Ensure other properties are updated as needed + } + } + return data; + } + + public async override Task RemoveAsync(DataManager dataManager, object data, string keyField, string key) + { + await Task.Delay(100); + if (data is int appointmentIdToRemove) // Assuming data is the ID + { + EventDataStore.RemoveAll(a => a.Id == appointmentIdToRemove); + } + else if (data is AppointmentData appointmentToRemove) + { + EventDataStore.RemoveAll(a => a.Id == appointmentToRemove.Id); + } + return data; + } + + // Handles batch operations (Add, Update, Delete) typically from drag/drop or batch editing + public async override Task BatchUpdateAsync(DataManager dataManager, object changedRecords, object addedRecords, object deletedRecords, string keyField, string key, int? dropIndex) + { + await Task.Delay(100); + + // Process deletions + if (deletedRecords is List deleteData) + { + foreach (var data in deleteData) + { + EventDataStore.RemoveAll(a => a.Id == data.Id); + } + } + + // Process additions + if (addedRecords is List addData) + { + foreach (var newAppointment in addData) + { + newAppointment.Id = EventDataStore.Any() ? EventDataStore.Max(e => e.Id) + 1 : 1; // Assign unique IDs + EventDataStore.Add(newAppointment); + } + } + + // Process updates + if (changedRecords is List updateData) + { + foreach (var val in updateData) + { + var appointment = EventDataStore.FirstOrDefault(a => a.Id == val.Id); + if (appointment != null) + { + // Update properties of the existing appointment + appointment.Subject = val.Subject; + appointment.StartTime = val.StartTime; + appointment.EndTime = val.EndTime; + appointment.Location = val.Location; + appointment.Description = val.Description; + appointment.IsAllDay = val.IsAllDay; + appointment.ProjectId = val.ProjectId; + appointment.RecurrenceException = val.RecurrenceException; + appointment.RecurrenceID = val.RecurrenceID; + appointment.RecurrenceRule = val.RecurrenceRule; + } + } + } + // Return null or processed records based on requirements + return null; + } + + // Static method to provide initial data for the store + private static List DataList() + { + return new List + { + new AppointmentData { Id = 1, Subject = "Meeting", StartTime = new DateTime(2020, 1, 5, 10, 0, 0) , EndTime = new DateTime(2020, 1, 5, 11, 0, 0), ProjectId = 1, RecurrenceRule = "FREQ=DAILY;INTERVAL=1;COUNT=5;"}, + new AppointmentData { Id = 2, Subject = "Project Discussion", StartTime = new DateTime(2020, 1, 6, 11, 30, 0) , EndTime = new DateTime(2020, 1, 6, 13, 0, 0), ProjectId = 2}, + new AppointmentData { Id = 3, Subject = "Work Flow Analysis", StartTime = new DateTime(2020, 1, 7, 12, 0, 0) , EndTime = new DateTime(2020, 1, 7, 13, 0, 0), ProjectId = 2, RecurrenceRule = "FREQ=DAILY;INTERVAL=1;COUNT=3;"}, + new AppointmentData { Id = 4, Subject = "Report", StartTime = new DateTime(2020, 1, 10, 11, 30, 0) , EndTime = new DateTime(2020, 1, 10, 13, 0, 0), ProjectId = 2} + }; + } + } + + List ProjectData { get; set; } = ResourceList(); + + private static List ResourceList() + { + return new List + { + new ResourceData { Text = "PROJECT 1", Id = 1, Color = "#cb6bb2" }, + new ResourceData { Text = "PROJECT 2", Id = 2, Color = "#56ca85" } + }; + } + + public class AppointmentData + { + public int Id { get; set; } + public string? Subject { get; set; } + public string? Location { get; set; } + public DateTime StartTime { get; set; } + public DateTime EndTime { get; set; } + public string? Description { get; set; } + public bool IsAllDay { get; set; } + public string? RecurrenceRule { get; set; } + public string? RecurrenceException { get; set; } + public int? RecurrenceID { get; set; } + public int ProjectId { get; set; } // Custom field for resource + } + + public class ResourceData + { + public int Id { get; set; } + public string? Text { get; set; } + public string? Color { get; set; } + } +} +``` + +N> The complete procedures to perform CRUD actions with the Syncfusion® Blazor Scheduler using `CustomAdaptor` can be found [here](https://github.com/SyncfusionExamples/Blazor-Scheduler-CRUD-using-custom-adaptor). + +## Remote Data Binding + +Any type of remote data services can be bound to the Scheduler. To achieve this, provide the service URL to the `Url` option of `SfDataManager` within the `` tag. + +### Binding with OData Services + +[OData](https://www.odata.org/documentation/odata-version-3-0/) (Open Data Protocol) is a widely used protocol for creating and consuming RESTful APIs. It provides a standardized way for interacting with data, simplifying the development and consumption of RESTful APIs. + +Data can be retrieved from an OData service using `SfDataManager`. Refer to the following code example for remote data binding using an OData service. + +```cshtml +@using Syncfusion.Blazor +@using Syncfusion.Blazor.Schedule +@using Syncfusion.Blazor.Data +@* Assuming EventData model is defined in Restful_Crud.Models *@ + + + + + + + +@code{ + public Query QueryData { get; set; } = new Query().From("EventDatas"); +} +``` + +### Binding with OData v4 Services + +[ODataV4](https://www.odata.org/documentation/) is the latest version of the OData protocol, offering enhanced features and better performance. It supports advanced query options, data validation, and data shaping, and is based on the JSON format, making it more lightweight. + +To retrieve data from an ODataV4 service using the `DataManager`, it is necessary to use `ODataV4Adaptor` within the ``. + +```cshtml +@using Syncfusion.Blazor +@using Syncfusion.Blazor.Schedule +@using Syncfusion.Blazor.Data +@* Assuming EventData model is defined in Restful_Crud.Models *@ + + + + + + + +@code{ + public Query QueryData { get; set; } = new Query().From("EventDatas"); +} +``` + +N> A working sample demonstrating integration with OData can be found [here](https://github.com/SyncfusionExamples/Blazor-Scheduler-CRUD-using-ODATA-adaptor). + +### Filtering Events Using the In-built Query + +To enable server-side filtering operations based on predetermined conditions, the [`IncludeFiltersInQuery`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_IncludeFiltersInQuery) API can be set to `true`. This constructs a filter query using the start date, end date, and recurrence rule, allowing the request to be filtered accordingly. + +This method significantly improves the component's performance by reducing the amount of data transferred to the client side, thereby enhancing efficiency and responsiveness. However, it is important to consider the potential for longer query strings, which might exceed maximum URL lengths or server limitations. + +```cshtml +@using Syncfusion.Blazor +@using Syncfusion.Blazor.Data; +@using Syncfusion.Blazor.Schedule + + + + @* Example using a public ODataV4 service for Northwind Orders *@ + + + + + + + + + + + + + +@code { + DateTime currentDate { get; set; } = new DateTime(1996, 7, 9); + public Query QueryData { get; set; } = new Query(); + + public class AppointmentData + { + public int Id { get; set; } + public string? ShipName { get; set; } + public DateTime OrderDate { get; set; } + public DateTime RequiredDate { get; set; } + public string? ShipCountry { get; set; } + public string? ShipAddress { get; set; } + public string? ShipRegion { get; set; } + } +} +``` + +The following image illustrates how parameters are passed using an ODataV4 filter. + +![ODataV4 filter showing query parameters in the URL](./images/blazor-odatav4-filter.jpg) + +### Web API Adaptor + +Web API data can be bound to the Scheduler using [`WebApiAdaptor`](https://blazor.syncfusion.com/documentation/data/adaptors#web-api-adaptor). The following sample code demonstrates binding remote services to the Scheduler component. + +```cshtml +@using Syncfusion.Blazor +@using Syncfusion.Blazor.Data; +@using Syncfusion.Blazor.Schedule + + + + + + + + + + + +@code { + DateTime currentDate { get; set; } = new DateTime(2023, 1, 6); + + public class AppointmentData + { + public int Id { get; set; } + public string? Subject { get; set; } + public string? Location { get; set; } + public string? Description { get; set; } + public DateTime StartTime { get; set; } + public DateTime EndTime { get; set; } + public bool? IsAllDay { get; set; } + public string? CategoryColor { get; set; } + public string? RecurrenceRule { get; set; } + public int? RecurrenceID { get; set; } + public int? FollowingID { get; set; } + public string? RecurrenceException { get; set; } + public string? StartTimezone { get; set; } + public string? EndTimezone { get; set; } + } +} +``` + +### URL Adaptor +The [`UrlAdaptor`](https://blazor.syncfusion.com/documentation/data/adaptors#url-adaptor) of `SfDataManager` is used to bind remote data sources. During the initial load of the Scheduler, data is fetched from the remote service via the `Url` property of `SfDataManager` and bound to the Scheduler. + +CRUD (Create, Read, Update, Delete) operations in the Scheduler can be mapped to server-side controller actions using the `InsertUrl`, `RemoveUrl`, `UpdateUrl`, and `CrudUrl` properties. + +* `InsertUrl` – Specifies the URL for a single insertion operation on the server-side. +* `UpdateUrl` – Specifies the URL for updating a single data record on the server-side. +* `RemoveUrl` – Specifies the URL for removing a single data record on the server-side. +* `CrudUrl` – Specifies the URL for performing bulk data operations (batch CRUD) on the server-side. + +The following sample code demonstrates binding data to the Scheduler component through `SfDataManager` using `UrlAdaptor` in a Blazor Web App (server-side project). + +```cshtml +@using Syncfusion.Blazor +@using Syncfusion.Blazor.Data; +@using Syncfusion.Blazor.Schedule +@using Url_Adaptor.Data @* Assuming these namespaces are for data models and services *!/ +@using Url_Adaptor.Models +@using Url_Adaptor.Pages + + + + @* Configure SfDataManager with UrlAdaptor and specific URLs for CRUD operations *!/ + + + + + + + + +@code { + DateTime currentDate { get; set; } = new DateTime(2022, 12, 6); + // The 'Event' model would be defined in Url_Adaptor.Models +} +``` + +The corresponding server-side ASP.NET Core controller code to handle the CRUD operations with `UrlAdaptor` is as follows: + +```csharp +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Syncfusion.Blazor.Data; // Assuming CRUDModel is in this namespace +using System; +using System.Linq; +using System.Threading.Tasks; + +namespace Url_Adaptor.Controllers +{ + [ApiController] + [Route("api/[controller]")] // Base route for the controller + public class SchedulerController : ControllerBase // Renamed DefaultController to SchedulerController + { + private readonly EventsContext dbContext; + + public SchedulerController(EventsContext dbContext) + { + this.dbContext = dbContext; + + // Seed data if the database is empty (for demonstration purposes) + if (!this.dbContext.Events.Any()) + { + foreach (var b in DataSource.GetEvents()) // Assuming DataSource.GetEvents() provides initial data + { + dbContext.Events.Add(b); + } + dbContext.SaveChanges(); + } + } + + [HttpGet] // Changed to HttpGet for Read operation + public IActionResult Get() + { + var events = dbContext.Events.ToList(); + return Ok(events); + } + + [HttpPost("Add")] // Route for Insert operation + public async Task Add([FromBody] CRUDModel args) + { + if (ModelState.IsValid && args.Value != null) + { + // Assign a new ID; ensure it's unique in a real scenario + args.Value.Id = dbContext.Events.Any() ? dbContext.Events.Max(p => p.Id) + 1 : 1; + dbContext.Events.Add(args.Value); + await dbContext.SaveChangesAsync(); + return Ok(args.Value); // Return the added entity, potentially with updated ID + } + return BadRequest(ModelState); + } + + [HttpPost("Update")] // Route for Update operation + public async Task Update([FromBody] CRUDModel args) + { + if (ModelState.IsValid && args.Value != null) + { + var entity = await dbContext.Events.FindAsync(args.Value.Id); + if (entity != null) + { + // Update only changed values + dbContext.Entry(entity).CurrentValues.SetValues(args.Value); + await dbContext.SaveChangesAsync(); + return Ok(args.Value); // Return the updated entity + } + return NotFound(); + } + return BadRequest(ModelState); + } + + [HttpPost("Delete")] // Route for Remove operation + public async Task Delete([FromBody] CRUDModel args) + { + if (args.Key != null) // args.Key contains the ID of the item to delete + { + var key = Convert.ToInt32(Convert.ToString(args.Key)); + var app = await dbContext.Events.FindAsync(key); + if (app != null) + { + dbContext.Events.Remove(app); + await dbContext.SaveChangesAsync(); + return Ok(app); // Return the deleted entity + } + return NotFound(); + } + return BadRequest("Invalid request: Key is missing."); + } + + [HttpPost("Batch")] // Route for Batch operations + public async Task Batch([FromBody] CRUDModel args) + { + // Process deleted items + if (args.Deleted != null && args.Deleted.Any()) + { + foreach (Event appointment in args.Deleted) + { + var app = await dbContext.Events.FindAsync(appointment.Id); + if (app != null) + { + dbContext.Events.Remove(app); + } + } + } + // Process added items + if (args.Added != null && args.Added.Any()) + { + foreach (Event appointment in args.Added) + { + // Assign a new ID; ensure uniqueness + appointment.Id = dbContext.Events.Any() ? dbContext.Events.Max(p => p.Id) + 1 : 1; + dbContext.Events.Add(appointment); + } + } + // Process changed items + if (args.Changed != null && args.Changed.Any()) + { + foreach (Event appointment in args.Changed) + { + var entity = await dbContext.Events.FindAsync(appointment.Id); + if (entity != null) + { + dbContext.Entry(entity).CurrentValues.SetValues(appointment); + } + } + } + await dbContext.SaveChangesAsync(); + // Return processed data (often args.Value, args.Added, args.Changed, args.Deleted) + return Ok(args); + } + } + + // Example Event model for the database context + public class Event + { + public int Id { get; set; } + public string? Subject { get; set; } + public string? Location { get; set; } + public string? Description { get; set; } + public DateTime StartTime { get; set; } + public DateTime EndTime { get; set; } + public bool? IsAllDay { get; set; } + public string? CategoryColor { get; set; } + public string? RecurrenceRule { get; set; } + public int? RecurrenceID { get; set; } + public int? FollowingID { get; set; } + public string? RecurrenceException { get; set; } + public string? StartTimezone { get; set; } + public string? EndTimezone { get; set; } + } + + // Example EventsContext for Entity Framework Core + public class EventsContext : DbContext + { + public EventsContext(DbContextOptions options) : base(options) { } + public DbSet Events { get; set; } + // Further configuration if needed + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder.Entity().HasKey(e => e.Id); // Ensure Id is recognized as primary key + // Additional model configurations + } + } +} +``` + +### Sending Additional Parameters to the Server + +To send an additional custom parameter with the data request, use the `AddParams` method of [`Query`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_Query). Assign this `Query` object (with additional parameters) to the `Query` property of `ScheduleEventSettings`. + +```cshtml +@using Syncfusion.Blazor +@using Syncfusion.Blazor.Schedule +@using Syncfusion.Blazor.Data +@* Assuming EventData model is defined in Restful_Crud.Models *@ + + + + + + + +@code{ + public Query QueryData { get; set; } = new Query().From("EventDatas").AddParams("Readonly", true); +} +``` + +The value passed to the additional parameter is shown in the following image. + +![Passing Additional Parameters in Blazor Scheduler showing a custom parameter in the network request](./images/blazor-scheduler-additional-parameters.png) + +N> Parameters added using the `Query` property will be sent along with the data request to the server on every Scheduler action. + +### Authorization and Authentication + +It is common to have authorization configured on the server to prevent anonymous access to data services. `SfDataManager` can consume data from such protected remote services by including the proper bearer token in the request. The access token or bearer token can be utilized by `SfDataManager` in one of the following ways: + +* **Using a pre-configured `HttpClient`:** Register a pre-configured `HttpClient` with the access token or an authentication message handler before calling `AddSyncfusionBlazor()` in `Program.cs`. This ensures that `SfDataManager` uses the already configured `HttpClient` instead of creating its own. +* **Setting access token in `HttpClient.DefaultRequestHeaders`:** Inject `HttpClient` into the Blazor component and set the access token in `DefaultRequestHeaders`. + +```csharp +@inject HttpClient _httpClient + +@code { + protected override async Task OnInitializedAsync() + { + // ... (retrieve tokenValue, e.g., from local storage or authentication service) ... + var tokenValue = "your_access_token_here"; // Replace with actual token retrieval + _httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {tokenValue}"); + + await base.OnInitializedAsync(); + } +} +``` + +* **Setting the access token in the `Headers` property of `SfDataManager`:** The `Headers` property directly allows adding custom HTTP headers. Refer to [Setting Custom Headers](#setting-custom-headers) for this approach. + +Retrieving the bearer token may vary depending on the access token provider. More information on configuring `HttpClient` with authentication can be found on the official Microsoft page [here](https://learn.microsoft.com/en-us/aspnet/core/blazor/security/webassembly/additional-scenarios?view=aspnetcore-7.0). + +### Setting Custom Headers + +To add custom headers to the data request, use the [`Headers`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DataManager.html#Syncfusion_Blazor_DataManager_Headers) property of the [`SfDataManager`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.SfDataManager.html). + +The following sample code demonstrates adding custom headers to the `SfDataManager` request: + +```cshtml +@using Syncfusion.Blazor +@using Syncfusion.Blazor.Data; +@using Syncfusion.Blazor.Schedule + + + + + + + + + + + +@code { + DateTime currentDate { get; set; } = new DateTime(2023, 1, 6); + private IDictionary HeaderData { get; set; } = new Dictionary + { + { "X-Custom-Header", "MyCustomValue" }, + { "Authorization", "Bearer your_token_here" } // Example: Adding an authorization token + }; + + public class AppointmentData + { + public int Id { get; set; } + public string? Subject { get; set; } + public string? Location { get; set; } + public string? Description { get; set; } + public DateTime StartTime { get; set; } + public DateTime EndTime { get; set; } + public bool? IsAllDay { get; set; } + public string? CategoryColor { get; set; } + public string? RecurrenceRule { get; set; } + public int? RecurrenceID { get; set; } + public int? FollowingID { get; set; } + public string? RecurrenceException { get; set; } + public string? StartTimezone { get; set; } + public string? EndTimezone { get; set; } + } +} +``` + +### Handling HTTP Errors + +During server interaction from the Scheduler, server-side exceptions or HTTP errors might occur. These error messages or exception details can be acquired on the client-side using the [`OnActionFailure`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnActionFailure) event. + +The argument passed to the `OnActionFailure` event contains the error details returned from the server. + +The following sample code demonstrates notifying the user when a server-side exception has occurred: + +```cshtml +@using Syncfusion.Blazor +@using Syncfusion.Blazor.Data; +@using Syncfusion.Blazor.Schedule + +@ErrorDetails + + + + + + + + @* Using an invalid URL to force an error *!/ + + + + + + +@code { + DateTime currentDate { get; set; } = new DateTime(2023, 1, 6); + public string ErrorDetails { get; set; } = ""; + + public class AppointmentData + { + public int Id { get; set; } + public string? Subject { get; set; } + public string? Location { get; set; } + public string? Description { get; set; } + public DateTime StartTime { get; set; } + public DateTime EndTime { get; set; } + public bool? IsAllDay { get; set; } + public string? CategoryColor { get; set; } + public string? RecurrenceRule { get; set; } + public int? RecurrenceID { get; set; } + public int? FollowingID { get; set; } + public string? RecurrenceException { get; set; } + public string? StartTimezone { get; set; } + public string? EndTimezone { get; set; } + } + + public void ActionFailure(ActionEventArgs args) + { + // Access args.Error for detailed error information + this.ErrorDetails = $"Server exception: {args.Error?.Code} - {args.Error?.Message}"; + StateHasChanged(); + } +} +``` +## Load on Demand + +The Scheduler supports implementing data loading on demand, which helps minimize data transfer over the network, particularly with large volumes of data. This is achieved by filtering appointments on the server side based on the currently requested `StartDate` and `EndDate`. + +The following code example describes the behavior of load-on-demand using a custom adaptor. + +{% tabs %} + +{% highlight razor %} + +@using Syncfusion.Blazor.Schedule +@using Syncfusion.Blazor.Data +@using syncfusion_blazor_app.Data @* Assuming AppointmentDataAdaptor is defined here *!/ + + + + + + + + + + + + + + + +@code { + DateTime SelectedDate { get; set; } = new DateTime(2023, 5, 10); + // AppointmentData model would typically be defined in syncfusion_blazor_app.Data + public class AppointmentData + { + public int Id { get; set; } + public int UserID { get; set; } // Example of a custom field in data model + public string? Subject { get; set; } + public DateTime StartTime { get; set; } + public DateTime EndTime { get; set; } + public bool IsAllDay { get; set; } + public string? Location { get; set; } + public string? Description { get; set; } + public string? RecurrenceRule { get; set; } + public int? RecurrenceID { get; set; } + public string? RecurrenceException { get; set; } + public string? StartTimezone { get; set; } + public string? EndTimezone { get; set; } + public bool IsReadOnly { get; set; } + } +} + +{% endhighlight %} + +{% highlight c# tabtitle="AppointmentDataAdaptor.cs" %} + +using Syncfusion.Blazor; +using Syncfusion.Blazor.Data; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; // Required for FirstAsync, ToListAsync etc. + +namespace syncfusion_blazor_app.Data +{ + public class AppointmentDataAdaptor : DataAdaptor + { + private readonly AppointmentDataService _appService; + + // Constructor for dependency injection + public AppointmentDataAdaptor(AppointmentDataService appService) + { + _appService = appService; + } + + // Reads appointments based on the Scheduler's current view range + public async override Task ReadAsync(DataManagerRequest dataManagerRequest, string key = null) + { + DateTime start = (DateTime)dataManagerRequest.Params["StartDate"]; // Extract StartDate from DataManagerRequest + DateTime end = (DateTime)dataManagerRequest.Params["EndDate"]; // Extract EndDate from DataManagerRequest + + var appointments = await _appService.Get(start, end); + return dataManagerRequest.RequiresCounts + ? new DataResult() { Result = appointments, Count = appointments.Count() } + : (object)appointments; + } + + // Inserts a new appointment + public async override Task InsertAsync(DataManager dataManager, object data, string key) + { + if (data is AppointmentData newAppointment) + { + await _appService.Insert(newAppointment); + } + return data; + } + + // Updates an existing appointment + public async override Task UpdateAsync(DataManager dataManager, object data, string keyField, string key) + { + if (data is AppointmentData updatedAppointment) + { + await _appService.Update(updatedAppointment); + } + return data; + } + + // Removes an appointment + public async override Task RemoveAsync(DataManager dataManager, object data, string keyField, string key) + { + // 'data' will be the ID of the appointment to remove if keyField is "Id" + if (data is int appointmentId) + { + var app = await _appService.GetByID(appointmentId); + if (app != null) await _appService.Delete(app); + } + return data; + } + + // Handles batch CRUD operations + public async override Task BatchUpdateAsync(DataManager dataManager, object changedRecords, object addedRecords, object deletedRecords, string keyField, string key, int? dropIndex) + { + // Process deletions + List? deleteData = deletedRecords as List; + if(deleteData != null) + { + foreach (var data in deleteData) + { + await _appService.Delete(data); + } + } + + // Process additions + List? addData = addedRecords as List; + if(addData != null) + { + foreach (var data in addData) + { + await _appService.Insert(data); + } + } + + // Process updates + List? updateData = changedRecords as List; + if (updateData != null) + { + foreach (var data in updateData) + { + await _appService.Update(data); + } + } + // Returning null or a DataResult is typical for batch updates + return null; // Or return new DataResult { Result = changedRecords, AddedRecords = addedRecords, ChangedRecords = changedRecords, DeletedRecords = deletedRecords }; + } + } +} + +{% endhighlight %} + +{% highlight c# tabtitle="AppointmentDataService.cs" %} + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; // Required for Entity Framework Core operations + +namespace syncfusion_blazor_app.Data +{ + public class AppointmentDataService + { + private readonly AppointmentDataContext _appointmentDataContext; + + public AppointmentDataService(AppointmentDataContext appDBContext) + { + _appointmentDataContext = appDBContext; + } + + // Retrieves appointments within a specified date range for load on demand + public async Task> Get(DateTime StartDate, DateTime EndDate) + { + return await _appointmentDataContext.AppointmentDatas + .Where(evt => evt.StartTime >= StartDate && evt.EndTime <= EndDate) + .ToListAsync(); + } + + // Inserts a new appointment into the database + public async Task Insert(AppointmentData appointment) + { + // Assign a unique ID if doing client-side ID generation + if (appointment.Id == 0) // Assuming 0 indicates a new item without an ID + { + appointment.Id = _appointmentDataContext.AppointmentDatas.Any() + ? _appointmentDataContext.AppointmentDatas.Max(a => a.Id) + 1 + : 1; + } + _appointmentDataContext.AppointmentDatas.Add(appointment); + await _appointmentDataContext.SaveChangesAsync(); + } + + // Retrieves an appointment by its ID + public async Task GetByID(int id) // Changed to nullable + { + return await _appointmentDataContext.AppointmentDatas.FirstOrDefaultAsync(c => c.Id == id); + } + + // Updates an existing appointment in the database + public async Task Update(AppointmentData appointment) + { + var app = await _appointmentDataContext.AppointmentDatas.FirstOrDefaultAsync(c => c.Id == appointment.Id); + + if (app != null) + { + // Update properties from the incoming appointment object + app.UserID = appointment.UserID; + app.Subject = appointment.Subject; + app.StartTime = appointment.StartTime; + app.EndTime = appointment.EndTime; + app.IsAllDay = appointment.IsAllDay; + app.Location = appointment.Location; + app.Description = appointment.Description; + app.RecurrenceRule = appointment.RecurrenceRule; + app.RecurrenceID = appointment.RecurrenceID; + app.RecurrenceException = appointment.RecurrenceException; + app.StartTimezone = appointment.StartTimezone; + app.EndTimezone = appointment.EndTimezone; + app.IsReadOnly = appointment.IsReadOnly; + + _appointmentDataContext.AppointmentDatas.Update(app); // Use Update method + await _appointmentDataContext.SaveChangesAsync(); + } + } + + // Deletes an appointment from the database + public async Task Delete(AppointmentData appointment) + { + var app = await _appointmentDataContext.AppointmentDatas.FirstOrDefaultAsync(c => c.Id == appointment.Id); + + if (app != null) + { + _appointmentDataContext.AppointmentDatas.Remove(app); + await _appointmentDataContext.SaveChangesAsync(); + } + } + } + + // Example DbContext for AppointmentData (assuming appropriate setup in Program.cs) + public class AppointmentDataContext : DbContext + { + public AppointmentDataContext(DbContextOptions options) : base(options) { } + public DbSet AppointmentDatas { get; set; } = null!; // Non-nullable DbSet + } +} + +{% endhighlight %} + +{% endtabs %} +The complete working sample for load on demand using a Custom Adaptor can be downloaded from [GitHub](https://github.com/SyncfusionExamples/blazor-scheduler-load-appointments-on-demand). + + +## SQL Server Data Binding (SQL Client) + +The following examples demonstrate how to consume data from SQL Server using Microsoft SqlClient and bind it to the Blazor Scheduler. This requirement can be achieved by using a [Custom Adaptor](./custom-binding#custom-adaptor-as-component). + +Before implementation, add the required NuGet packages like **Microsoft.Data.SqlClient** and **Syncfusion.Blazor** to the application. In the following sample, the `CustomAdaptor` is created as a Blazor component. In its `Read` method, filter appointments are retrieved using `DataManagerRequest`. + +Based on the `DataManagerRequest`, an SQL query string is formed and executed. The `SqlDataAdapter` then retrieves data from the database. The `Fill` method of the `DataAdapter` populates a `DataSet` with the results of the `SelectCommand`, which is then converted into a `List` of `AppointmentData`. The `Result` and `Count` pair object are returned in the `Read` method to bind the data to the Scheduler. + +```cshtml +@using Syncfusion.Blazor.Schedule +@using Syncfusion.Blazor.Data +@using syncfusion_blazor_app.Data +@using syncfusion_blazor_app.Shared + + + + + + + + + + + + @* Referring to the CustomAdaptorComponent below *!/ + + + + +@code { + DateTime SelectedDate { get; set; } = new DateTime(2023, 5, 10); + // AppointmentData model would be defined in syncfusion_blazor_app.Data or a general Models namespace + public class AppointmentData + { + public int Id { get; set; } + public string? Subject { get; set; } + public DateTime StartTime { get; set; } + public DateTime EndTime { get; set; } + public bool IsAllDay { get; set; } + // ... (other properties as needed for the database schema) ... + } +} +``` + +```cshtml +@using Syncfusion.Blazor; +@using Syncfusion.Blazor.Data; +@using Microsoft.Data.SqlClient; // Required for SQL client +@using System.Data; // Required for DataSet +@using System.IO; // Required for Path, Directory +@using Microsoft.AspNetCore.Hosting; // For IHostingEnvironment +@using System.Text.Json.Serialization; // For [JsonIgnore] attribute on RenderFragment +@using System.Linq; // For .AsEnumerable(), .Select() + +@inject IHostingEnvironment _env // Inject IHostingEnvironment to get content root path + +@inherits DataAdaptor @* Inherit from DataAdaptor and specify TValue *!/ + +@* ChildContent is provided when CustomAdaptorComponent is used as a child of SfDataManager *!/ +@if (ChildContent != null) +{ + @ChildContent +} + +@code { + [Parameter] + [JsonIgnore] // Ignore this property during JSON serialization + public RenderFragment? ChildContent { get; set; } // Make nullable + + // List to hold appointments read from the database + List Appointment { get; set; } = new List(); + + // Helper method to create and execute SQL commands + public static DataSet CreateCommand(string queryString, string connectionString) + { + using (SqlConnection connection = new SqlConnection(connectionString)) + { + SqlDataAdapter adapter = new SqlDataAdapter(queryString, connection); + DataSet dt = new DataSet(); + try + { + connection.Open(); // Blocking call, consider async in real apps + adapter.Fill(dt); // Blocking call, consider async in real apps + } + catch (SqlException se) + { + Console.WriteLine($"SQL Exception: {se.Message}"); + // Log the exception details for debugging + } + finally + { + if (connection.State == ConnectionState.Open) + { + connection.Close(); + } + } + return dt; + } + } + + // Performs data Read operation + public async override Task ReadAsync(DataManagerRequest dataManagerRequest, string key = null) // Changed to ReadAsync + { + // Construct connection string dynamically based on environment + string databaseFilePath = Path.Combine(_env.ContentRootPath, "App_Data", "AppointmentDataDB.mdf"); + string connectionString = $"Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename={databaseFilePath};Integrated Security=True;MultipleActiveResultSets=True;"; + + string queryStr = "SELECT * FROM dbo.AppointmentDatas"; + + // Execute the query to retrieve data + DataSet dataSet = CreateCommand(queryStr, connectionString); // Still a blocking call + + // Convert DataRow to AppointmentData list + // Map explicitly to avoid issues if column names differ from property names + Appointment = dataSet.Tables[0].AsEnumerable().Select(r => new AppointmentData + { + Id = r.Field("Id"), + Subject = r.Field("Subject") ?? string.Empty, + StartTime = r.Field("StartTime"), + EndTime = r.Field("EndTime") + // Map other fields as necessary (e.g., Location, Description, IsAllDay) + }).ToList(); + + // Get total count (for pagination) + using (SqlConnection con = new SqlConnection(connectionString)) + { + await con.OpenAsync(); // Use async version + SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM dbo.AppointmentDatas", con); + int count = (int)await cmd.ExecuteScalarAsync(); // Use async version + return new DataResult() { Result = Appointment, Count = count }; + } + } + + // Overrides for other CRUD operations would go here if needed. + // E.g., InsertAsync, UpdateAsync, RemoveAsync, BatchUpdateAsync +} +``` + +The complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/blazor-scheduler-sql-server-databinding). + +## Performing CRUD using Entity Framework + +To consume data from **Entity Framework Core** in the Scheduler component, follow these steps. For a quick visual guide on CRUD actions with Entity Framework, watch this video: + +{% youtube +"youtube:https://www.youtube.com/watch?v=QlzdcZTmOrU-0"%} + +### Create DBContext Class + +First, create a `DBContext` class (e.g., `ScheduleDataContext`) to connect to your database (e.g., Microsoft SQL Server). This context defines the entities that Entity Framework Core will manage. + +```csharp +using Microsoft.EntityFrameworkCore; +using Restful_Services.Models; // Assuming EventData is defined here + +namespace Restful_Services.Data // Changed namespace to Data for typical ASP.NET Core MVC/API project +{ + public partial class ScheduleDataContext : DbContext + { + public ScheduleDataContext(DbContextOptions options) + : base(options) + { + } + + public virtual DbSet EventData { get; set; } = null!; // Non-nullable DbSet + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id); // Define primary key + entity.Property(e => e.Id).ValueGeneratedOnAdd(); // Id usually generated on add + entity.Property(e => e.EndTime).HasColumnType("datetime"); + entity.Property(e => e.RecurrenceID).HasColumnName("RecurrenceID"); + entity.Property(e => e.StartTime).HasColumnType("datetime"); + // Add any other necessary configurations like HasMaxLength, IsRequired etc. + }); + // OnModelCreatingPartial(modelBuilder); // Not typical in EF Core setup + } + + // partial void OnModelCreatingPartial(ModelBuilder modelBuilder); // Not typical in EF Core setup + } + + // Example EventData model matching database schema + public class EventData + { + public int Id { get; set; } + public string? Subject { get; set; } + public DateTime StartTime { get; set; } + public DateTime EndTime { get; set; } + public string? StartTimezone { get; set; } + public string? EndTimezone { get; set; } + public string? Location { get; set; } + public string? Description { get; set; } + public bool? IsAllDay { get; set; } + public bool? IsBlock { get; set; } + public bool? IsReadOnly { get; set; } + public int? FollowingID { get; set; } + public int? RecurrenceID { get; set; } + public string? RecurrenceRule { get; set; } + public string? RecurrenceException { get; set; } + } +} +``` + +### Creating an API Controller + +Create an ASP.NET Core API controller which allows the Scheduler to consume data from Entity Framework Core. The following code example demonstrates how to perform CRUD operations using Entity Framework within an API. + +```csharp +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Restful_Services.Data; // Your DbContext and Models namespace +using System; +using System.Linq; +using System.Threading.Tasks; + +namespace Restful_Services.Controllers +{ + [ApiController] + [Route("api/[controller]")] // Route to access the controller + public class SchedulerApiController : ControllerBase // Renamed for clarity in ASP.NET Core + { + private readonly ScheduleDataContext _dbContext; + + public SchedulerApiController(ScheduleDataContext dbContext) + { + _dbContext = dbContext; + } + + // GET: api/SchedulerApi (for reading appointments) + [HttpGet] + public async Task>> Get() + { + return await _dbContext.EventData.ToListAsync(); + } + + // POST: api/SchedulerApi (for creating an appointment) + [HttpPost] + public async Task> Post([FromBody] EventData eventData) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + // Ensure unique ID for new entries if not auto-generated by DB + if (eventData.Id == 0) // Assuming 0 for new non-recurring events + { + eventData.Id = _dbContext.EventData.Any() ? _dbContext.EventData.Max(e => e.Id) + 1 : 1; + } + + _dbContext.EventData.Add(eventData); + await _dbContext.SaveChangesAsync(); + + return CreatedAtAction(nameof(Get), new { id = eventData.Id }, eventData); // Return 201 Created + } + + // PUT: api/SchedulerApi/{id} (for updating an appointment) + [HttpPut("{id}")] + public async Task Put(int id, [FromBody] EventData eventData) + { + if (id != eventData.Id) + { + return BadRequest(); + } + + _dbContext.Entry(eventData).State = EntityState.Modified; + + try + { + await _dbContext.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!_dbContext.EventData.Any(e => e.Id == id)) + { + return NotFound(); + } + else + { + throw; + } + } + return NoContent(); // Return 204 No Content + } + + // DELETE: api/SchedulerApi/{id} (for deleting an appointment) + [HttpDelete("{id}")] + public async Task Delete(int id) + { + var eventData = await _dbContext.EventData.FindAsync(id); + if (eventData == null) + { + return NotFound(); + } + + _dbContext.EventData.Remove(eventData); + await _dbContext.SaveChangesAsync(); + + return NoContent(); // Return 204 No Content + } + + // Additional handling for OData filtering by date range (if needed for Read operation) + [HttpGet("GetByDate")] + public async Task>> GetByDate(DateTime StartDate, DateTime EndDate) + { + return await _dbContext.EventData.Where(evt => evt.StartTime >= StartDate && evt.EndTime <= EndDate).ToListAsync(); + } + } +} + +``` + +N> Ensure that `Startup.cs` or `Program.cs` registers the `ScheduleDataContext` for dependency injection and configures services like controllers and JSON serialization. + +### Configure Scheduler Component Using `WebApiAdaptor` + +Now, configure the Scheduler component to interact with the created ASP.NET Core Web API service using `WebApiAdaptor`. + +```cshtml +@using Syncfusion.Blazor +@using Syncfusion.Blazor.Schedule +@using Syncfusion.Blazor.Data +@using Restful_Services.Data // Assuming EventData model is here + + + + @* Use the URL of your created ASP.NET Core Web API *!/ + + + +@code { + // Query can be configured to target specific endpoint if needed + public Query QueryData { get; set; } = new Query(); +} +``` + +N> The complete working sample for Entity Framework integration can be found [here](https://github.com/SyncfusionExamples/blazor-scheduler-crud-using-restful-service). + +## Configuring Scheduler with Google API Service + +The Scheduler can be configured to retrieve events from a Google Calendar API service. The data obtained from Google services would typically be assigned to the Scheduler's `DataSource` within the `OnInitializedAsync` method. CRUD actions would then be performed by interacting with the Google API through a custom service, usually triggered in the Scheduler's `ActionCompleted` event. + +A custom service would need to be implemented to connect and retrieve events from the Google Calendar API. + +N> A runnable sample demonstrating Google Calendar synchronization with Blazor Scheduler is available [here](https://github.com/SyncfusionExamples/google-calendar-synchronization-with-blazor-scheduler). + +## See also + +* [How to Access Microsoft Graph Calendar Events with Syncfusion® Blazor Scheduler](https://www.syncfusion.com/blogs/post/how-to-access-microsoft-graph-calendar-events-with-syncfusion-blazor-scheduler.aspx ) +* [Easy Steps to Synchronize JIRA Calendar Tasks with the Blazor Scheduler](https://www.syncfusion.com/blogs/post/easy-steps-to-synchronize-jira-calendar-tasks-with-the-blazor-scheduler.aspx) \ No newline at end of file From 443ab8f4bdc00fcd6d10a0015563ba74aae499f5 Mon Sep 17 00:00:00 2001 From: praveensf4999 Date: Mon, 6 Oct 2025 16:39:59 +0530 Subject: [PATCH 2/4] 984382: Updated the UG document for scheduler --- blazor/scheduler/test.md | 1605 -------------------------------------- 1 file changed, 1605 deletions(-) delete mode 100644 blazor/scheduler/test.md diff --git a/blazor/scheduler/test.md b/blazor/scheduler/test.md deleted file mode 100644 index 416fea7f8e..0000000000 --- a/blazor/scheduler/test.md +++ /dev/null @@ -1,1605 +0,0 @@ -```markdown ---- -layout: post -title: Data Binding in Blazor Scheduler Component | Syncfusion -description: This section explains how to bind various data sources to the Syncfusion Blazor Scheduler component, covering list binding, dynamic object binding, custom adaptors, and remote data services using DataManager adaptors. -platform: Blazor -control: Scheduler -documentation: ug ---- - -# Data Binding in Blazor Scheduler Component - -The Scheduler component utilizes [`DataManager`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DataManager.html) to handle data binding, supporting both RESTful data service binding and direct data source collections. The [`DataSource`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_DataSource) property within `ScheduleEventSettings` can be assigned either an instance of `DataManager` or a list of data source collections. - -The Scheduler supports the following primary methods for data binding: - -* List Binding -* Remote Data Binding - -Please take a moment to watch this video to learn about data binding in the Blazor Scheduler. - -{% youtube -"youtube:https://www.youtube.com/watch?v=EwfxPrqxma8"%} - -## List Binding - -To bind data from a local list to the Scheduler, simply assign a collection of data objects (implementing `IEnumerable`) to the [`DataSource`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_DataSource) property within the `` tag. The list data source can also be provided as an instance of [`SfDataManager`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.SfDataManager.html) or by directly using the `` component. - -```cshtml -@using Syncfusion.Blazor.Schedule - - - - - -@code{ - List DataSource { get; set; } = new List - { - new AppointmentData { Id = 1, Subject = "Testing", StartTime = new DateTime(2020, 2, 13, 9, 30, 0) , EndTime = new DateTime(2020, 2, 13, 10, 30, 0)}, - new AppointmentData { Id = 2, Subject = "Conference", StartTime = new DateTime(2020, 2, 11, 10, 30, 0) , EndTime = new DateTime(2020, 2, 11, 12, 0, 0)}, - new AppointmentData { Id = 3, Subject = "Meeting", StartTime = new DateTime(2020, 2, 9, 9, 30, 0) , EndTime = new DateTime(2020, 2, 9, 11, 30, 0)}, - new AppointmentData { Id = 4, Subject = "Vacation", StartTime = new DateTime(2020, 2, 14, 11, 30, 0) , EndTime = new DateTime(2020, 2, 14, 13, 0, 0)} - }; - public class AppointmentData - { - public int Id { get; set; } - public string? Subject { get; set; } - public string? Location { get; set; } - public DateTime StartTime { get; set; } - public DateTime EndTime { get; set; } - public string? Description { get; set; } - public bool IsAllDay { get; set; } - public string? RecurrenceRule { get; set; } - public string? RecurrenceException { get; set; } - public int? RecurrenceID { get; set; } - } -} -``` - -N> By default, `DataManager` utilizes `BlazorAdaptor` for binding local data. -> You can also bind different field names to the default event fields and include additional `custom fields` in the event object collection. Refer to the [Appointment Customization documentation](./appointment-customization.md) for more details. - -## ExpandoObject Binding - -The Scheduler is a generic component that is strongly bound to a model type. However, for scenarios where the model type is unknown at compile-time or runtime, **ExpandoObject** binding can be used. This allows data to be bound as a list of dynamic objects. - -**ExpandoObject** implements the `IDictionary` interface, enabling the addition of properties and values dynamically at runtime, similar to a dictionary. This provides a flexible way to bind data without requiring a predefined class or strict data structure, particularly useful for data sources with varying structures. - -To bind data using `ExpandoObject`, create a list of `ExpandoObject` instances and set it as the `DataSource` property of the Scheduler's `ScheduleEventSettings` component. The Scheduler supports all data operations and editing functionalities with `ExpandoObject` binding. - -```csharp -@using System.Dynamic // Required for ExpandoObject -@using Syncfusion.Blazor.Schedule - - - - - - - - - - -@code { - DateTime CurrentDate { get; set; } = new DateTime(2021, 8, 10); - public List EventsCollection { get; set; } = new List(); - - protected override void OnInitialized() - { - DateTime scheduleStart = new DateTime(2021, 8, 8, 10, 0, 0); - var random = new Random(); // Single instance for better randomness - EventsCollection = Enumerable.Range(1, 5).Select((x) => - { - scheduleStart = scheduleStart.AddDays(1); - dynamic d = new ExpandoObject(); - d.Id = 1000 + x; - d.Subject = (new string[] { "Project Discussion", "Work Flow Analysis", "Report", "Meeting", "Project Demo" })[random.Next(5)]; - d.StartTime = scheduleStart; - d.EndTime = scheduleStart.AddHours(1); - d.IsAllDay = false; - // Recurrence properties are set to null as they are not used in this basic example - d.RecurrenceRule = null; - d.RecurrenceException = null; - d.RecurrenceID = null; - return d; - }).Cast().ToList(); - } -} -``` - -## DynamicObject Binding - -**DynamicObject** binding offers another method for data binding when the model type is unknown at compile time. This approach leverages the `dynamic` keyword, allowing variables to hold objects that can dynamically add or manage properties at runtime. - -To bind data using `DynamicObject`, create a list of custom `DynamicObject` instances and set it as the `DataSource` property of the Scheduler's `ScheduleEventSettings` component. This enables the use of the Scheduler's built-in data operations and editing features with dynamically behaving objects. - -**DynamicObject** implements the `IDynamicMetaObjectProvider` interface, which allows overriding member access operations like `GetMember` and `SetMember` for custom logic. This is particularly useful for scenarios where object behavior is determined at runtime. - -N> For data operations and editing to function correctly, the [`GetDynamicMemberNames`](https://learn.microsoft.com/en-us/dotnet/api/system.dynamic.dynamicobject.getdynamicmembernames?view=net-7.0) method of the `DynamicObject` class must be overridden to return the names of the available properties. - -```csharp -@using System.Dynamic -@using Syncfusion.Blazor.Schedule - - - - - - - - - - - -@code { - DateTime CurrentDate { get; set; } = new DateTime(2021, 8, 10); - public List EventsCollection { get; set; } = new List(); - - protected override void OnInitialized() - { - DateTime scheduleStart = new DateTime(2021, 8, 8, 10, 0, 0); - var random = new Random(); // Single instance for better randomness - EventsCollection = Enumerable.Range(1, 5).Select((x) => - { - scheduleStart = scheduleStart.AddDays(1); - dynamic d = new DynamicDictionary(); - d.Id = 1000 + x; - d.Subject = (new string[] { "Project Discussion", "Work Flow Analysis", "Report", "Meeting", "Project Demo" })[random.Next(5)]; - d.StartTime = scheduleStart; - d.EndTime = scheduleStart.AddHours(1); - d.IsAllDay = false; // Example added for clarity - // Recurrence properties are set to null as they are not used in this basic example - d.RecurrenceRule = null; - d.RecurrenceException = null; - d.RecurrenceID = null; - return d; - }).Cast().ToList(); - } - - // Custom DynamicObject implementation - public class DynamicDictionary : System.Dynamic.DynamicObject - { - private Dictionary dictionary = new Dictionary(); - - // Provides the mechanism for operations that get a member by name. - public override bool TryGetMember(GetMemberBinder binder, out object result) - { - string name = binder.Name; - return dictionary.TryGetValue(name, out result); - } - - // Provides the mechanism for operations that set a member by name. - public override bool TrySetMember(SetMemberBinder binder, object value) - { - dictionary[binder.Name] = value; - return true; - } - - // Provides the enumeration of all dynamic member names. - public override System.Collections.Generic.IEnumerable GetDynamicMemberNames() - { - return this.dictionary.Keys; - } - } -} -``` - -## ObservableCollection - -Utilizing [`ObservableCollection`](https://learn.microsoft.com/en-us/dotnet/api/system.collections.objectmodel.observablecollection-1?view=net-7.0) (a dynamic data collection) provides notifications when items are added, removed, or moved. This collection implements [`INotifyCollectionChanged`](https://learn.microsoft.com/en-us/dotnet/api/system.collections.specialized.inotifycollectionchanged?view=net-7.0), informing the Scheduler of dynamic changes such as additions, removals, moves, or clearing of items. Furthermore, the `AppointmentData` class implements [`INotifyPropertyChanged`](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.inotifypropertychanged?view=net-7.0), which notifies the UI when a property value (e.g., `Subject`) has changed on the client side. - -In this example, the `AppointmentData` class implements `INotifyPropertyChanged`, raising an event when the `Subject` property value is modified. - -```csharp -@using Syncfusion.Blazor.Schedule -@using Syncfusion.Blazor.Buttons -@using System.Collections.ObjectModel -@using System.ComponentModel - -Add Data -Update Data @* Disabled if no data exists *@ -Delete Data @* Disabled if no data exists *@ - - - - - - - - - - - - -@code{ - DateTime CurrentDate { get; set; } = new DateTime(2020, 3, 10); - // Initialize ObservableData directly in the property - public ObservableCollection ObservableData { get; set; } = new ObservableCollection(); - private int uniqueid = 0; // Start unique IDs from 0 or higher - - protected override void OnInitialized() - { - var random = new Random(); // Use a single Random instance - uniqueid = 0; // Reset unique ID counter if re-initialized - - // Populate initial data for ObservableCollection - for (int x = 1; x <= 4; x++) - { - uniqueid++; - ObservableData.Add(new AppointmentData() - { - Id = uniqueid, - Subject = (new string[] { "Project Discussion", "Work Flow Analysis", "Report", "Meeting", "Project Demo" })[random.Next(5)], - StartTime = new DateTime(2020, 3, 8 + x, 9, 0, 0), - EndTime = new DateTime(2020, 3, 8 + x, 11, 0, 0) - }); - } - } - - public void AddRecord() - { - uniqueid++; - ObservableData.Add(new AppointmentData() { Id = uniqueid, Subject = "New Meeting", StartTime = new DateTime(2020, 3, 13, 9, 0, 0), EndTime = new DateTime(2020, 3, 13, 11, 0, 0) }); - } - - public void DeleteRecord() - { - if (ObservableData.Any()) // Check if collection is not empty - { - ObservableData.Remove(ObservableData.First()); - } - } - - public void UpdateRecord() - { - if (ObservableData.Any()) // Check if collection is not empty - { - var data = ObservableData.First(); - data.Subject = "Event Updated via INotifyPropertyChanged"; // This will trigger UI update - } - } - - public class AppointmentData : INotifyPropertyChanged - { - public int Id { get; set; } - private string? _subject; // Backing field for Subject property - public string? Subject - { - get { return _subject; } - set - { - if (_subject != value) // Only notify if value has truly changed - { - _subject = value; - NotifyPropertyChanged(nameof(Subject)); - } - } - } - public string? Location { get; set; } - public DateTime StartTime { get; set; } - public DateTime EndTime { get; set; } - public string? Description { get; set; } - public bool IsAllDay { get; set; } - public string? RecurrenceRule { get; set; } - public string? RecurrenceException { get; set; } - public int? RecurrenceID { get; set; } - public string? StartTimezone { get; set; } - public string? EndTimezone { get; set; } - - public event PropertyChangedEventHandler? PropertyChanged; // Nullable event handler - private void NotifyPropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - } -} -``` - -## Custom Binding (Custom Adaptor) - -It is possible to create a custom `DataAdaptor` by extending the built-in `DataAdaptor` class. This allows for binding data from a custom service and performing CRUD operations using the methods of the `DataAdaptor` abstract class. - -The following example demonstrates the usage of a custom adaptor to bind data with a custom service. The `CustomAdaptor` overrides methods like `ReadAsync`, `InsertAsync`, `UpdateAsync`, and `RemoveAsync` to interact with a local `List`. - -```cshtml -@using Syncfusion.Blazor -@using Syncfusion.Blazor.Schedule -@using Syncfusion.Blazor.Data - - - - - - - - - - - -@code { - public class CustomAdaptor : DataAdaptor - { - // This is a static list to simulate a data store for the custom adaptor - // In a real application, this would interact with a database or external service. - private static List EventDataStore = DataList(); - - public async override Task ReadAsync(DataManagerRequest dataManagerRequest, string key = null) - { - // To mimic asynchronous operation, we delay this operation - await Task.Delay(100); - return dataManagerRequest.RequiresCounts ? new DataResult() { Result = EventDataStore, Count = EventDataStore.Count() } : (object)EventDataStore; - } - - public async override Task InsertAsync(DataManager dataManager, object data, string key) - { - await Task.Delay(100); - if (data is AppointmentData newAppointment) - { - // Assign a new ID; ensure it's unique in a real scenario - newAppointment.Id = EventDataStore.Any() ? EventDataStore.Max(e => e.Id) + 1 : 1; - EventDataStore.Add(newAppointment); - return newAppointment; - } - return data; - } - - public async override Task UpdateAsync(DataManager dataManager, object data, string keyField, string key) - { - await Task.Delay(100); - if (data is AppointmentData updatedAppointment) - { - var appointment = EventDataStore.FirstOrDefault(a => a.Id == updatedAppointment.Id); - if (appointment != null) - { - // Update properties of the existing appointment - appointment.Subject = updatedAppointment.Subject; - appointment.StartTime = updatedAppointment.StartTime; - appointment.EndTime = updatedAppointment.EndTime; - appointment.Location = updatedAppointment.Location; - appointment.Description = updatedAppointment.Description; - appointment.IsAllDay = updatedAppointment.IsAllDay; - appointment.ProjectId = updatedAppointment.ProjectId; - appointment.RecurrenceException = updatedAppointment.RecurrenceException; - appointment.RecurrenceID = updatedAppointment.RecurrenceID; - appointment.RecurrenceRule = updatedAppointment.RecurrenceRule; - // Ensure other properties are updated as needed - } - } - return data; - } - - public async override Task RemoveAsync(DataManager dataManager, object data, string keyField, string key) - { - await Task.Delay(100); - if (data is int appointmentIdToRemove) // Assuming data is the ID - { - EventDataStore.RemoveAll(a => a.Id == appointmentIdToRemove); - } - else if (data is AppointmentData appointmentToRemove) - { - EventDataStore.RemoveAll(a => a.Id == appointmentToRemove.Id); - } - return data; - } - - // Handles batch operations (Add, Update, Delete) typically from drag/drop or batch editing - public async override Task BatchUpdateAsync(DataManager dataManager, object changedRecords, object addedRecords, object deletedRecords, string keyField, string key, int? dropIndex) - { - await Task.Delay(100); - - // Process deletions - if (deletedRecords is List deleteData) - { - foreach (var data in deleteData) - { - EventDataStore.RemoveAll(a => a.Id == data.Id); - } - } - - // Process additions - if (addedRecords is List addData) - { - foreach (var newAppointment in addData) - { - newAppointment.Id = EventDataStore.Any() ? EventDataStore.Max(e => e.Id) + 1 : 1; // Assign unique IDs - EventDataStore.Add(newAppointment); - } - } - - // Process updates - if (changedRecords is List updateData) - { - foreach (var val in updateData) - { - var appointment = EventDataStore.FirstOrDefault(a => a.Id == val.Id); - if (appointment != null) - { - // Update properties of the existing appointment - appointment.Subject = val.Subject; - appointment.StartTime = val.StartTime; - appointment.EndTime = val.EndTime; - appointment.Location = val.Location; - appointment.Description = val.Description; - appointment.IsAllDay = val.IsAllDay; - appointment.ProjectId = val.ProjectId; - appointment.RecurrenceException = val.RecurrenceException; - appointment.RecurrenceID = val.RecurrenceID; - appointment.RecurrenceRule = val.RecurrenceRule; - } - } - } - // Return null or processed records based on requirements - return null; - } - - // Static method to provide initial data for the store - private static List DataList() - { - return new List - { - new AppointmentData { Id = 1, Subject = "Meeting", StartTime = new DateTime(2020, 1, 5, 10, 0, 0) , EndTime = new DateTime(2020, 1, 5, 11, 0, 0), ProjectId = 1, RecurrenceRule = "FREQ=DAILY;INTERVAL=1;COUNT=5;"}, - new AppointmentData { Id = 2, Subject = "Project Discussion", StartTime = new DateTime(2020, 1, 6, 11, 30, 0) , EndTime = new DateTime(2020, 1, 6, 13, 0, 0), ProjectId = 2}, - new AppointmentData { Id = 3, Subject = "Work Flow Analysis", StartTime = new DateTime(2020, 1, 7, 12, 0, 0) , EndTime = new DateTime(2020, 1, 7, 13, 0, 0), ProjectId = 2, RecurrenceRule = "FREQ=DAILY;INTERVAL=1;COUNT=3;"}, - new AppointmentData { Id = 4, Subject = "Report", StartTime = new DateTime(2020, 1, 10, 11, 30, 0) , EndTime = new DateTime(2020, 1, 10, 13, 0, 0), ProjectId = 2} - }; - } - } - - List ProjectData { get; set; } = ResourceList(); - - private static List ResourceList() - { - return new List - { - new ResourceData { Text = "PROJECT 1", Id = 1, Color = "#cb6bb2" }, - new ResourceData { Text = "PROJECT 2", Id = 2, Color = "#56ca85" } - }; - } - - public class AppointmentData - { - public int Id { get; set; } - public string? Subject { get; set; } - public string? Location { get; set; } - public DateTime StartTime { get; set; } - public DateTime EndTime { get; set; } - public string? Description { get; set; } - public bool IsAllDay { get; set; } - public string? RecurrenceRule { get; set; } - public string? RecurrenceException { get; set; } - public int? RecurrenceID { get; set; } - public int ProjectId { get; set; } // Custom field for resource - } - - public class ResourceData - { - public int Id { get; set; } - public string? Text { get; set; } - public string? Color { get; set; } - } -} -``` - -N> The complete procedures to perform CRUD actions with the Syncfusion® Blazor Scheduler using `CustomAdaptor` can be found [here](https://github.com/SyncfusionExamples/Blazor-Scheduler-CRUD-using-custom-adaptor). - -## Remote Data Binding - -Any type of remote data services can be bound to the Scheduler. To achieve this, provide the service URL to the `Url` option of `SfDataManager` within the `` tag. - -### Binding with OData Services - -[OData](https://www.odata.org/documentation/odata-version-3-0/) (Open Data Protocol) is a widely used protocol for creating and consuming RESTful APIs. It provides a standardized way for interacting with data, simplifying the development and consumption of RESTful APIs. - -Data can be retrieved from an OData service using `SfDataManager`. Refer to the following code example for remote data binding using an OData service. - -```cshtml -@using Syncfusion.Blazor -@using Syncfusion.Blazor.Schedule -@using Syncfusion.Blazor.Data -@* Assuming EventData model is defined in Restful_Crud.Models *@ - - - - - - - -@code{ - public Query QueryData { get; set; } = new Query().From("EventDatas"); -} -``` - -### Binding with OData v4 Services - -[ODataV4](https://www.odata.org/documentation/) is the latest version of the OData protocol, offering enhanced features and better performance. It supports advanced query options, data validation, and data shaping, and is based on the JSON format, making it more lightweight. - -To retrieve data from an ODataV4 service using the `DataManager`, it is necessary to use `ODataV4Adaptor` within the ``. - -```cshtml -@using Syncfusion.Blazor -@using Syncfusion.Blazor.Schedule -@using Syncfusion.Blazor.Data -@* Assuming EventData model is defined in Restful_Crud.Models *@ - - - - - - - -@code{ - public Query QueryData { get; set; } = new Query().From("EventDatas"); -} -``` - -N> A working sample demonstrating integration with OData can be found [here](https://github.com/SyncfusionExamples/Blazor-Scheduler-CRUD-using-ODATA-adaptor). - -### Filtering Events Using the In-built Query - -To enable server-side filtering operations based on predetermined conditions, the [`IncludeFiltersInQuery`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_IncludeFiltersInQuery) API can be set to `true`. This constructs a filter query using the start date, end date, and recurrence rule, allowing the request to be filtered accordingly. - -This method significantly improves the component's performance by reducing the amount of data transferred to the client side, thereby enhancing efficiency and responsiveness. However, it is important to consider the potential for longer query strings, which might exceed maximum URL lengths or server limitations. - -```cshtml -@using Syncfusion.Blazor -@using Syncfusion.Blazor.Data; -@using Syncfusion.Blazor.Schedule - - - - @* Example using a public ODataV4 service for Northwind Orders *@ - - - - - - - - - - - - - -@code { - DateTime currentDate { get; set; } = new DateTime(1996, 7, 9); - public Query QueryData { get; set; } = new Query(); - - public class AppointmentData - { - public int Id { get; set; } - public string? ShipName { get; set; } - public DateTime OrderDate { get; set; } - public DateTime RequiredDate { get; set; } - public string? ShipCountry { get; set; } - public string? ShipAddress { get; set; } - public string? ShipRegion { get; set; } - } -} -``` - -The following image illustrates how parameters are passed using an ODataV4 filter. - -![ODataV4 filter showing query parameters in the URL](./images/blazor-odatav4-filter.jpg) - -### Web API Adaptor - -Web API data can be bound to the Scheduler using [`WebApiAdaptor`](https://blazor.syncfusion.com/documentation/data/adaptors#web-api-adaptor). The following sample code demonstrates binding remote services to the Scheduler component. - -```cshtml -@using Syncfusion.Blazor -@using Syncfusion.Blazor.Data; -@using Syncfusion.Blazor.Schedule - - - - - - - - - - - -@code { - DateTime currentDate { get; set; } = new DateTime(2023, 1, 6); - - public class AppointmentData - { - public int Id { get; set; } - public string? Subject { get; set; } - public string? Location { get; set; } - public string? Description { get; set; } - public DateTime StartTime { get; set; } - public DateTime EndTime { get; set; } - public bool? IsAllDay { get; set; } - public string? CategoryColor { get; set; } - public string? RecurrenceRule { get; set; } - public int? RecurrenceID { get; set; } - public int? FollowingID { get; set; } - public string? RecurrenceException { get; set; } - public string? StartTimezone { get; set; } - public string? EndTimezone { get; set; } - } -} -``` - -### URL Adaptor -The [`UrlAdaptor`](https://blazor.syncfusion.com/documentation/data/adaptors#url-adaptor) of `SfDataManager` is used to bind remote data sources. During the initial load of the Scheduler, data is fetched from the remote service via the `Url` property of `SfDataManager` and bound to the Scheduler. - -CRUD (Create, Read, Update, Delete) operations in the Scheduler can be mapped to server-side controller actions using the `InsertUrl`, `RemoveUrl`, `UpdateUrl`, and `CrudUrl` properties. - -* `InsertUrl` – Specifies the URL for a single insertion operation on the server-side. -* `UpdateUrl` – Specifies the URL for updating a single data record on the server-side. -* `RemoveUrl` – Specifies the URL for removing a single data record on the server-side. -* `CrudUrl` – Specifies the URL for performing bulk data operations (batch CRUD) on the server-side. - -The following sample code demonstrates binding data to the Scheduler component through `SfDataManager` using `UrlAdaptor` in a Blazor Web App (server-side project). - -```cshtml -@using Syncfusion.Blazor -@using Syncfusion.Blazor.Data; -@using Syncfusion.Blazor.Schedule -@using Url_Adaptor.Data @* Assuming these namespaces are for data models and services *!/ -@using Url_Adaptor.Models -@using Url_Adaptor.Pages - - - - @* Configure SfDataManager with UrlAdaptor and specific URLs for CRUD operations *!/ - - - - - - - - -@code { - DateTime currentDate { get; set; } = new DateTime(2022, 12, 6); - // The 'Event' model would be defined in Url_Adaptor.Models -} -``` - -The corresponding server-side ASP.NET Core controller code to handle the CRUD operations with `UrlAdaptor` is as follows: - -```csharp -using Microsoft.AspNetCore.Mvc; -using Microsoft.EntityFrameworkCore; -using Syncfusion.Blazor.Data; // Assuming CRUDModel is in this namespace -using System; -using System.Linq; -using System.Threading.Tasks; - -namespace Url_Adaptor.Controllers -{ - [ApiController] - [Route("api/[controller]")] // Base route for the controller - public class SchedulerController : ControllerBase // Renamed DefaultController to SchedulerController - { - private readonly EventsContext dbContext; - - public SchedulerController(EventsContext dbContext) - { - this.dbContext = dbContext; - - // Seed data if the database is empty (for demonstration purposes) - if (!this.dbContext.Events.Any()) - { - foreach (var b in DataSource.GetEvents()) // Assuming DataSource.GetEvents() provides initial data - { - dbContext.Events.Add(b); - } - dbContext.SaveChanges(); - } - } - - [HttpGet] // Changed to HttpGet for Read operation - public IActionResult Get() - { - var events = dbContext.Events.ToList(); - return Ok(events); - } - - [HttpPost("Add")] // Route for Insert operation - public async Task Add([FromBody] CRUDModel args) - { - if (ModelState.IsValid && args.Value != null) - { - // Assign a new ID; ensure it's unique in a real scenario - args.Value.Id = dbContext.Events.Any() ? dbContext.Events.Max(p => p.Id) + 1 : 1; - dbContext.Events.Add(args.Value); - await dbContext.SaveChangesAsync(); - return Ok(args.Value); // Return the added entity, potentially with updated ID - } - return BadRequest(ModelState); - } - - [HttpPost("Update")] // Route for Update operation - public async Task Update([FromBody] CRUDModel args) - { - if (ModelState.IsValid && args.Value != null) - { - var entity = await dbContext.Events.FindAsync(args.Value.Id); - if (entity != null) - { - // Update only changed values - dbContext.Entry(entity).CurrentValues.SetValues(args.Value); - await dbContext.SaveChangesAsync(); - return Ok(args.Value); // Return the updated entity - } - return NotFound(); - } - return BadRequest(ModelState); - } - - [HttpPost("Delete")] // Route for Remove operation - public async Task Delete([FromBody] CRUDModel args) - { - if (args.Key != null) // args.Key contains the ID of the item to delete - { - var key = Convert.ToInt32(Convert.ToString(args.Key)); - var app = await dbContext.Events.FindAsync(key); - if (app != null) - { - dbContext.Events.Remove(app); - await dbContext.SaveChangesAsync(); - return Ok(app); // Return the deleted entity - } - return NotFound(); - } - return BadRequest("Invalid request: Key is missing."); - } - - [HttpPost("Batch")] // Route for Batch operations - public async Task Batch([FromBody] CRUDModel args) - { - // Process deleted items - if (args.Deleted != null && args.Deleted.Any()) - { - foreach (Event appointment in args.Deleted) - { - var app = await dbContext.Events.FindAsync(appointment.Id); - if (app != null) - { - dbContext.Events.Remove(app); - } - } - } - // Process added items - if (args.Added != null && args.Added.Any()) - { - foreach (Event appointment in args.Added) - { - // Assign a new ID; ensure uniqueness - appointment.Id = dbContext.Events.Any() ? dbContext.Events.Max(p => p.Id) + 1 : 1; - dbContext.Events.Add(appointment); - } - } - // Process changed items - if (args.Changed != null && args.Changed.Any()) - { - foreach (Event appointment in args.Changed) - { - var entity = await dbContext.Events.FindAsync(appointment.Id); - if (entity != null) - { - dbContext.Entry(entity).CurrentValues.SetValues(appointment); - } - } - } - await dbContext.SaveChangesAsync(); - // Return processed data (often args.Value, args.Added, args.Changed, args.Deleted) - return Ok(args); - } - } - - // Example Event model for the database context - public class Event - { - public int Id { get; set; } - public string? Subject { get; set; } - public string? Location { get; set; } - public string? Description { get; set; } - public DateTime StartTime { get; set; } - public DateTime EndTime { get; set; } - public bool? IsAllDay { get; set; } - public string? CategoryColor { get; set; } - public string? RecurrenceRule { get; set; } - public int? RecurrenceID { get; set; } - public int? FollowingID { get; set; } - public string? RecurrenceException { get; set; } - public string? StartTimezone { get; set; } - public string? EndTimezone { get; set; } - } - - // Example EventsContext for Entity Framework Core - public class EventsContext : DbContext - { - public EventsContext(DbContextOptions options) : base(options) { } - public DbSet Events { get; set; } - // Further configuration if needed - protected override void OnModelCreating(ModelBuilder modelBuilder) - { - modelBuilder.Entity().HasKey(e => e.Id); // Ensure Id is recognized as primary key - // Additional model configurations - } - } -} -``` - -### Sending Additional Parameters to the Server - -To send an additional custom parameter with the data request, use the `AddParams` method of [`Query`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEventSettings-1.html#Syncfusion_Blazor_Schedule_ScheduleEventSettings_1_Query). Assign this `Query` object (with additional parameters) to the `Query` property of `ScheduleEventSettings`. - -```cshtml -@using Syncfusion.Blazor -@using Syncfusion.Blazor.Schedule -@using Syncfusion.Blazor.Data -@* Assuming EventData model is defined in Restful_Crud.Models *@ - - - - - - - -@code{ - public Query QueryData { get; set; } = new Query().From("EventDatas").AddParams("Readonly", true); -} -``` - -The value passed to the additional parameter is shown in the following image. - -![Passing Additional Parameters in Blazor Scheduler showing a custom parameter in the network request](./images/blazor-scheduler-additional-parameters.png) - -N> Parameters added using the `Query` property will be sent along with the data request to the server on every Scheduler action. - -### Authorization and Authentication - -It is common to have authorization configured on the server to prevent anonymous access to data services. `SfDataManager` can consume data from such protected remote services by including the proper bearer token in the request. The access token or bearer token can be utilized by `SfDataManager` in one of the following ways: - -* **Using a pre-configured `HttpClient`:** Register a pre-configured `HttpClient` with the access token or an authentication message handler before calling `AddSyncfusionBlazor()` in `Program.cs`. This ensures that `SfDataManager` uses the already configured `HttpClient` instead of creating its own. -* **Setting access token in `HttpClient.DefaultRequestHeaders`:** Inject `HttpClient` into the Blazor component and set the access token in `DefaultRequestHeaders`. - -```csharp -@inject HttpClient _httpClient - -@code { - protected override async Task OnInitializedAsync() - { - // ... (retrieve tokenValue, e.g., from local storage or authentication service) ... - var tokenValue = "your_access_token_here"; // Replace with actual token retrieval - _httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {tokenValue}"); - - await base.OnInitializedAsync(); - } -} -``` - -* **Setting the access token in the `Headers` property of `SfDataManager`:** The `Headers` property directly allows adding custom HTTP headers. Refer to [Setting Custom Headers](#setting-custom-headers) for this approach. - -Retrieving the bearer token may vary depending on the access token provider. More information on configuring `HttpClient` with authentication can be found on the official Microsoft page [here](https://learn.microsoft.com/en-us/aspnet/core/blazor/security/webassembly/additional-scenarios?view=aspnetcore-7.0). - -### Setting Custom Headers - -To add custom headers to the data request, use the [`Headers`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.DataManager.html#Syncfusion_Blazor_DataManager_Headers) property of the [`SfDataManager`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.SfDataManager.html). - -The following sample code demonstrates adding custom headers to the `SfDataManager` request: - -```cshtml -@using Syncfusion.Blazor -@using Syncfusion.Blazor.Data; -@using Syncfusion.Blazor.Schedule - - - - - - - - - - - -@code { - DateTime currentDate { get; set; } = new DateTime(2023, 1, 6); - private IDictionary HeaderData { get; set; } = new Dictionary - { - { "X-Custom-Header", "MyCustomValue" }, - { "Authorization", "Bearer your_token_here" } // Example: Adding an authorization token - }; - - public class AppointmentData - { - public int Id { get; set; } - public string? Subject { get; set; } - public string? Location { get; set; } - public string? Description { get; set; } - public DateTime StartTime { get; set; } - public DateTime EndTime { get; set; } - public bool? IsAllDay { get; set; } - public string? CategoryColor { get; set; } - public string? RecurrenceRule { get; set; } - public int? RecurrenceID { get; set; } - public int? FollowingID { get; set; } - public string? RecurrenceException { get; set; } - public string? StartTimezone { get; set; } - public string? EndTimezone { get; set; } - } -} -``` - -### Handling HTTP Errors - -During server interaction from the Scheduler, server-side exceptions or HTTP errors might occur. These error messages or exception details can be acquired on the client-side using the [`OnActionFailure`](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Schedule.ScheduleEvents-1.html#Syncfusion_Blazor_Schedule_ScheduleEvents_1_OnActionFailure) event. - -The argument passed to the `OnActionFailure` event contains the error details returned from the server. - -The following sample code demonstrates notifying the user when a server-side exception has occurred: - -```cshtml -@using Syncfusion.Blazor -@using Syncfusion.Blazor.Data; -@using Syncfusion.Blazor.Schedule - -@ErrorDetails - - - - - - - - @* Using an invalid URL to force an error *!/ - - - - - - -@code { - DateTime currentDate { get; set; } = new DateTime(2023, 1, 6); - public string ErrorDetails { get; set; } = ""; - - public class AppointmentData - { - public int Id { get; set; } - public string? Subject { get; set; } - public string? Location { get; set; } - public string? Description { get; set; } - public DateTime StartTime { get; set; } - public DateTime EndTime { get; set; } - public bool? IsAllDay { get; set; } - public string? CategoryColor { get; set; } - public string? RecurrenceRule { get; set; } - public int? RecurrenceID { get; set; } - public int? FollowingID { get; set; } - public string? RecurrenceException { get; set; } - public string? StartTimezone { get; set; } - public string? EndTimezone { get; set; } - } - - public void ActionFailure(ActionEventArgs args) - { - // Access args.Error for detailed error information - this.ErrorDetails = $"Server exception: {args.Error?.Code} - {args.Error?.Message}"; - StateHasChanged(); - } -} -``` -## Load on Demand - -The Scheduler supports implementing data loading on demand, which helps minimize data transfer over the network, particularly with large volumes of data. This is achieved by filtering appointments on the server side based on the currently requested `StartDate` and `EndDate`. - -The following code example describes the behavior of load-on-demand using a custom adaptor. - -{% tabs %} - -{% highlight razor %} - -@using Syncfusion.Blazor.Schedule -@using Syncfusion.Blazor.Data -@using syncfusion_blazor_app.Data @* Assuming AppointmentDataAdaptor is defined here *!/ - - - - - - - - - - - - - - - -@code { - DateTime SelectedDate { get; set; } = new DateTime(2023, 5, 10); - // AppointmentData model would typically be defined in syncfusion_blazor_app.Data - public class AppointmentData - { - public int Id { get; set; } - public int UserID { get; set; } // Example of a custom field in data model - public string? Subject { get; set; } - public DateTime StartTime { get; set; } - public DateTime EndTime { get; set; } - public bool IsAllDay { get; set; } - public string? Location { get; set; } - public string? Description { get; set; } - public string? RecurrenceRule { get; set; } - public int? RecurrenceID { get; set; } - public string? RecurrenceException { get; set; } - public string? StartTimezone { get; set; } - public string? EndTimezone { get; set; } - public bool IsReadOnly { get; set; } - } -} - -{% endhighlight %} - -{% highlight c# tabtitle="AppointmentDataAdaptor.cs" %} - -using Syncfusion.Blazor; -using Syncfusion.Blazor.Data; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.EntityFrameworkCore; // Required for FirstAsync, ToListAsync etc. - -namespace syncfusion_blazor_app.Data -{ - public class AppointmentDataAdaptor : DataAdaptor - { - private readonly AppointmentDataService _appService; - - // Constructor for dependency injection - public AppointmentDataAdaptor(AppointmentDataService appService) - { - _appService = appService; - } - - // Reads appointments based on the Scheduler's current view range - public async override Task ReadAsync(DataManagerRequest dataManagerRequest, string key = null) - { - DateTime start = (DateTime)dataManagerRequest.Params["StartDate"]; // Extract StartDate from DataManagerRequest - DateTime end = (DateTime)dataManagerRequest.Params["EndDate"]; // Extract EndDate from DataManagerRequest - - var appointments = await _appService.Get(start, end); - return dataManagerRequest.RequiresCounts - ? new DataResult() { Result = appointments, Count = appointments.Count() } - : (object)appointments; - } - - // Inserts a new appointment - public async override Task InsertAsync(DataManager dataManager, object data, string key) - { - if (data is AppointmentData newAppointment) - { - await _appService.Insert(newAppointment); - } - return data; - } - - // Updates an existing appointment - public async override Task UpdateAsync(DataManager dataManager, object data, string keyField, string key) - { - if (data is AppointmentData updatedAppointment) - { - await _appService.Update(updatedAppointment); - } - return data; - } - - // Removes an appointment - public async override Task RemoveAsync(DataManager dataManager, object data, string keyField, string key) - { - // 'data' will be the ID of the appointment to remove if keyField is "Id" - if (data is int appointmentId) - { - var app = await _appService.GetByID(appointmentId); - if (app != null) await _appService.Delete(app); - } - return data; - } - - // Handles batch CRUD operations - public async override Task BatchUpdateAsync(DataManager dataManager, object changedRecords, object addedRecords, object deletedRecords, string keyField, string key, int? dropIndex) - { - // Process deletions - List? deleteData = deletedRecords as List; - if(deleteData != null) - { - foreach (var data in deleteData) - { - await _appService.Delete(data); - } - } - - // Process additions - List? addData = addedRecords as List; - if(addData != null) - { - foreach (var data in addData) - { - await _appService.Insert(data); - } - } - - // Process updates - List? updateData = changedRecords as List; - if (updateData != null) - { - foreach (var data in updateData) - { - await _appService.Update(data); - } - } - // Returning null or a DataResult is typical for batch updates - return null; // Or return new DataResult { Result = changedRecords, AddedRecords = addedRecords, ChangedRecords = changedRecords, DeletedRecords = deletedRecords }; - } - } -} - -{% endhighlight %} - -{% highlight c# tabtitle="AppointmentDataService.cs" %} - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.EntityFrameworkCore; // Required for Entity Framework Core operations - -namespace syncfusion_blazor_app.Data -{ - public class AppointmentDataService - { - private readonly AppointmentDataContext _appointmentDataContext; - - public AppointmentDataService(AppointmentDataContext appDBContext) - { - _appointmentDataContext = appDBContext; - } - - // Retrieves appointments within a specified date range for load on demand - public async Task> Get(DateTime StartDate, DateTime EndDate) - { - return await _appointmentDataContext.AppointmentDatas - .Where(evt => evt.StartTime >= StartDate && evt.EndTime <= EndDate) - .ToListAsync(); - } - - // Inserts a new appointment into the database - public async Task Insert(AppointmentData appointment) - { - // Assign a unique ID if doing client-side ID generation - if (appointment.Id == 0) // Assuming 0 indicates a new item without an ID - { - appointment.Id = _appointmentDataContext.AppointmentDatas.Any() - ? _appointmentDataContext.AppointmentDatas.Max(a => a.Id) + 1 - : 1; - } - _appointmentDataContext.AppointmentDatas.Add(appointment); - await _appointmentDataContext.SaveChangesAsync(); - } - - // Retrieves an appointment by its ID - public async Task GetByID(int id) // Changed to nullable - { - return await _appointmentDataContext.AppointmentDatas.FirstOrDefaultAsync(c => c.Id == id); - } - - // Updates an existing appointment in the database - public async Task Update(AppointmentData appointment) - { - var app = await _appointmentDataContext.AppointmentDatas.FirstOrDefaultAsync(c => c.Id == appointment.Id); - - if (app != null) - { - // Update properties from the incoming appointment object - app.UserID = appointment.UserID; - app.Subject = appointment.Subject; - app.StartTime = appointment.StartTime; - app.EndTime = appointment.EndTime; - app.IsAllDay = appointment.IsAllDay; - app.Location = appointment.Location; - app.Description = appointment.Description; - app.RecurrenceRule = appointment.RecurrenceRule; - app.RecurrenceID = appointment.RecurrenceID; - app.RecurrenceException = appointment.RecurrenceException; - app.StartTimezone = appointment.StartTimezone; - app.EndTimezone = appointment.EndTimezone; - app.IsReadOnly = appointment.IsReadOnly; - - _appointmentDataContext.AppointmentDatas.Update(app); // Use Update method - await _appointmentDataContext.SaveChangesAsync(); - } - } - - // Deletes an appointment from the database - public async Task Delete(AppointmentData appointment) - { - var app = await _appointmentDataContext.AppointmentDatas.FirstOrDefaultAsync(c => c.Id == appointment.Id); - - if (app != null) - { - _appointmentDataContext.AppointmentDatas.Remove(app); - await _appointmentDataContext.SaveChangesAsync(); - } - } - } - - // Example DbContext for AppointmentData (assuming appropriate setup in Program.cs) - public class AppointmentDataContext : DbContext - { - public AppointmentDataContext(DbContextOptions options) : base(options) { } - public DbSet AppointmentDatas { get; set; } = null!; // Non-nullable DbSet - } -} - -{% endhighlight %} - -{% endtabs %} -The complete working sample for load on demand using a Custom Adaptor can be downloaded from [GitHub](https://github.com/SyncfusionExamples/blazor-scheduler-load-appointments-on-demand). - - -## SQL Server Data Binding (SQL Client) - -The following examples demonstrate how to consume data from SQL Server using Microsoft SqlClient and bind it to the Blazor Scheduler. This requirement can be achieved by using a [Custom Adaptor](./custom-binding#custom-adaptor-as-component). - -Before implementation, add the required NuGet packages like **Microsoft.Data.SqlClient** and **Syncfusion.Blazor** to the application. In the following sample, the `CustomAdaptor` is created as a Blazor component. In its `Read` method, filter appointments are retrieved using `DataManagerRequest`. - -Based on the `DataManagerRequest`, an SQL query string is formed and executed. The `SqlDataAdapter` then retrieves data from the database. The `Fill` method of the `DataAdapter` populates a `DataSet` with the results of the `SelectCommand`, which is then converted into a `List` of `AppointmentData`. The `Result` and `Count` pair object are returned in the `Read` method to bind the data to the Scheduler. - -```cshtml -@using Syncfusion.Blazor.Schedule -@using Syncfusion.Blazor.Data -@using syncfusion_blazor_app.Data -@using syncfusion_blazor_app.Shared - - - - - - - - - - - - @* Referring to the CustomAdaptorComponent below *!/ - - - - -@code { - DateTime SelectedDate { get; set; } = new DateTime(2023, 5, 10); - // AppointmentData model would be defined in syncfusion_blazor_app.Data or a general Models namespace - public class AppointmentData - { - public int Id { get; set; } - public string? Subject { get; set; } - public DateTime StartTime { get; set; } - public DateTime EndTime { get; set; } - public bool IsAllDay { get; set; } - // ... (other properties as needed for the database schema) ... - } -} -``` - -```cshtml -@using Syncfusion.Blazor; -@using Syncfusion.Blazor.Data; -@using Microsoft.Data.SqlClient; // Required for SQL client -@using System.Data; // Required for DataSet -@using System.IO; // Required for Path, Directory -@using Microsoft.AspNetCore.Hosting; // For IHostingEnvironment -@using System.Text.Json.Serialization; // For [JsonIgnore] attribute on RenderFragment -@using System.Linq; // For .AsEnumerable(), .Select() - -@inject IHostingEnvironment _env // Inject IHostingEnvironment to get content root path - -@inherits DataAdaptor @* Inherit from DataAdaptor and specify TValue *!/ - -@* ChildContent is provided when CustomAdaptorComponent is used as a child of SfDataManager *!/ -@if (ChildContent != null) -{ - @ChildContent -} - -@code { - [Parameter] - [JsonIgnore] // Ignore this property during JSON serialization - public RenderFragment? ChildContent { get; set; } // Make nullable - - // List to hold appointments read from the database - List Appointment { get; set; } = new List(); - - // Helper method to create and execute SQL commands - public static DataSet CreateCommand(string queryString, string connectionString) - { - using (SqlConnection connection = new SqlConnection(connectionString)) - { - SqlDataAdapter adapter = new SqlDataAdapter(queryString, connection); - DataSet dt = new DataSet(); - try - { - connection.Open(); // Blocking call, consider async in real apps - adapter.Fill(dt); // Blocking call, consider async in real apps - } - catch (SqlException se) - { - Console.WriteLine($"SQL Exception: {se.Message}"); - // Log the exception details for debugging - } - finally - { - if (connection.State == ConnectionState.Open) - { - connection.Close(); - } - } - return dt; - } - } - - // Performs data Read operation - public async override Task ReadAsync(DataManagerRequest dataManagerRequest, string key = null) // Changed to ReadAsync - { - // Construct connection string dynamically based on environment - string databaseFilePath = Path.Combine(_env.ContentRootPath, "App_Data", "AppointmentDataDB.mdf"); - string connectionString = $"Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename={databaseFilePath};Integrated Security=True;MultipleActiveResultSets=True;"; - - string queryStr = "SELECT * FROM dbo.AppointmentDatas"; - - // Execute the query to retrieve data - DataSet dataSet = CreateCommand(queryStr, connectionString); // Still a blocking call - - // Convert DataRow to AppointmentData list - // Map explicitly to avoid issues if column names differ from property names - Appointment = dataSet.Tables[0].AsEnumerable().Select(r => new AppointmentData - { - Id = r.Field("Id"), - Subject = r.Field("Subject") ?? string.Empty, - StartTime = r.Field("StartTime"), - EndTime = r.Field("EndTime") - // Map other fields as necessary (e.g., Location, Description, IsAllDay) - }).ToList(); - - // Get total count (for pagination) - using (SqlConnection con = new SqlConnection(connectionString)) - { - await con.OpenAsync(); // Use async version - SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM dbo.AppointmentDatas", con); - int count = (int)await cmd.ExecuteScalarAsync(); // Use async version - return new DataResult() { Result = Appointment, Count = count }; - } - } - - // Overrides for other CRUD operations would go here if needed. - // E.g., InsertAsync, UpdateAsync, RemoveAsync, BatchUpdateAsync -} -``` - -The complete working sample can be downloaded from [GitHub](https://github.com/SyncfusionExamples/blazor-scheduler-sql-server-databinding). - -## Performing CRUD using Entity Framework - -To consume data from **Entity Framework Core** in the Scheduler component, follow these steps. For a quick visual guide on CRUD actions with Entity Framework, watch this video: - -{% youtube -"youtube:https://www.youtube.com/watch?v=QlzdcZTmOrU-0"%} - -### Create DBContext Class - -First, create a `DBContext` class (e.g., `ScheduleDataContext`) to connect to your database (e.g., Microsoft SQL Server). This context defines the entities that Entity Framework Core will manage. - -```csharp -using Microsoft.EntityFrameworkCore; -using Restful_Services.Models; // Assuming EventData is defined here - -namespace Restful_Services.Data // Changed namespace to Data for typical ASP.NET Core MVC/API project -{ - public partial class ScheduleDataContext : DbContext - { - public ScheduleDataContext(DbContextOptions options) - : base(options) - { - } - - public virtual DbSet EventData { get; set; } = null!; // Non-nullable DbSet - - protected override void OnModelCreating(ModelBuilder modelBuilder) - { - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id); // Define primary key - entity.Property(e => e.Id).ValueGeneratedOnAdd(); // Id usually generated on add - entity.Property(e => e.EndTime).HasColumnType("datetime"); - entity.Property(e => e.RecurrenceID).HasColumnName("RecurrenceID"); - entity.Property(e => e.StartTime).HasColumnType("datetime"); - // Add any other necessary configurations like HasMaxLength, IsRequired etc. - }); - // OnModelCreatingPartial(modelBuilder); // Not typical in EF Core setup - } - - // partial void OnModelCreatingPartial(ModelBuilder modelBuilder); // Not typical in EF Core setup - } - - // Example EventData model matching database schema - public class EventData - { - public int Id { get; set; } - public string? Subject { get; set; } - public DateTime StartTime { get; set; } - public DateTime EndTime { get; set; } - public string? StartTimezone { get; set; } - public string? EndTimezone { get; set; } - public string? Location { get; set; } - public string? Description { get; set; } - public bool? IsAllDay { get; set; } - public bool? IsBlock { get; set; } - public bool? IsReadOnly { get; set; } - public int? FollowingID { get; set; } - public int? RecurrenceID { get; set; } - public string? RecurrenceRule { get; set; } - public string? RecurrenceException { get; set; } - } -} -``` - -### Creating an API Controller - -Create an ASP.NET Core API controller which allows the Scheduler to consume data from Entity Framework Core. The following code example demonstrates how to perform CRUD operations using Entity Framework within an API. - -```csharp -using Microsoft.AspNetCore.Mvc; -using Microsoft.EntityFrameworkCore; -using Restful_Services.Data; // Your DbContext and Models namespace -using System; -using System.Linq; -using System.Threading.Tasks; - -namespace Restful_Services.Controllers -{ - [ApiController] - [Route("api/[controller]")] // Route to access the controller - public class SchedulerApiController : ControllerBase // Renamed for clarity in ASP.NET Core - { - private readonly ScheduleDataContext _dbContext; - - public SchedulerApiController(ScheduleDataContext dbContext) - { - _dbContext = dbContext; - } - - // GET: api/SchedulerApi (for reading appointments) - [HttpGet] - public async Task>> Get() - { - return await _dbContext.EventData.ToListAsync(); - } - - // POST: api/SchedulerApi (for creating an appointment) - [HttpPost] - public async Task> Post([FromBody] EventData eventData) - { - if (!ModelState.IsValid) - { - return BadRequest(ModelState); - } - - // Ensure unique ID for new entries if not auto-generated by DB - if (eventData.Id == 0) // Assuming 0 for new non-recurring events - { - eventData.Id = _dbContext.EventData.Any() ? _dbContext.EventData.Max(e => e.Id) + 1 : 1; - } - - _dbContext.EventData.Add(eventData); - await _dbContext.SaveChangesAsync(); - - return CreatedAtAction(nameof(Get), new { id = eventData.Id }, eventData); // Return 201 Created - } - - // PUT: api/SchedulerApi/{id} (for updating an appointment) - [HttpPut("{id}")] - public async Task Put(int id, [FromBody] EventData eventData) - { - if (id != eventData.Id) - { - return BadRequest(); - } - - _dbContext.Entry(eventData).State = EntityState.Modified; - - try - { - await _dbContext.SaveChangesAsync(); - } - catch (DbUpdateConcurrencyException) - { - if (!_dbContext.EventData.Any(e => e.Id == id)) - { - return NotFound(); - } - else - { - throw; - } - } - return NoContent(); // Return 204 No Content - } - - // DELETE: api/SchedulerApi/{id} (for deleting an appointment) - [HttpDelete("{id}")] - public async Task Delete(int id) - { - var eventData = await _dbContext.EventData.FindAsync(id); - if (eventData == null) - { - return NotFound(); - } - - _dbContext.EventData.Remove(eventData); - await _dbContext.SaveChangesAsync(); - - return NoContent(); // Return 204 No Content - } - - // Additional handling for OData filtering by date range (if needed for Read operation) - [HttpGet("GetByDate")] - public async Task>> GetByDate(DateTime StartDate, DateTime EndDate) - { - return await _dbContext.EventData.Where(evt => evt.StartTime >= StartDate && evt.EndTime <= EndDate).ToListAsync(); - } - } -} - -``` - -N> Ensure that `Startup.cs` or `Program.cs` registers the `ScheduleDataContext` for dependency injection and configures services like controllers and JSON serialization. - -### Configure Scheduler Component Using `WebApiAdaptor` - -Now, configure the Scheduler component to interact with the created ASP.NET Core Web API service using `WebApiAdaptor`. - -```cshtml -@using Syncfusion.Blazor -@using Syncfusion.Blazor.Schedule -@using Syncfusion.Blazor.Data -@using Restful_Services.Data // Assuming EventData model is here - - - - @* Use the URL of your created ASP.NET Core Web API *!/ - - - -@code { - // Query can be configured to target specific endpoint if needed - public Query QueryData { get; set; } = new Query(); -} -``` - -N> The complete working sample for Entity Framework integration can be found [here](https://github.com/SyncfusionExamples/blazor-scheduler-crud-using-restful-service). - -## Configuring Scheduler with Google API Service - -The Scheduler can be configured to retrieve events from a Google Calendar API service. The data obtained from Google services would typically be assigned to the Scheduler's `DataSource` within the `OnInitializedAsync` method. CRUD actions would then be performed by interacting with the Google API through a custom service, usually triggered in the Scheduler's `ActionCompleted` event. - -A custom service would need to be implemented to connect and retrieve events from the Google Calendar API. - -N> A runnable sample demonstrating Google Calendar synchronization with Blazor Scheduler is available [here](https://github.com/SyncfusionExamples/google-calendar-synchronization-with-blazor-scheduler). - -## See also - -* [How to Access Microsoft Graph Calendar Events with Syncfusion® Blazor Scheduler](https://www.syncfusion.com/blogs/post/how-to-access-microsoft-graph-calendar-events-with-syncfusion-blazor-scheduler.aspx ) -* [Easy Steps to Synchronize JIRA Calendar Tasks with the Blazor Scheduler](https://www.syncfusion.com/blogs/post/easy-steps-to-synchronize-jira-calendar-tasks-with-the-blazor-scheduler.aspx) \ No newline at end of file From 221abb2bafb4002004b876d7d5e79413da5b7bf1 Mon Sep 17 00:00:00 2001 From: praveensf4999 Date: Wed, 8 Oct 2025 17:13:33 +0530 Subject: [PATCH 3/4] 984382: Updated the UG document for scheduler component --- blazor/scheduler/appointment-drag-and-drop.md | 2 +- blazor/scheduler/appointment-resizing.md | 2 +- blazor/scheduler/data-binding.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/blazor/scheduler/appointment-drag-and-drop.md b/blazor/scheduler/appointment-drag-and-drop.md index 29a9409a1a..12f5e5b242 100644 --- a/blazor/scheduler/appointment-drag-and-drop.md +++ b/blazor/scheduler/appointment-drag-and-drop.md @@ -1,7 +1,7 @@ --- layout: post title: Drag and Drop in Blazor Scheduler Component | Syncfusion -description: Checkout and learn here all about recurring events in Syncfusion Blazor Scheduler component. +description: Checkout and learn here all about drag and drop in Syncfusion Blazor Scheduler component. platform: Blazor control: Scheduler documentation: ug diff --git a/blazor/scheduler/appointment-resizing.md b/blazor/scheduler/appointment-resizing.md index 37ff89b87d..e7f42b94cf 100644 --- a/blazor/scheduler/appointment-resizing.md +++ b/blazor/scheduler/appointment-resizing.md @@ -1,7 +1,7 @@ --- layout: post title: Resizing in Blazor Scheduler Component | Syncfusion -description: Checkout and learn here all about resizing events in Syncfusion Blazor Scheduler component. +description: Learn how to resize events easily in the Syncfusion Blazor Scheduler component with step-by-step instructions and practical examples. platform: Blazor control: Scheduler documentation: ug diff --git a/blazor/scheduler/data-binding.md b/blazor/scheduler/data-binding.md index 18ace80386..61219b9c57 100644 --- a/blazor/scheduler/data-binding.md +++ b/blazor/scheduler/data-binding.md @@ -1378,7 +1378,7 @@ Now, the Scheduler can be configured using the `SfDataManager` to interact with } ``` -N> You can find the working sample on Entity framework [here](https://github.com/SyncfusionExamples/blazor-scheduler-crud-using-restful-service). +N> You can find the working sample on Entity Framework [here](https://github.com/SyncfusionExamples/blazor-scheduler-crud-using-restful-service). ## Configuring Scheduler with Google API Service From fb7ddb284cb2a7c5519de78db44cd613584b1111 Mon Sep 17 00:00:00 2001 From: praveensf4999 Date: Thu, 9 Oct 2025 10:18:32 +0530 Subject: [PATCH 4/4] 984382: Updated the UG document for the scheduler component --- blazor/scheduler/appointment-drag-and-drop.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blazor/scheduler/appointment-drag-and-drop.md b/blazor/scheduler/appointment-drag-and-drop.md index 12f5e5b242..82e29aca2e 100644 --- a/blazor/scheduler/appointment-drag-and-drop.md +++ b/blazor/scheduler/appointment-drag-and-drop.md @@ -1,7 +1,7 @@ --- layout: post title: Drag and Drop in Blazor Scheduler Component | Syncfusion -description: Checkout and learn here all about drag and drop in Syncfusion Blazor Scheduler component. +description: Learn how to implement drag and drop functionality for events within the Syncfusion Blazor Scheduler component. platform: Blazor control: Scheduler documentation: ug