SchedulerOptionsCustomization.AllowAppointmentCopy Property
Gets or sets whether a user is allowed to copy appointments.
Namespace: DevExpress.XtraScheduler
Assembly: DevExpress.XtraScheduler.v24.2.Core.Desktop.dll
NuGet Package: DevExpress.Scheduler.CoreDesktop
#Declaration
[DefaultValue(UsedAppointmentType.All)]
public UsedAppointmentType AllowAppointmentCopy { get; set; }
#Property Value
Type | Default | Description |
---|---|---|
Used |
All | A Used |
Available values:
Name | Description |
---|---|
None | The action can’t be applied to any appointments. |
Recurring | The action can be applied to recurring appointments only. |
Non |
The action can be applied to non-recurring appointments only. |
All | The action can be applied to all the appointments. |
Custom | The action is applied according to the custom method specified by the corresponding Allow |
#Property Paths
You can access this nested property as listed below:
Library | Object Type | Path to Allow |
---|---|---|
Win |
Scheduler |
|
ASP. |
Bootstrap |
|
XAF: Cross-Platform .NET App UI & Web API | ASPx |
|
ASP. |
Scheduler |
|
ASP. |
ASPx |
|
#Remarks
By default, end-users are allowed to copy appointments. Use the AllowAppointmentCopy property to control the availability of such functionality to end-users with regards to an appointment’s type. For instance, if the AllowAppointmentCopy property allows appointments of all types to be copied (the property is set to UsedAppointmentType.All), an end-user can copy the desired appointment by dragging it to a new time slot while holding down the Ctrl keyboard key (note that the SchedulerOptionsCustomization.AllowAppointmentDrag option should be enabled to allow dragging).
Note
If the Allow
#Example
This example demonstrates how to implement custom rules for editing and deleting appointments. The code below allows an appointment to be edited only by its owner (the end-user who created it). To do this it’s necessary to set the SchedulerOptionsCustomization.AllowAppointmentEdit and SchedulerOptionsCustomization.AllowAppointmentDelete properties to UsedAppointmentType.Custom, and handle the SchedulerControl.AllowAppointmentEdit and SchedulerControl.AllowAppointmentDelete events to implement custom logic for editing appointments.
using DevExpress.XtraScheduler;
// ...
private void schedulerControl1_AllowAppointmentDelete(object sender,
AppointmentOperationEventArgs e) {
// Allow only the user who created this appontment to delete it.
e.Allow = CanUserModifyThisAppointment(e.Appointment);
}
private void schedulerControl1_AllowAppointmentEdit(object sender,
AppointmentOperationEventArgs e) {
// Allow only the user who created this appontment to modify it.
e.Allow = CanUserModifyThisAppointment(e.Appointment);
}
// Determine if the current user is the same
// as the one who created the specified appointment
bool CanUserModifyThisAppointment(Appointment apt) {
object obj = apt.CustomFields["Owner"];
if (obj == null)
return true;
string appointmentOwner = obj.ToString();
if (appointmentOwner == String.Empty)
return true;
return (String.Compare(appointmentOwner, tbUserName.Text, true) == 0);
}