SchedulerExtension.GetAppointmentsToUpdate<T>(String, Object, MVCxAppointmentStorage, MVCxResourceStorage) Method
Obtains appointments whose data should be updated in the data source.
Namespace: DevExpress.Web.Mvc
Assembly: DevExpress.Web.Mvc5.v19.2.dll
Declaration
public static T[] GetAppointmentsToUpdate<T>(
string schedulerName,
object appointmentDataObject,
MVCxAppointmentStorage appointmentStorage,
MVCxResourceStorage resourceStorage
)
Public Shared Function GetAppointmentsToUpdate(Of T)(
schedulerName As String,
appointmentDataObject As Object,
appointmentStorage As MVCxAppointmentStorage,
resourceStorage As MVCxResourceStorage
) As T()
Parameters
Type Parameters
Returns
Type |
Description |
T[] |
A Model data class instance that is the entity contained in the appointment data source and mapped to an appointment.
|
The GetAppointmentsToUpdate<T> method creates a fake Scheduler but does not apply all scheduler settings specified in the view, for better performance. Then, an appointment being inserted is retrieved from this Scheduler instance.
Example
@*#region #SchedulerPartial*@
@Html.DevExpress().Scheduler(
settings => {
settings.Name = "scheduler";
settings.CallbackRouteValues = new { Controller = "Home", Action = "SchedulerPartial" };
settings.EditAppointmentRouteValues = new { Controller = "Home", Action = "EditAppointment" };
settings.Storage.Appointments.Assign(MVCSchedulerEditable.Models.SchedulerStorageProvider.DefaultAppointmentStorage);
settings.Storage.Resources.Assign(MVCSchedulerEditable.Models.SchedulerStorageProvider.DefaultResourceStorage);
settings.Storage.EnableReminders = true;
settings.ActiveViewType = SchedulerViewType.FullWeek;
settings.Views.FullWeekView.Styles.ScrollAreaHeight = 600;
settings.Start = new DateTime(2015, 4, 18);
}).Bind(Model.Appointments, Model.Resources).GetHtml()
@*#endregion #SchedulerPartial*@
public ActionResult EditAppointment()
{
UpdateAppointment();
return PartialView("SchedulerPartial", SchedulerDataHelper.DataObject);
}
static void UpdateAppointment()
{
DBAppointment[] insertedAppointments = SchedulerExtension.GetAppointmentsToInsert<DBAppointment>("scheduler", SchedulerDataHelper.GetAppointments(),
SchedulerDataHelper.GetResources(), SchedulerStorageProvider.DefaultAppointmentStorage, SchedulerStorageProvider.DefaultResourceStorage);
foreach (var appt in insertedAppointments)
{
AppointmentDataAccessor.InsertAppointment(appt);
}
DBAppointment[] updatedAppointments = SchedulerExtension.GetAppointmentsToUpdate<DBAppointment>("scheduler", SchedulerDataHelper.GetAppointments(),
SchedulerDataHelper.GetResources(), SchedulerStorageProvider.DefaultAppointmentStorage, SchedulerStorageProvider.DefaultResourceStorage);
foreach (var appt in updatedAppointments)
{
AppointmentDataAccessor.UpdateAppointment(appt);
}
DBAppointment[] removedAppointments = SchedulerExtension.GetAppointmentsToRemove<DBAppointment>("scheduler", SchedulerDataHelper.GetAppointments(),
SchedulerDataHelper.GetResources(), SchedulerStorageProvider.DefaultAppointmentStorage, SchedulerStorageProvider.DefaultResourceStorage);
foreach (var appt in removedAppointments)
{
AppointmentDataAccessor.RemoveAppointment(appt);
}
}
@model MVCSchedulerEditable.Models.SchedulerDataObject
@Html.Partial("SchedulerPartial", Model)
@*#region #SchedulerPartial*@
@Html.DevExpress().Scheduler(
settings => {
settings.Name = "scheduler";
settings.CallbackRouteValues = new { Controller = "Home", Action = "SchedulerPartial" };
settings.EditAppointmentRouteValues = new { Controller = "Home", Action = "EditAppointment" };
settings.Storage.Appointments.Assign(MVCSchedulerEditable.Models.SchedulerStorageProvider.DefaultAppointmentStorage);
settings.Storage.Resources.Assign(MVCSchedulerEditable.Models.SchedulerStorageProvider.DefaultResourceStorage);
settings.Storage.EnableReminders = true;
settings.ActiveViewType = SchedulerViewType.FullWeek;
settings.Views.FullWeekView.Styles.ScrollAreaHeight = 600;
settings.Start = new DateTime(2015, 4, 18);
}).Bind(Model.Appointments, Model.Resources).GetHtml()
@*#endregion #SchedulerPartial*@
Public Function EditAppointment() As ActionResult
UpdateAppointment()
Return PartialView("SchedulerPartial", SchedulerDataHelper.DataObject)
End Function
Private Shared Sub UpdateAppointment()
Dim insertedAppointments() As DBAppointment = SchedulerExtension.GetAppointmentsToInsert(Of DBAppointment)("scheduler", SchedulerDataHelper.GetAppointments(), SchedulerDataHelper.GetResources(), SchedulerStorageProvider.DefaultAppointmentStorage, SchedulerStorageProvider.DefaultResourceStorage)
For Each appt In insertedAppointments
AppointmentDataAccessor.InsertAppointment(appt)
Next appt
Dim updatedAppointments() As DBAppointment = SchedulerExtension.GetAppointmentsToUpdate(Of DBAppointment)("scheduler", SchedulerDataHelper.GetAppointments(), SchedulerDataHelper.GetResources(), SchedulerStorageProvider.DefaultAppointmentStorage, SchedulerStorageProvider.DefaultResourceStorage)
For Each appt In updatedAppointments
AppointmentDataAccessor.UpdateAppointment(appt)
Next appt
Dim removedAppointments() As DBAppointment = SchedulerExtension.GetAppointmentsToRemove(Of DBAppointment)("scheduler", SchedulerDataHelper.GetAppointments(), SchedulerDataHelper.GetResources(), SchedulerStorageProvider.DefaultAppointmentStorage, SchedulerStorageProvider.DefaultResourceStorage)
For Each appt In removedAppointments
AppointmentDataAccessor.RemoveAppointment(appt)
Next appt
End Sub
@model MVCSchedulerEditable.Models.SchedulerDataObject
@Html.Partial("SchedulerPartial", Model)
See Also