Skip to main content

SchedulerStorageControlExtension.GetAppointmentsToInsert<T>(String, FetchAppointmentsMethod, Object, MVCxAppointmentStorage, MVCxResourceStorage) Method

Obtains appointments which should be inserted into the data source.

Namespace: DevExpress.Web.Mvc

Assembly: DevExpress.Web.Mvc5.v24.1.dll

NuGet Package: DevExpress.Web.Mvc5

Declaration

public static T[] GetAppointmentsToInsert<T>(
    string name,
    FetchAppointmentsMethod fetchAppointmentsMethod,
    object resourceDataObject,
    MVCxAppointmentStorage appointmentStorage,
    MVCxResourceStorage resourceStorage
)

Parameters

Name Type Description
name String

The name of a Scheduler Storage control extension as it is specified by the SettingsBase.Name property.

fetchAppointmentsMethod FetchAppointmentsMethod

A FetchAppointmentsMethod delegate that provides appointments to insert.

resourceDataObject Object

A collection of resources in the scheduler storage control.

appointmentStorage MVCxAppointmentStorage

An MVCxAppointmentStorage object that implements the appointment storage functionality and contains mappings.

resourceStorage MVCxResourceStorage

An MVCxResourceStorage object that implements the resource storage functionality and contains mappings.

Type Parameters

Name
T

Returns

Type Description
T[]

A Model data class instance that is the entity contained in the appointment data source and mapped to an appointment.

Remarks

The GetAppointmentsToInsert<T> method creates a fake Scheduler Storage control extension but does not apply all scheduler settings specified in the view, for better performance. Then, an appointment being inserted is retrieved from this Scheduler Storage control extension instance.

Utilizing the GetAppointmentsToInsert<T> method allows you to handle recurring appointments correctly. Now when an end-user selects and moves multiple recurring appointments at the same time, the corresponding number of database records will be created. For example, if two recurring appointments are moved simultaneously, two records will appear in the database.

For a use example, refer to the following code snippet.

View Example: Scheduler - How to implement the FetchAppointment event functionality

@Html.DevExpress().Scheduler(SchedulerSettingsHelper.CommonSchedulerSettings).Bind(Model.FetchAppointments, Model.Resources).GetHtml()
static void UpdateAppointment() {

    DBAppointment[] insertedAppt = SchedulerExtension.GetAppointmentsToInsert<DBAppointment>(SchedulerSettingsHelper.CommonSchedulerSettings,
        SchedulerDataHelper.FetchAppointmentsHelperMethod,
        SchedulerDataHelper.GetResources());
    foreach (var appt in insertedAppt) {
        SchedulerDataHelper.InsertAppointment(appt);
    }

    DBAppointment[] updatedAppt = SchedulerExtension.GetAppointmentsToUpdate<DBAppointment>(SchedulerSettingsHelper.CommonSchedulerSettings,
        SchedulerDataHelper.FetchAppointmentsHelperMethod,
        SchedulerDataHelper.GetResources());

    foreach (var appt in updatedAppt) {
        SchedulerDataHelper.UpdateAppointment(appt);
    }

    DBAppointment[] removedAppt = SchedulerExtension.GetAppointmentsToRemove<DBAppointment>(SchedulerSettingsHelper.CommonSchedulerSettings,
        SchedulerDataHelper.FetchAppointmentsHelperMethod, 
        SchedulerDataHelper.GetResources());
    foreach (var appt in removedAppt) {
        SchedulerDataHelper.RemoveAppointment(appt);
    }

}
See Also