예제 #1
0
        private void schedulerControl1_AllowAppointmentConflicts(object sender, AppointmentConflictEventArgs e)
        {
            e.Conflicts.Clear();

            AppointmentDependencyBaseCollection depCollectionDep =
                schedulerDataStorage1.AppointmentDependencies.Items.GetDependenciesByDependentId(e.Appointment.Id);

            if (depCollectionDep.Count > 0)
            {
                if (CheckForInvalidDependenciesAsDependent(depCollectionDep, e.AppointmentClone))
                {
                    e.Conflicts.Add(e.AppointmentClone);
                }
            }

            AppointmentDependencyBaseCollection depCollectionPar =
                schedulerDataStorage1.AppointmentDependencies.Items.GetDependenciesByParentId(e.Appointment.Id);

            if (depCollectionPar.Count > 0)
            {
                if (CheckForInvalidDependenciesAsParent(depCollectionPar, e.AppointmentClone))
                {
                    e.Conflicts.Add(e.AppointmentClone);
                }
            }
        }
예제 #2
0
 private bool CheckForInvalidDependenciesAsParent(AppointmentDependencyBaseCollection depCollection, Appointment apt)
 {
     foreach (AppointmentDependency dep in depCollection)
     {
         if (dep.Type == AppointmentDependencyType.FinishToStart)
         {
             DateTime checkTime = schedulerDataStorage1.Appointments.Items.GetAppointmentById(dep.DependentId).Start;
             if (apt.End > checkTime)
             {
                 return(true);
             }
         }
     }
     return(false);
 }